laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/41581?usp=email )
Change subject: ts_31_102: EF SUCI_Calc_Info: fix decoding empty files ......................................................................
ts_31_102: EF SUCI_Calc_Info: fix decoding empty files
When trying to use `edit_binary_decoded` with an empty file, pysim runs into a len(None) exception, because hpkl.to_dict()['hnet_pubkey_list'] returns None.
Can reproduced with a CCC Camp 2023 usim and editing the file. a000ff..ff (len = 200)
Co-authored-by: Harald Welte laforge@osmocom.org Change-Id: Ib8e322e65dd768bfd49e7a5620a2163f12a74ec7 --- M pySim/ts_31_102.py 1 file changed, 9 insertions(+), 1 deletion(-)
Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved
diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 2f7b945..b354b32 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -285,6 +285,14 @@ {"hnet_pubkey_identifier": 11, "hnet_pubkey": h2b("d1bc365f4997d17ce4374e72181431cbfeba9e1b98d7618f79d48561b144672a")}]} ), ] + _test_decode = [ + ( 'A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF', + {"prot_scheme_id_list": [], + "hnet_pubkey_list": []} ), + ( 'A000A100FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF', + {"prot_scheme_id_list": [], + "hnet_pubkey_list": []} ), + ] # 3GPP TS 31.102 Section 4.4.11.8 class ProtSchemeIdList(BER_TLV_IE, tag=0xa0): # FIXME: 3GPP TS 24.501 Protection Scheme Identifier @@ -389,7 +397,7 @@ # remaining data holds Home Network Public Key Data Object hpkl = EF_SUCI_Calc_Info.HnetPubkeyList() hpkl.from_tlv(in_bytes[pos:]) - hnet_pubkey_list = self._compact_pubkey_list(hpkl.to_dict()['hnet_pubkey_list']) + hnet_pubkey_list = self._compact_pubkey_list(hpkl.to_dict()['hnet_pubkey_list'] or [])
return { 'prot_scheme_id_list': prot_scheme_id_list,