pySim-read.py: Enable reading of UICC IARI from ISIM

Change-Id: Iba222421f2fcc2b9b12605608bf640f7627904d0
This commit is contained in:
Supreeth Herle 2020-06-01 12:53:57 +02:00 committed by herlesupreeth
parent a97944b6ca
commit be3b64167a
3 changed files with 31 additions and 0 deletions

View File

@ -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"):

View File

@ -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):
"""

View File

@ -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