laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/42667?usp=email )
Change subject: pySim-prog/cards: fix programming of EF.SMSP ......................................................................
pySim-prog/cards: fix programming of EF.SMSP
The legacy code found in legacy/cards.py does not use the modern construct based encoder (pySim-read uses it). The card classes either use their own implementation of update_smsp or use the generic method provided by the SimCard class. The latter one is true for FairwavesSIM and WavemobileSim.
Unfortunately the implementation found in the SimCard is wrong. It adds padding at the end of the file instead of the beginning. This completely messes up the contents of EF.SMSP for the cards using this method. To fix this, let's use the leftpad feature provided by the update_record. This will ensure a correct alignment of the file contents.
Related: SYS#7765 Change-Id: Ie112418f1f1461762d61365d3863181ca6be7245 --- M pySim/legacy/cards.py M tests/pySim-prog_test/Fairwaves-SIM.ok M tests/pySim-prog_test/Wavemobile-SIM.ok 3 files changed, 4 insertions(+), 3 deletions(-)
Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved
diff --git a/pySim/legacy/cards.py b/pySim/legacy/cards.py index 9efa66b..3b66328 100644 --- a/pySim/legacy/cards.py +++ b/pySim/legacy/cards.py @@ -152,7 +152,8 @@ return sw
def update_smsp(self, smsp): - data, sw = self._scc.update_record(EF['SMSP'], 1, rpad(smsp, 84)) + print("using update_smsp") + data, sw = self._scc.update_record(EF['SMSP'], 1, smsp, leftpad=True) return sw
def update_ad(self, mnc=None, opmode=None, ofm=None, path=EF['AD']): diff --git a/tests/pySim-prog_test/Fairwaves-SIM.ok b/tests/pySim-prog_test/Fairwaves-SIM.ok index 42e92e8..5210d01 100644 --- a/tests/pySim-prog_test/Fairwaves-SIM.ok +++ b/tests/pySim-prog_test/Fairwaves-SIM.ok @@ -5,7 +5,7 @@ IMSI: 001010000000111 GID1: ffffffffffffffff GID2: ffffffffffffffff -SMSP: e1ffffffffffffffffffffffff0581005155f5ffffffffffff000000ffffffffffffffffffffffffffff +SMSP: ffffffffffffffffffffffffffffe1ffffffffffffffffffffffff0581005155f5ffffffffffff000000 SMSC: 0015555 SPN: Fairwaves Show in HPLMN: False diff --git a/tests/pySim-prog_test/Wavemobile-SIM.ok b/tests/pySim-prog_test/Wavemobile-SIM.ok index 86f4830..3d9e9b3 100644 --- a/tests/pySim-prog_test/Wavemobile-SIM.ok +++ b/tests/pySim-prog_test/Wavemobile-SIM.ok @@ -5,7 +5,7 @@ IMSI: 001010000000102 GID1: Can't read file -- SW match failed! Expected 9000 and got 6a82. GID2: Can't read file -- SW match failed! Expected 9000 and got 6a82. -SMSP: e1ffffffffffffffffffffffff0581005155f5ffffffffffff000000ffffffffffffffffffffffffffff +SMSP: ffffffffffffffffffffffffffffe1ffffffffffffffffffffffff0581005155f5ffffffffffff000000 SMSC: 0015555 SPN: wavemobile Show in HPLMN: False