Change in pysim[master]: __init__: also fetch response bytes for USIMs automatically

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

dexter gerrit-no-reply at lists.osmocom.org
Tue Jun 12 16:53:38 UTC 2018


dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9575


Change subject: __init__: also fetch response bytes for USIMs automatically
......................................................................

__init__: also fetch response bytes for USIMs automatically

The method send_apdu() first transmits the APDU in the cards direction.
The card may indicate that there is a response available by responding
with SW1=9F, where SW2 is the number of bytes. send_apdu() will then
craft a get-response APDU to pickup the response bytes. This mechanism
works fine for SIM, but USIM uses SW1=61 to indicate the availability
of a response, so lets also sense on SW1=61 to support USIMs as well.

- Also check on SW1=61 to see if a response is available

Change-Id: Ied7fb78873a7c4109de471c7a5e9c3701ba0c7d5
Related: OS#4245
---
M pySim/transport/__init__.py
1 file changed, 7 insertions(+), 1 deletion(-)



  git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/75/9575/1

diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py
index dd04bba..158b906 100644
--- a/pySim/transport/__init__.py
+++ b/pySim/transport/__init__.py
@@ -67,7 +67,13 @@
 		"""
 		data, sw = self.send_apdu_raw(pdu)
 
-		if (sw is not None) and (sw[0:2] == '9f'):
+		# When whe have sent the first APDU, the SW may indicate that there are response bytes
+		# available. There are two SWs commonly used for this 9fxx (sim) and 61xx (usim), where
+		# xx is the number of response bytes available.
+		# See also:
+		# 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
+		if (sw is not None) and ((sw[0:2] == '9f') or (sw[0:2] == '61')):
 			pdu_gr = pdu[0:2] + 'c00000' + sw[2:4]
 			data, sw = self.send_apdu_raw(pdu_gr)
 

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

Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ied7fb78873a7c4109de471c7a5e9c3701ba0c7d5
Gerrit-Change-Number: 9575
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier at sysmocom.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180612/6f62b429/attachment.htm>


More information about the gerrit-log mailing list