mirror of
https://gitea.osmocom.org/sim-card/pysim.git
synced 2026-03-17 02:48:34 +03:00
tlv: Fix encoding of zero-valued TLVs
If a TLV was elementary (no nested IEs), and it had only a single integer content whose value is 0, we erroneously encoded that as zero-length TLV (len=0, no value part): >>> rf = pySim.euicc.RefreshFlag(decoded=0); >>> rf.to_bytes() b'' >>> rf.to_tlv() b'\x81\x00' After this change it is correct: >>> rf = pySim.euicc.RefreshFlag(decoded=0); >>> rf.to_bytes() b'\x00' >>> rf.to_tlv() b'\x81\x01\x00' Change-Id: I5f4c0555cff7df9ccfc4a56da12766d1bf89122f
This commit is contained in:
@@ -87,7 +87,7 @@ class Transcodable(abc.ABC):
|
||||
def to_bytes(self) -> bytes:
|
||||
"""Convert from internal representation to binary bytes. Store the binary result
|
||||
in the internal state and return it."""
|
||||
if not self.decoded:
|
||||
if self.decoded == None:
|
||||
do = b''
|
||||
elif self._construct:
|
||||
do = self._construct.build(self.decoded, total_len=None)
|
||||
|
||||
Reference in New Issue
Block a user