diff options
author | Supreeth Herle <herlesupreeth@gmail.com> | 2020-06-01 12:53:57 +0200 |
---|---|---|
committer | herlesupreeth <herlesupreeth@gmail.com> | 2021-01-05 15:59:38 +0100 |
commit | be3b64167aeea40fc851940a80ec7c5033e5d00f (patch) | |
tree | c8bb5d21f74f4dc0ad9c10e2f8bb3f12cad7e026 | |
parent | a97944b6ca9e39dcd34be980e50f11257803f031 (diff) |
pySim-read.py: Enable reading of UICC IARI from ISIM
Change-Id: Iba222421f2fcc2b9b12605608bf640f7627904d0
-rwxr-xr-x | pySim-read.py | 8 | ||||
-rw-r--r-- | pySim/cards.py | 13 | ||||
-rw-r--r-- | pysim-testdata/sysmoISIM-SJA2.ok | 10 |
3 files changed, 31 insertions, 0 deletions
diff --git a/pySim-read.py b/pySim-read.py index 4047598..b94e709 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -334,6 +334,14 @@ if __name__ == '__main__': except Exception as e: print("IMS public user identity: Can't read file -- " + str(e)) + # EF.UICCIARI - UICC IARI + try: + if card.file_exists(EF_ISIM_ADF_map['UICCIARI']): + res = card.read_iari() + print("UICC IARI:\n%s" % (len(res) and res or '\tNot available\n',)) + except Exception as e: + print("UICC IARI: Can't read file -- " + str(e)) + # Check whether we have th AID of ISIM, if so select it by its AID # EF.IST - File Id in ADF ISIM : 6f07 if '9000' == card.select_adf_by_aid(adf="isim"): diff --git a/pySim/cards.py b/pySim/cards.py index 7a61b68..850d084 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -424,6 +424,19 @@ class IsimCard(Card): data, sw = self._scc.update_record(EF_ISIM_ADF_map['IMPU'], 1, impu_tlv) return sw + def read_iari(self): + rec_cnt = self._scc.record_count(EF_ISIM_ADF_map['UICCIARI']) + uiari_recs = "" + for i in range(0, rec_cnt): + (res, sw) = self._scc.read_record(EF_ISIM_ADF_map['UICCIARI'], i + 1) + if sw == '9000': + # Skip the inital tag value ('80') byte and get length of contents + length = int(res[2:4], 16) + content = h2s(res[4:4+(length*2)]) + uiari_recs += "\t%s\n" % (len(content) and content or 'Not available') + else: + uiari_recs += "UICC IARI: Can't read, response code = %s\n" % (sw) + return uiari_recs class _MagicSimBase(Card): """ diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok index b521c6d..b2de818 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -194,6 +194,16 @@ IMS public user identity: Not available Not available +UICC IARI: + Not available + Not available + Not available + Not available + Not available + Not available + Not available + Not available + ISIM Service Table: 190200 Service 1 - P-CSCF address Service 4 - GBA-based Local Key Establishment Mechanism |