This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
laforge gerrit-no-reply at lists.osmocom.orglaforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/24347 ) Change subject: bertlv_parse_one: Also return remainder after end of TLV ...................................................................... bertlv_parse_one: Also return remainder after end of TLV Change-Id: I10ebd87f72ee934561118b768108e5dc76277660 --- M pySim-shell.py M pySim/filesystem.py M pySim/utils.py 3 files changed, 6 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/pySim-shell.py b/pySim-shell.py index bbfe7e9..0069661 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -265,7 +265,7 @@ tags = self._cmd.rs.retrieve_tags() for t in tags: result = self._cmd.rs.retrieve_data(t) - (tag, l, val) = bertlv_parse_one(h2b(result[0])) + (tag, l, val, remainer) = bertlv_parse_one(h2b(result[0])) self._cmd.poutput("set_data 0x%02x %s" % (t, b2h(val))) else: raise RuntimeError('Unsupported structure "%s" of file "%s"' % (structure, filename)) diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 780da26..8cdb23e 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -1260,7 +1260,7 @@ if not isinstance(self.selected_file, BerTlvEF): raise TypeError("Only works with BER-TLV EF") data, sw = self.card._scc.retrieve_data(self.selected_file.fid, 0x5c) - tag, length, value = bertlv_parse_one(h2b(data)) + tag, length, value, remainder = bertlv_parse_one(h2b(data)) return list(value) def set_data(self, tag:int, data_hex:str): diff --git a/pySim/utils.py b/pySim/utils.py index 1191983..3d96580 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -155,7 +155,7 @@ else: raise ValueError("Length > 32bits not supported") -def bertlv_parse_one(binary:bytes) -> (dict, int, bytes): +def bertlv_parse_one(binary:bytes) -> (dict, int, bytes, bytes): """Parse a single TLV IE at the start of the given binary data. Args: binary : binary input data of BER-TLV length field @@ -164,7 +164,9 @@ """ (tagdict, remainder) = bertlv_parse_tag(binary) (length, remainder) = bertlv_parse_len(remainder) - return (tagdict, length, remainder) + value = remainder[:length] + remainder = remainder[length:] + return (tagdict, length, value, remainder) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/24347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I10ebd87f72ee934561118b768108e5dc76277660 Gerrit-Change-Number: 24347 Gerrit-PatchSet: 2 Gerrit-Owner: laforge <laforge at osmocom.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de> Gerrit-Reviewer: laforge <laforge at osmocom.org> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210525/5d73239a/attachment.htm>