diff options
author | Harald Welte <laforge@osmocom.org> | 2021-05-21 21:47:55 +0200 |
---|---|---|
committer | Harald Welte <laforge@osmocom.org> | 2021-05-25 09:43:13 +0200 |
commit | c1475307c85db0289d44bef7482b4c75d5a0de92 (patch) | |
tree | d03eb7fac257cc1afba7582158bbb0d8cd5c3f79 /pySim/utils.py | |
parent | de02718631edbce9cc0aad0f55255c0b8bbb3662 (diff) |
bertlv_parse_one: Also return remainder after end of TLV
Change-Id: I10ebd87f72ee934561118b768108e5dc76277660
Diffstat (limited to 'pySim/utils.py')
-rw-r--r-- | pySim/utils.py | 6 |
1 files changed, 4 insertions, 2 deletions
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 @@ def bertlv_encode_len(length:int) -> bytes: 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 @@ def bertlv_parse_one(binary:bytes) -> (dict, int, bytes): """ (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) |