Change in pysim[master]: bertlv_parse_one: Also return remainder after end of TLV

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.org
Tue May 25 08:30:13 UTC 2021


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


More information about the gerrit-log mailing list