mirror of
https://gitea.osmocom.org/sim-card/pysim.git
synced 2026-03-26 15:28:35 +03:00
ts_102_221: properly decode short file identifier
The SFI TLV contanins not the raw SFI, but it contains the SFI shifted to left by 3 bits (for some strange reason). So let's un-shift it. Change-Id: Ibc69b99010d2a25cbb69b6a3d1585d0cb63f1345
This commit is contained in:
@@ -186,7 +186,14 @@ class SecurityAttribReferenced(BER_TLV_IE, tag=0x8b):
|
|||||||
|
|
||||||
# ETSI TS 102 221 11.1.1.4.8
|
# ETSI TS 102 221 11.1.1.4.8
|
||||||
class ShortFileIdentifier(BER_TLV_IE, tag=0x88):
|
class ShortFileIdentifier(BER_TLV_IE, tag=0x88):
|
||||||
_construct = HexAdapter(COptional(Bytes(1)))
|
# If the length of the TLV is 1, the SFI value is indicated in the 5 most significant bits (bits b8 to b4)
|
||||||
|
# of the TLV value field. In this case, bits b3 to b1 shall be set to 0
|
||||||
|
class Shift3RAdapter(Adapter):
|
||||||
|
def _decode(self, obj, context, path):
|
||||||
|
return obj >> 3
|
||||||
|
def _encode(self, obj, context, path):
|
||||||
|
return obj << 3
|
||||||
|
_construct = COptional(Shift3RAdapter(Byte))
|
||||||
|
|
||||||
# ETSI TS 102 221 11.1.1.4.9
|
# ETSI TS 102 221 11.1.1.4.9
|
||||||
class LifeCycleStatusInteger(BER_TLV_IE, tag=0x8A):
|
class LifeCycleStatusInteger(BER_TLV_IE, tag=0x8A):
|
||||||
|
|||||||
Reference in New Issue
Block a user