laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/35215?usp=email )
Change subject: perform multiple GET RESPONSE cycles if more data is available ...................................................................... perform multiple GET RESPONSE cycles if more data is available So far we implemented only one round of "Send the APDU, get SW=61xx, call GET RESPONSE". This permitted us to receive only data up to 256 bytes. Let's extend that to doing multiple rounds, concatenating the result. This allows us to obtain arbitrary-length data from the card. See Annex C.1 of ETSI TS 102 221 for examples showing multiple 61xx iterations. Change-Id: Ib17da655aa0b0eb203c29dc92690c81bd1300778 Closes: OS#6287 --- M pySim/transport/__init__.py 1 file changed, 23 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index e90ced6..2ffb9c3 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -137,11 +137,12 @@ # xx is the number of response bytes available. # See also: if (sw is not None): - if ((sw[0:2] == '9f') or (sw[0:2] == '61')): + while ((sw[0:2] == '9f') or (sw[0:2] == '61')): # SW1=9F: 3GPP TS 51.011 9.4.1, Responses to commands which are correctly executed # SW1=61: ISO/IEC 7816-4, Table 5 — General meaning of the interindustry values of SW1-SW2 pdu_gr = pdu[0:2] + 'c00000' + sw[2:4] - data, sw = self.send_apdu_raw(pdu_gr) + d, sw = self.send_apdu_raw(pdu_gr) + data += d if sw[0:2] == '6c': # SW1=6C: ETSI TS 102 221 Table 7.1: Procedure byte coding pdu_gr = pdu[0:8] + sw[2:4] -- To view, visit https://gerrit.osmocom.org/c/pysim/+/35215?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ib17da655aa0b0eb203c29dc92690c81bd1300778 Gerrit-Change-Number: 35215 Gerrit-PatchSet: 1 Gerrit-Owner: laforge <lafo...@osmocom.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <lafo...@osmocom.org> Gerrit-MessageType: merged