lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/42057?usp=email )
Change subject: euicc: extend get_profiles_info to retrieve all known tags ......................................................................
euicc: extend get_profiles_info to retrieve all known tags
get_profiles_info only request for the default tag list, but not all tags. Add --all to the function to request for all known tags.
Change-Id: Ia6878519a480bd625bb1fa2567c1fd2e0e89b071 --- M pySim/euicc.py 1 file changed, 21 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/57/42057/1
diff --git a/pySim/euicc.py b/pySim/euicc.py index ccb65be..763d7ff 100644 --- a/pySim/euicc.py +++ b/pySim/euicc.py @@ -444,9 +444,28 @@ d = rn.to_dict() self._cmd.poutput_json(flatten_dict_lists(d['notification_sent_resp']))
- def do_get_profiles_info(self, _opts): + get_profiles_info_parser = argparse.ArgumentParser() + get_profiles_info_parser.add_argument('--all', action='store_true', help='Retrieve all known tags of a profile') + + @cmd2.with_argparser(get_profiles_info_parser) + def do_get_profiles_info(self, opts): """Perform an ES10c GetProfilesInfo function.""" - pi = CardApplicationISDR.store_data_tlv(self._cmd.lchan.scc, ProfileInfoListReq(), ProfileInfoListResp) + if opts.all: + tags = [nest.tag for nest in ProfileInfo.nested_collection_cls().nested] + u8tags = [] + # TODO: rework TagList to support 2 byte tags to not filter it into u8 tags + for tag in tags: + if tag <= 255: + u8tags.append(tag) + elif tag <= 65535: + u8tags.append(tag >> 8) + u8tags.append(tag & 0xff) + # Ignoring 3 byte tags + req = ProfileInfoListReq(children=[TagList(decoded=u8tags)]) + else: + req = ProfileInfoListReq() + + pi = CardApplicationISDR.store_data_tlv(self._cmd.lchan.scc, req, ProfileInfoListResp) d = pi.to_dict() self._cmd.poutput_json(flatten_dict_lists(d['profile_info_list_resp']))