From c20d442695dbdd8b46dfe9bbf87bd8c37cd813ae Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Thu, 7 Dec 2023 22:46:40 +0100 Subject: [PATCH] euicc: Fix encoding of Lc value in STORE DATA The length value "of course" is a hex value, don't use %02u but %02x This fixes any eUICC command with a Lc > 10 bytes. Change-Id: I1e1efbfb9916fc43699602cc889cf4b3d42736f2 --- pySim/euicc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pySim/euicc.py b/pySim/euicc.py index 58d19f18..c0705257 100644 --- a/pySim/euicc.py +++ b/pySim/euicc.py @@ -297,7 +297,7 @@ class ADF_ISDR(CardADF): def store_data(scc: SimCardCommands, tx_do: Hexstr) -> Tuple[Hexstr, SwHexstr]: """Perform STORE DATA according to Table 47+48 in Section 5.7.2 of SGP.22. Only single-block store supported for now.""" - capdu = '%sE29100%02u%s' % (scc.cla4lchan('80'), len(tx_do)//2, tx_do) + capdu = '%sE29100%02x%s' % (scc.cla4lchan('80'), len(tx_do)//2, tx_do) return scc._tp.send_apdu_checksw(capdu) @staticmethod