lynxis lazus uploaded patch set #3 to this change.
Add osmo_apdu_segment_in2() to ensure correct parsing of GP GET DATA
osmo_apdu_segment_in() don'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 to detect if this
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 set the Le field to XX,
which got misinterpreted by the osmo_apdu_segment_in() as a case 4
instead of a case 2 with Le != 0.
Introduce osmo_apdu_segment_in2() containing the previous APDU as
context.
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/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
9 files changed, 156 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/85/43185/3
To view, visit change 43185. To unsubscribe, or for help writing mail filters, visit settings.