laforge has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/pysim/+/27328 )


Change subject: ts_102_221: properly decode short file identifier
......................................................................

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
---
M pySim/ts_102_221.py
1 file changed, 8 insertions(+), 1 deletion(-)



  git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/28/27328/1

diff --git a/pySim/ts_102_221.py b/pySim/ts_102_221.py
index ac2a60e..708b50b 100644
--- a/pySim/ts_102_221.py
+++ b/pySim/ts_102_221.py
@@ -186,7 +186,14 @@

 # ETSI TS 102 221 11.1.1.4.8
 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
 class LifeCycleStatusInteger(BER_TLV_IE, tag=0x8A):

--
To view, visit https://gerrit.osmocom.org/c/pysim/+/27328
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: Ibc69b99010d2a25cbb69b6a3d1585d0cb63f1345
Gerrit-Change-Number: 27328
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <[email protected]>
Gerrit-MessageType: newchange

Reply via email to