aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSupreeth Herle <herlesupreeth@gmail.com>2020-06-01 12:53:57 +0200
committerherlesupreeth <herlesupreeth@gmail.com>2021-01-05 15:59:38 +0100
commitbe3b64167aeea40fc851940a80ec7c5033e5d00f (patch)
treec8bb5d21f74f4dc0ad9c10e2f8bb3f12cad7e026
parenta97944b6ca9e39dcd34be980e50f11257803f031 (diff)
pySim-read.py: Enable reading of UICC IARI from ISIM
-rwxr-xr-xpySim-read.py8
-rw-r--r--pySim/cards.py13
-rw-r--r--pysim-testdata/sysmoISIM-SJA2.ok10
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