Change in simtrace2[master]: card_emu: Fix computation of waiting time

laforge gerrit-no-reply at lists.osmocom.org
Tue Apr 6 00:18:15 UTC 2021


laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/23644 )


Change subject: card_emu: Fix computation of waiting time
......................................................................

card_emu: Fix computation of waiting time

As we store the waiting time (WT) in 'etu', we must adjust the formula
from ISO 7816-3.  The 'Fi' component in the formula only exists to
compute clock cycles from the etu, which we don't need here.

Without this patch, the waiting time would be way too large (by a factor
of 372 in the default case).

Change-Id: Ia21bc7303f9b38834b5b1753983ed2a99bfc7d95
---
M firmware/libcommon/source/card_emu.c
M firmware/libcommon/source/mode_cardemu.c
2 files changed, 5 insertions(+), 3 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/44/23644/1

diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c
index cefc957..bcd5fd6 100644
--- a/firmware/libcommon/source/card_emu.c
+++ b/firmware/libcommon/source/card_emu.c
@@ -505,8 +505,11 @@
 				}
 			}
 		}
-		/* update waiting time (see ISO 7816-3 10.2) */
-		ch->waiting_time = ch->wi * 960 * iso7816_3_fi_table[ch->F_index];
+		/* update waiting time (see ISO 7816-3 10.2). We can drop the Fi
+		 * multiplier as we store the waiting time in units of 'etu', and
+		 * don't really care what the number of clock cycles or the absolute
+		 * wall clock time is */
+		ch->waiting_time = ch->wi * 960;
 		/* go to next state */
 		card_set_state(ch, ISO_S_WAIT_TPDU);
 		return 0;
diff --git a/firmware/libcommon/source/mode_cardemu.c b/firmware/libcommon/source/mode_cardemu.c
index 14f62a6..127556c 100644
--- a/firmware/libcommon/source/mode_cardemu.c
+++ b/firmware/libcommon/source/mode_cardemu.c
@@ -225,7 +225,6 @@
 		want_to_expire = ci->wt.remaining - (ci->wt.total / 2);
 	} else
 		want_to_expire = ci->wt.remaining;
-	TRACE_INFO("want_to_expire=%u (total=%u, remaining=%u)\r\n", want_to_expire, ci->wt.total, ci->wt.remaining);
 	/* if value exceeds the USART TO range, use the maximum possible value for one round */
 	return OSMO_MIN(want_to_expire, 0xffff);
 }

-- 
To view, visit https://gerrit.osmocom.org/c/simtrace2/+/23644
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: simtrace2
Gerrit-Branch: master
Gerrit-Change-Id: Ia21bc7303f9b38834b5b1753983ed2a99bfc7d95
Gerrit-Change-Number: 23644
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge at osmocom.org>
Gerrit-CC: Jenkins Builder
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210406/324a553f/attachment-0001.htm>


More information about the gerrit-log mailing list