laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/18737 )
Change subject: utils.py add LOCI EFs decode functions ...................................................................... utils.py add LOCI EFs decode functions The LOCI, PSLOCI and EPSLOCI contain some info, including the PLMN, added helper functions to decode it Change-Id: Ibb513ff7d1dc6d33b354ae26cbd9c390ea3c8efc --- M pySim/ts_31_102.py M pySim/utils.py 2 files changed, 36 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 473e595..215ed4c 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -137,6 +137,12 @@ 111: 'ePDG configuration Information for Emergency Service configured', } +LOCI_STATUS_map = { + 0: 'updated', + 1: 'not updated', + 2: 'plmn not allowed', + 3: 'locatation area not allowed' +} EF_USIM_ADF_map = { 'LI': '6F05', 'ARR': '6F06', diff --git a/pySim/utils.py b/pySim/utils.py index 496b918..2ca6165 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -183,6 +183,36 @@ s += "\t%s # %s\n" % (rec_data, rec_str) return s +def dec_loci(hexstr): + res = {'tmsi': '', 'mcc': 0, 'mnc': 0, 'lac': '', 'status': 0} + res['tmsi'] = hexstr[:8] + res['mcc'] = dec_mcc_from_plmn(hexstr[8:14]) + res['mnc'] = dec_mnc_from_plmn(hexstr[8:14]) + res['lac'] = hexstr[14:18] + res['status'] = h2i(hexstr[20:22]) + return res + +def dec_psloci(hexstr): + res = {'p-tmsi': '', 'p-tmsi-sig': '', 'mcc': 0, 'mnc': 0, 'lac': '', 'rac': '', 'status': 0} + res['p-tmsi'] = hexstr[:8] + res['p-tmsi-sig'] = hexstr[8:14] + res['mcc'] = dec_mcc_from_plmn(hexstr[14:20]) + res['mnc'] = dec_mnc_from_plmn(hexstr[14:20]) + res['lac'] = hexstr[20:24] + res['rac'] = hexstr[24:26] + res['status'] = h2i(hexstr[26:28]) + return res + +def dec_epsloci(hexstr): + res = {'guti': '', 'mcc': 0, 'mnc': 0, 'tac': '', 'status': 0} + res['guti'] = hexstr[:24] + res['tai'] = hexstr[24:34] + res['mcc'] = dec_mcc_from_plmn(hexstr[24:30]) + res['mnc'] = dec_mnc_from_plmn(hexstr[24:30]) + res['tac'] = hexstr[30:34] + res['status'] = h2i(hexstr[34:36]) + return res + def derive_milenage_opc(ki_hex, op_hex): """ Run the milenage algorithm to calculate OPC from Ki and OP -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18737 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibb513ff7d1dc6d33b354ae26cbd9c390ea3c8efc Gerrit-Change-Number: 18737 Gerrit-PatchSet: 2 Gerrit-Owner: gui...@gmail.com <gui...@gmail.com> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <lafo...@osmocom.org> Gerrit-MessageType: merged