From 9b9efb6a7a5ae65c50154e73b61f056601d1048e Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Tue, 31 Jan 2023 16:40:54 +0100 Subject: [PATCH] ts_31_102: Fix several bugs in EF_ECC encoder The encoder function apparently was never tested, it didn't match at all the output of the decoder, not even in terms of the string keys of the dict. Change-Id: Id67bc39d52c4dfb39dc7756d8041cbd552ccbbc4 --- pySim/ts_31_102.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 4d1c3dcb..4125f4ad 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -622,9 +622,12 @@ class EF_ECC(LinFixedEF): if in_json is None: return b'\xff\xff\xff\xff' code = EF_ECC.cc_construct.build(in_json['call_code']) - svc_category = EF_ECC.category_construct.build(in_json['category']) - alpha_id = EF_ECC.alpha_construct.build(in_json['alpha_id']) - # FIXME: alpha_id needs padding up to 'record_length - 4' + svc_category = EF_ECC.category_construct.build(in_json['service_category']) + if 'alpha_id' in in_json: + alpha_id = EF_ECC.alpha_construct.build(in_json['alpha_id']) + # FIXME: alpha_id needs padding up to 'record_length - 4' + else: + alpha_id = b'' return code + alpha_id + svc_category