laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/41674?usp=email )
Change subject: ts_51_011/EF.SMSP: Fix parsing of parameter_indicators ......................................................................
ts_51_011/EF.SMSP: Fix parsing of parameter_indicators
There's a 3-bit RFU field that (unlike everything else in USIM/UICC) considers '1' to be the default. Let's make sure we get that right during encode.
Change-Id: Ibe24a07f5f73d875d2077fa55471dbfc4e90da23 --- M pySim/ts_51_011.py 1 file changed, 8 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/74/41674/1
diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index cdab5de..5b397cd 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -243,7 +243,7 @@ _test_decode = [ ( '454e6574776f726b73fffffffffffffff1ffffffffffffffffffffffffffffffffffffffffffffffff0000a7', { "alpha_id": "ENetworks", "parameter_indicators": { "tp_dest_addr": False, "tp_sc_addr": True, - "tp_pid": True, "tp_dcs": True, "tp_vp": True }, + "tp_pid": True, "tp_dcs": True, "tp_vp": False }, "tp_dest_addr": { "length": 255, "ton_npi": { "ext": True, "type_of_number": "reserved_for_extension", "numbering_plan_id": "reserved_for_extension" }, "call_number": "" }, @@ -281,8 +281,13 @@ super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=(28, None), **kwargs) ScAddr = Struct('length'/Int8ub, 'ton_npi'/TonNpi, 'call_number'/BcdAdapter(Rpad(Bytes(10)))) self._construct = Struct('alpha_id'/COptional(GsmOrUcs2Adapter(Rpad(Bytes(this._.total_len-28)))), - 'parameter_indicators'/InvertAdapter(FlagsEnum(Byte, tp_dest_addr=1, tp_sc_addr=2, - tp_pid=3, tp_dcs=4, tp_vp=5)), + 'parameter_indicators'/InvertAdapter(BitStruct( + Const(7, BitsInteger(3)), + 'tp_vp'/Flag, + 'tp_dcs'/Flag, + 'tp_pid'/Flag, + 'tp_sc_addr'/Flag, + 'tp_dest_addr'/Flag)), 'tp_dest_addr'/ScAddr, 'tp_sc_addr'/ScAddr,