Attention is currently required from: laforge, lynxis lazus.
Hello Jenkins Builder, dexter, laforge,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/simtrace2/+/43185?usp=email
to look at the new patch set (#8).
Change subject: Add osmo_apdu_segment_in2() to ensure correct parsing of GP GET DATA ......................................................................
Add osmo_apdu_segment_in2() to ensure correct parsing of GP GET DATA
osmo_apdu_segment_in() doesn't have the context of the previous APDU, for nearly all calls this is fine, except for GP GET DATA, which can be a case 2 or case 4 APDU. GP GET DATA defines the Le field as 0x00 which is used by osmo_apdu_segment_in to detect if it is a case 2 or case 4.
But if the card responded to a case 2 GP GET DATA with Le = 0 with a SW 6cXX, the previous GP GET DATA case 2 must be resent with a Le field XX, which got misinterpreted by the osmo_apdu_segment_in() as a case 4 APDU instead of a case 2.
Introduce osmo_apdu_segment_in2() containing the previous APDU as context.
Modem <-> Card 81cadf2000 -> <- 6c0b 81cadf200b -> -- Simtrace waits for more data because it wrongly decodes it as APDU case 4 instead of case 2.
Related: SYS#8147 Change-Id: Ie238662e7e6a10dd4283ede0c8d8d73bc375c247 --- M TODO-RELEASE M host/Makefile.am M host/configure.ac M host/include/osmocom/simtrace2/apdu_dispatch.h M host/lib/apdu_dispatch.c A host/tests/Makefile.am A host/tests/apdu_dispatch/Makefile.am A host/tests/apdu_dispatch/apdu_dispatch_test.c A host/tests/apdu_dispatch/apdu_dispatch_test.ok A host/tests/testsuite.at 10 files changed, 199 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/85/43185/8