laforge has submitted this change. ( 
https://gerrit.osmocom.org/c/pysim/+/41733?usp=email )

Change subject: pySim.ts_51_011.EF_SMSP: Properly handle odd-length ScAddr / 
TpAddr
......................................................................

pySim.ts_51_011.EF_SMSP: Properly handle odd-length ScAddr / TpAddr

As the input phone number ("address") might be of an odd length of
digits, let's use PaddedBcdAdapter to fix two problems:

1) strip any potential trailing f in decoding
2) fix truncation of last digit during encoding

Change-Id: I1e9865e172bc29b8a31c281106d903934e81c686
Depends: pyosmocom Ib5afb5ab5c2bc9b519dc92818fc6974f7eecba16 (0.0.12
---
M pySim/ts_51_011.py
M requirements.txt
M setup.py
M tests/pySim-trace_test/pySim-trace_test_gsmtap.pcapng.ok
4 files changed, 5 insertions(+), 5 deletions(-)

Approvals:
  fixeria: Looks good to me, but someone else must approve
  Jenkins Builder: Verified
  dexter: Looks good to me, approved




diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py
index 0161f7d..d37715f 100644
--- a/pySim/ts_51_011.py
+++ b/pySim/ts_51_011.py
@@ -249,7 +249,7 @@
                               "call_number": "" },
             "tp_sc_addr": { "length": 8, "ton_npi": { "ext": True, 
"type_of_number": "international",
                                                       "numbering_plan_id": 
"isdn_e164" },
-                            "call_number": "4915790109999f" },
+                            "call_number": "4915790109999" },
             "tp_pid": b"\x00", "tp_dcs": b"\x00", "tp_vp_minutes": 4320 } ),
         ( 
'454e6574776f726b73fffffffffffffff1ffffffffffffffffffffffffffffffffffffffffffffffff0000a7',
           { "alpha_id": "ENetworks", "parameter_indicators": { "tp_dest_addr": 
False, "tp_sc_addr": True,
@@ -298,7 +298,7 @@
     def __init__(self, fid='6f42', sfid=None, name='EF.SMSP', desc='Short 
message service parameters', **kwargs):
         super().__init__(fid, sfid=sfid, name=name, desc=desc, rec_len=(28, 
None), **kwargs)
         ScAddr = Struct('length'/Rebuild(Int8ub, lambda ctx: 
EF_SMSP.sc_addr_len(ctx)),
-                        'ton_npi'/TonNpi, 
'call_number'/BcdAdapter(Rpad(Bytes(10))))
+                        'ton_npi'/TonNpi, 
'call_number'/PaddedBcdAdapter(Rpad(Bytes(10))))
         self._construct = 
Struct('alpha_id'/COptional(GsmOrUcs2Adapter(Rpad(Bytes(this._.total_len-28)))),
                                  
'parameter_indicators'/InvertAdapter(BitStruct(
                                                                         
Const(7, BitsInteger(3)),
diff --git a/requirements.txt b/requirements.txt
index 056d912..2ffd999 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,7 +5,7 @@
 jsonpath-ng
 construct>=2.10.70
 bidict
-pyosmocom>=0.0.9
+pyosmocom>=0.0.12
 pyyaml>=5.1
 termcolor
 colorlog
diff --git a/setup.py b/setup.py
index 1b78274..3942df1 100644
--- a/setup.py
+++ b/setup.py
@@ -25,7 +25,7 @@
         "jsonpath-ng",
         "construct >= 2.10.70",
         "bidict",
-        "pyosmocom >= 0.0.9",
+        "pyosmocom >= 0.0.12",
         "pyyaml >= 5.1",
         "termcolor",
         "colorlog",
diff --git a/tests/pySim-trace_test/pySim-trace_test_gsmtap.pcapng.ok 
b/tests/pySim-trace_test/pySim-trace_test_gsmtap.pcapng.ok
index 49b28bd..c965250 100644
--- a/tests/pySim-trace_test/pySim-trace_test_gsmtap.pcapng.ok
+++ b/tests/pySim-trace_test/pySim-trace_test_gsmtap.pcapng.ok
@@ -143,7 +143,7 @@
 ===============================
 00 SEARCH RECORD    MF/ADF.USIM/EF.SMSP                 01       9000 {"cmd": 
{"file": "currently_selected_ef", "mode": "forward_search", "record_number": 1, 
"search_string": 
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},
 "rsp": {"body": [2], "sw": "9000"}}
 ===============================
-00 READ RECORD      MF/ADF.USIM/EF.SMSP                 01       9000 
{"alpha_id": "", "parameter_indicators": {"tp_vp": true, "tp_dcs": true, 
"tp_pid": true, "tp_sc_addr": true, "tp_dest_addr": false}, "tp_dest_addr": 
{"length": 255, "ton_npi": {"ext": true, "type_of_number": 
"reserved_for_extension", "numbering_plan_id": "reserved_for_extension"}, 
"call_number": ""}, "tp_sc_addr": {"length": 5, "ton_npi": {"ext": true, 
"type_of_number": "unknown", "numbering_plan_id": "isdn_e164"}, "call_number": 
"0015555f"}, "tp_pid": "00", "tp_dcs": "00", "tp_vp_minutes": 5}
+00 READ RECORD      MF/ADF.USIM/EF.SMSP                 01       9000 
{"alpha_id": "", "parameter_indicators": {"tp_vp": true, "tp_dcs": true, 
"tp_pid": true, "tp_sc_addr": true, "tp_dest_addr": false}, "tp_dest_addr": 
{"length": 255, "ton_npi": {"ext": true, "type_of_number": 
"reserved_for_extension", "numbering_plan_id": "reserved_for_extension"}, 
"call_number": ""}, "tp_sc_addr": {"length": 5, "ton_npi": {"ext": true, 
"type_of_number": "unknown", "numbering_plan_id": "isdn_e164"}, "call_number": 
"0015555"}, "tp_pid": "00", "tp_dcs": "00", "tp_vp_minutes": 5}
 ===============================
 00 SEARCH RECORD    MF/ADF.USIM/EF.SMS                  01       9000 {"cmd": 
{"file": "currently_selected_ef", "mode": "forward_search", "record_number": 1, 
"search_string": 
"00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"},
 "rsp": {"body": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "sw": "9000"}}
 ===============================

--
To view, visit https://gerrit.osmocom.org/c/pysim/+/41733?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I1e9865e172bc29b8a31c281106d903934e81c686
Gerrit-Change-Number: 41733
Gerrit-PatchSet: 4
Gerrit-Owner: laforge <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <[email protected]>
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>

Reply via email to