dexter has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/24139 )

Change subject: cards: FairwavesSIM: force SIM APDUs during programming
......................................................................

cards: FairwavesSIM: force SIM APDUs during programming

The FairwavesSIM programming fails when the card is accessed with USIM
APDUs. To keep it working temporarly switch to SIM APDUs during
programming.

Change-Id: I8f02625d2b620ecdf4b2afc27a8750119b707152
---
M pySim/cards.py
1 file changed, 18 insertions(+), 1 deletion(-)

Approvals:
  Jenkins Builder: Verified
  dexter: Looks good to me, approved



diff --git a/pySim/cards.py b/pySim/cards.py
index c38b185..5e2e9fe 100644
--- a/pySim/cards.py
+++ b/pySim/cards.py
@@ -1123,8 +1123,25 @@
                data, sw = self._scc.update_binary(self._EF['OP/OPC'], content)
                return sw

-
        def program(self, p):
+               # For some reason the card programming only works when the card
+               # is handled as a classic SIM, even though it is an USIM, so we
+               # reconfigure the class byte and the select control field on
+               # the fly. When the programming is done the original values are
+               # restored.
+               cla_byte_orig = self._scc.cla_byte
+               sel_ctrl_orig = self._scc.sel_ctrl
+               self._scc.cla_byte = "a0"
+               self._scc.sel_ctrl = "0000"
+
+               try:
+                       self._program(p)
+               finally:
+                       # restore original cla byte and sel ctrl
+                       self._scc.cla_byte = cla_byte_orig
+                       self._scc.sel_ctrl = sel_ctrl_orig
+
+       def _program(self, p):
                # authenticate as ADM1
                if not p['pin_adm']:
                        raise ValueError("Please provide a PIN-ADM as there is 
no default one")

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

Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I8f02625d2b620ecdf4b2afc27a8750119b707152
Gerrit-Change-Number: 24139
Gerrit-PatchSet: 3
Gerrit-Owner: dexter <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <[email protected]>
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>
Gerrit-MessageType: merged

Reply via email to