personalization: add int as input type for BinaryParameter

Change-Id: I31d8142cb0847a8b291f8dc614d57cb4734f0190
This commit is contained in:
Neels Hofmeyr
2025-08-04 18:50:44 +02:00
parent 6b68e7b54d
commit f3251d3214
3 changed files with 335 additions and 1 deletions

View File

@@ -358,13 +358,17 @@ class DecimalHexParam(DecimalParam):
class BinaryParam(ConfigurableParameter):
allow_types = (str, io.BytesIO, bytes, bytearray)
allow_types = (str, io.BytesIO, bytes, bytearray, int)
allow_chars = '0123456789abcdefABCDEF'
strip_chars = ' \t\r\n'
@classmethod
def validate_val(cls, val):
# take care that min_len and max_len are applied to the binary length by converting to bytes first
if isinstance(val, int):
min_len, _max_len = cls.get_len_range()
val = '%0*d' % (min_len, val)
if isinstance(val, str):
if cls.strip_chars is not None:
val = ''.join(c for c in val if c not in cls.strip_chars)

View File

@@ -104,6 +104,10 @@ class ConfigurableParameterTest(unittest.TestCase):
val='12345678',
expect_clean_val=b'12345678',
expect_val='12345678'),
Paramtest(param_cls=p13n.Puk1,
val=int(12345678),
expect_clean_val=b'12345678',
expect_val='12345678'),
Paramtest(param_cls=p13n.Puk2,
val='12345678',
@@ -122,6 +126,18 @@ class ConfigurableParameterTest(unittest.TestCase):
val='12345678',
expect_clean_val=b'12345678',
expect_val='12345678'),
Paramtest(param_cls=p13n.Pin1,
val=int(1234),
expect_clean_val=b'1234\xff\xff\xff\xff',
expect_val='1234'),
Paramtest(param_cls=p13n.Pin1,
val=int(123456),
expect_clean_val=b'123456\xff\xff',
expect_val='123456'),
Paramtest(param_cls=p13n.Pin1,
val=int(12345678),
expect_clean_val=b'12345678',
expect_val='12345678'),
Paramtest(param_cls=p13n.Adm1,
val='1234',
@@ -135,6 +151,10 @@ class ConfigurableParameterTest(unittest.TestCase):
val='12345678',
expect_clean_val=b'12345678',
expect_val='12345678'),
Paramtest(param_cls=p13n.Adm1,
val=int(123456),
expect_clean_val=b'123456\xff\xff',
expect_val='123456'),
Paramtest(param_cls=p13n.AlgorithmID,
val='Milenage',
@@ -149,6 +169,19 @@ class ConfigurableParameterTest(unittest.TestCase):
expect_clean_val=3,
expect_val='usim-test'),
Paramtest(param_cls=p13n.AlgorithmID,
val=1,
expect_clean_val=1,
expect_val='Milenage'),
Paramtest(param_cls=p13n.AlgorithmID,
val=2,
expect_clean_val=2,
expect_val='TUAK'),
Paramtest(param_cls=p13n.AlgorithmID,
val=3,
expect_clean_val=3,
expect_val='usim-test'),
Paramtest(param_cls=p13n.K,
val='01020304050607080910111213141516',
expect_clean_val=b'\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16',
@@ -165,6 +198,10 @@ class ConfigurableParameterTest(unittest.TestCase):
val=io.BytesIO(b'\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16'),
expect_clean_val=b'\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16',
expect_val='01020304050607080910111213141516'),
Paramtest(param_cls=p13n.K,
val=int(11020304050607080910111213141516),
expect_clean_val=b'\x11\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16',
expect_val='11020304050607080910111213141516'),
Paramtest(param_cls=p13n.Opc,
val='01020304050607080910111213141516',
@@ -257,6 +294,11 @@ class ConfigurableParameterTest(unittest.TestCase):
expect_clean_val=b'\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16',
expect_val='01020304050607080910111213141516',
),
Paramtest(param_cls=sdkey_cls,
val=11020304050607080910111213141516,
expect_clean_val=b'\x11\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16',
expect_val='11020304050607080910111213141516',
),
])
outputs = []

View File

@@ -19,6 +19,10 @@ ok: TS48v5_SAIP2.1A_NoBERTLV.der Puk1(val= '12345678':str)
clean_val= b'12345678':bytearray
read_back_val= {'PUK1': '12345678'}:{str}
ok: TS48v5_SAIP2.1A_NoBERTLV.der Puk1(val= 12345678:int)
clean_val= b'12345678':bytearray
read_back_val= {'PUK1': '12345678'}:{str}
ok: TS48v5_SAIP2.1A_NoBERTLV.der Puk2(val= '12345678':str)
clean_val= b'12345678':bytearray
read_back_val= {'PUK2': '12345678'}:{str}
@@ -35,6 +39,18 @@ ok: TS48v5_SAIP2.1A_NoBERTLV.der Pin1(val= '12345678':str)
clean_val= b'12345678':bytearray
read_back_val= {'PIN1': '12345678'}:{str}
ok: TS48v5_SAIP2.1A_NoBERTLV.der Pin1(val= 1234:int)
clean_val= b'1234\xff\xff\xff\xff':bytearray
read_back_val= {'PIN1': '1234'}:{str}
ok: TS48v5_SAIP2.1A_NoBERTLV.der Pin1(val= 123456:int)
clean_val= b'123456\xff\xff':bytearray
read_back_val= {'PIN1': '123456'}:{str}
ok: TS48v5_SAIP2.1A_NoBERTLV.der Pin1(val= 12345678:int)
clean_val= b'12345678':bytearray
read_back_val= {'PIN1': '12345678'}:{str}
ok: TS48v5_SAIP2.1A_NoBERTLV.der Adm1(val= '1234':str)
clean_val= b'1234\xff\xff\xff\xff':bytearray
read_back_val= {'ADM1': '1234'}:{str}
@@ -47,6 +63,10 @@ ok: TS48v5_SAIP2.1A_NoBERTLV.der Adm1(val= '12345678':str)
clean_val= b'12345678':bytearray
read_back_val= {'ADM1': '12345678'}:{str}
ok: TS48v5_SAIP2.1A_NoBERTLV.der Adm1(val= 123456:int)
clean_val= b'123456\xff\xff':bytearray
read_back_val= {'ADM1': '123456'}:{str}
ok: TS48v5_SAIP2.1A_NoBERTLV.der AlgorithmID(val= 'Milenage':str)
clean_val= 1:int
read_back_val= {'Algorithm': 'Milenage'}:{str}
@@ -59,6 +79,18 @@ ok: TS48v5_SAIP2.1A_NoBERTLV.der AlgorithmID(val= 'usim-test':str)
clean_val= 3:int
read_back_val= {'Algorithm': 'usim-test'}:{str}
ok: TS48v5_SAIP2.1A_NoBERTLV.der AlgorithmID(val= 1:int)
clean_val= 1:int
read_back_val= {'Algorithm': 'Milenage'}:{str}
ok: TS48v5_SAIP2.1A_NoBERTLV.der AlgorithmID(val= 2:int)
clean_val= 2:int
read_back_val= {'Algorithm': 'TUAK'}:{str}
ok: TS48v5_SAIP2.1A_NoBERTLV.der AlgorithmID(val= 3:int)
clean_val= 3:int
read_back_val= {'Algorithm': 'usim-test'}:{str}
ok: TS48v5_SAIP2.1A_NoBERTLV.der K(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'K': '01020304050607080910111213141516'}:{hexstr}
@@ -75,6 +107,10 @@ ok: TS48v5_SAIP2.1A_NoBERTLV.der K(val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'K': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1A_NoBERTLV.der K(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'K': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1A_NoBERTLV.der Opc(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'OPc': '01020304050607080910111213141516'}:{hexstr}
@@ -115,6 +151,10 @@ ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp80Kvn01Enc(val= b'\x01\x02\x03\x04\x05\
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP80 KVN01 ENC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp80Kvn01Enc(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP80 KVN01 ENC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp80Kvn02Dek(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP80 KVN02 DEK': '01020304050607080910111213141516'}:{hexstr}
@@ -139,6 +179,10 @@ ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp80Kvn02Dek(val= b'\x01\x02\x03\x04\x05\
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP80 KVN02 DEK': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp80Kvn02Dek(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP80 KVN02 DEK': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp81Kvn81Mac(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN81 MAC': '01020304050607080910111213141516'}:{hexstr}
@@ -163,6 +207,10 @@ ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp81Kvn81Mac(val= b'\x01\x02\x03\x04\x05\
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN81 MAC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp81Kvn81Mac(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN81 MAC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp81Kvn83Enc(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN83 ENC': '01020304050607080910111213141516'}:{hexstr}
@@ -187,6 +235,10 @@ ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp81Kvn83Enc(val= b'\x01\x02\x03\x04\x05\
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN83 ENC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp81Kvn83Enc(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN83 ENC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp02Kvn20Dek(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 20 DEK': '01020304050607080910111213141516'}:{hexstr}
@@ -211,6 +263,10 @@ ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp02Kvn20Dek(val= b'\x01\x02\x03\x04\x05\
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 20 DEK': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp02Kvn20Dek(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 20 DEK': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp02Kvn21Mac(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 21 MAC': '01020304050607080910111213141516'}:{hexstr}
@@ -235,6 +291,10 @@ ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp02Kvn21Mac(val= b'\x01\x02\x03\x04\x05\
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 21 MAC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp02Kvn21Mac(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 21 MAC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp02KvnffEnc(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 ff ENC': '01020304050607080910111213141516'}:{hexstr}
@@ -259,6 +319,10 @@ ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp02KvnffEnc(val= b'\x01\x02\x03\x04\x05\
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 ff ENC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp02KvnffEnc(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 ff ENC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp03Kvn30Dek(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 30 DEK': '01020304050607080910111213141516'}:{hexstr}
@@ -283,6 +347,10 @@ ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp03Kvn30Dek(val= b'\x01\x02\x03\x04\x05\
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 30 DEK': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp03Kvn30Dek(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 30 DEK': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp03Kvn31Mac(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 31 MAC': '01020304050607080910111213141516'}:{hexstr}
@@ -307,6 +375,10 @@ ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp03Kvn31Mac(val= b'\x01\x02\x03\x04\x05\
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 31 MAC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp03Kvn31Mac(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 31 MAC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der Imsi(val= '123456':str)
clean_val= '123456':str
read_back_val= {'IMSI': '123456', 'IMSI-ACC': '0040'}:{str, hexstr}
@@ -327,6 +399,10 @@ ok: TS48v5_SAIP2.3_BERTLV_SUCI.der Puk1(val= '12345678':str)
clean_val= b'12345678':bytearray
read_back_val= {'PUK1': '12345678'}:{str}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der Puk1(val= 12345678:int)
clean_val= b'12345678':bytearray
read_back_val= {'PUK1': '12345678'}:{str}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der Puk2(val= '12345678':str)
clean_val= b'12345678':bytearray
read_back_val= {'PUK2': '12345678'}:{str}
@@ -343,6 +419,18 @@ ok: TS48v5_SAIP2.3_BERTLV_SUCI.der Pin1(val= '12345678':str)
clean_val= b'12345678':bytearray
read_back_val= {'PIN1': '12345678'}:{str}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der Pin1(val= 1234:int)
clean_val= b'1234\xff\xff\xff\xff':bytearray
read_back_val= {'PIN1': '1234'}:{str}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der Pin1(val= 123456:int)
clean_val= b'123456\xff\xff':bytearray
read_back_val= {'PIN1': '123456'}:{str}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der Pin1(val= 12345678:int)
clean_val= b'12345678':bytearray
read_back_val= {'PIN1': '12345678'}:{str}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der Adm1(val= '1234':str)
clean_val= b'1234\xff\xff\xff\xff':bytearray
read_back_val= {'ADM1': '1234'}:{str}
@@ -355,6 +443,10 @@ ok: TS48v5_SAIP2.3_BERTLV_SUCI.der Adm1(val= '12345678':str)
clean_val= b'12345678':bytearray
read_back_val= {'ADM1': '12345678'}:{str}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der Adm1(val= 123456:int)
clean_val= b'123456\xff\xff':bytearray
read_back_val= {'ADM1': '123456'}:{str}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der AlgorithmID(val= 'Milenage':str)
clean_val= 1:int
read_back_val= {'Algorithm': 'Milenage'}:{str}
@@ -367,6 +459,18 @@ ok: TS48v5_SAIP2.3_BERTLV_SUCI.der AlgorithmID(val= 'usim-test':str)
clean_val= 3:int
read_back_val= {'Algorithm': 'usim-test'}:{str}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der AlgorithmID(val= 1:int)
clean_val= 1:int
read_back_val= {'Algorithm': 'Milenage'}:{str}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der AlgorithmID(val= 2:int)
clean_val= 2:int
read_back_val= {'Algorithm': 'TUAK'}:{str}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der AlgorithmID(val= 3:int)
clean_val= 3:int
read_back_val= {'Algorithm': 'usim-test'}:{str}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der K(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'K': '01020304050607080910111213141516'}:{hexstr}
@@ -383,6 +487,10 @@ ok: TS48v5_SAIP2.3_BERTLV_SUCI.der K(val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'K': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der K(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'K': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der Opc(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'OPc': '01020304050607080910111213141516'}:{hexstr}
@@ -423,6 +531,10 @@ ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp80Kvn01Enc(val= b'\x01\x02\x03\x04\x0
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP80 KVN01 ENC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp80Kvn01Enc(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP80 KVN01 ENC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp80Kvn02Dek(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP80 KVN02 DEK': '01020304050607080910111213141516'}:{hexstr}
@@ -447,6 +559,10 @@ ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp80Kvn02Dek(val= b'\x01\x02\x03\x04\x0
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP80 KVN02 DEK': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp80Kvn02Dek(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP80 KVN02 DEK': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp81Kvn81Mac(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN81 MAC': '01020304050607080910111213141516'}:{hexstr}
@@ -471,6 +587,10 @@ ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp81Kvn81Mac(val= b'\x01\x02\x03\x04\x0
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN81 MAC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp81Kvn81Mac(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN81 MAC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp81Kvn83Enc(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN83 ENC': '01020304050607080910111213141516'}:{hexstr}
@@ -495,6 +615,10 @@ ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp81Kvn83Enc(val= b'\x01\x02\x03\x04\x0
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN83 ENC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp81Kvn83Enc(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN83 ENC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp02Kvn20Dek(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 20 DEK': '01020304050607080910111213141516'}:{hexstr}
@@ -519,6 +643,10 @@ ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp02Kvn20Dek(val= b'\x01\x02\x03\x04\x0
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 20 DEK': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp02Kvn20Dek(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 20 DEK': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp02Kvn21Mac(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 21 MAC': '01020304050607080910111213141516'}:{hexstr}
@@ -543,6 +671,10 @@ ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp02Kvn21Mac(val= b'\x01\x02\x03\x04\x0
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 21 MAC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp02Kvn21Mac(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 21 MAC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp02KvnffEnc(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 ff ENC': '01020304050607080910111213141516'}:{hexstr}
@@ -567,6 +699,10 @@ ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp02KvnffEnc(val= b'\x01\x02\x03\x04\x0
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 ff ENC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp02KvnffEnc(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 ff ENC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp03Kvn30Dek(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 30 DEK': '01020304050607080910111213141516'}:{hexstr}
@@ -591,6 +727,10 @@ ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp03Kvn30Dek(val= b'\x01\x02\x03\x04\x0
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 30 DEK': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp03Kvn30Dek(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 30 DEK': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp03Kvn31Mac(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 31 MAC': '01020304050607080910111213141516'}:{hexstr}
@@ -615,6 +755,10 @@ ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp03Kvn31Mac(val= b'\x01\x02\x03\x04\x0
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 31 MAC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp03Kvn31Mac(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 31 MAC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1B_NoBERTLV.der Imsi(val= '123456':str)
clean_val= '123456':str
read_back_val= {'IMSI': '123456', 'IMSI-ACC': '0040'}:{str, hexstr}
@@ -635,6 +779,10 @@ ok: TS48v5_SAIP2.1B_NoBERTLV.der Puk1(val= '12345678':str)
clean_val= b'12345678':bytearray
read_back_val= {'PUK1': '12345678'}:{str}
ok: TS48v5_SAIP2.1B_NoBERTLV.der Puk1(val= 12345678:int)
clean_val= b'12345678':bytearray
read_back_val= {'PUK1': '12345678'}:{str}
ok: TS48v5_SAIP2.1B_NoBERTLV.der Puk2(val= '12345678':str)
clean_val= b'12345678':bytearray
read_back_val= {'PUK2': '12345678'}:{str}
@@ -651,6 +799,18 @@ ok: TS48v5_SAIP2.1B_NoBERTLV.der Pin1(val= '12345678':str)
clean_val= b'12345678':bytearray
read_back_val= {'PIN1': '12345678'}:{str}
ok: TS48v5_SAIP2.1B_NoBERTLV.der Pin1(val= 1234:int)
clean_val= b'1234\xff\xff\xff\xff':bytearray
read_back_val= {'PIN1': '1234'}:{str}
ok: TS48v5_SAIP2.1B_NoBERTLV.der Pin1(val= 123456:int)
clean_val= b'123456\xff\xff':bytearray
read_back_val= {'PIN1': '123456'}:{str}
ok: TS48v5_SAIP2.1B_NoBERTLV.der Pin1(val= 12345678:int)
clean_val= b'12345678':bytearray
read_back_val= {'PIN1': '12345678'}:{str}
ok: TS48v5_SAIP2.1B_NoBERTLV.der Adm1(val= '1234':str)
clean_val= b'1234\xff\xff\xff\xff':bytearray
read_back_val= {'ADM1': '1234'}:{str}
@@ -663,6 +823,10 @@ ok: TS48v5_SAIP2.1B_NoBERTLV.der Adm1(val= '12345678':str)
clean_val= b'12345678':bytearray
read_back_val= {'ADM1': '12345678'}:{str}
ok: TS48v5_SAIP2.1B_NoBERTLV.der Adm1(val= 123456:int)
clean_val= b'123456\xff\xff':bytearray
read_back_val= {'ADM1': '123456'}:{str}
ok: TS48v5_SAIP2.1B_NoBERTLV.der AlgorithmID(val= 'Milenage':str)
clean_val= 1:int
read_back_val= {'Algorithm': 'Milenage'}:{str}
@@ -675,6 +839,18 @@ ok: TS48v5_SAIP2.1B_NoBERTLV.der AlgorithmID(val= 'usim-test':str)
clean_val= 3:int
read_back_val= {'Algorithm': 'usim-test'}:{str}
ok: TS48v5_SAIP2.1B_NoBERTLV.der AlgorithmID(val= 1:int)
clean_val= 1:int
read_back_val= {'Algorithm': 'Milenage'}:{str}
ok: TS48v5_SAIP2.1B_NoBERTLV.der AlgorithmID(val= 2:int)
clean_val= 2:int
read_back_val= {'Algorithm': 'TUAK'}:{str}
ok: TS48v5_SAIP2.1B_NoBERTLV.der AlgorithmID(val= 3:int)
clean_val= 3:int
read_back_val= {'Algorithm': 'usim-test'}:{str}
ok: TS48v5_SAIP2.1B_NoBERTLV.der K(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'K': '01020304050607080910111213141516'}:{hexstr}
@@ -691,6 +867,10 @@ ok: TS48v5_SAIP2.1B_NoBERTLV.der K(val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'K': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1B_NoBERTLV.der K(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'K': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1B_NoBERTLV.der Opc(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'OPc': '01020304050607080910111213141516'}:{hexstr}
@@ -731,6 +911,10 @@ ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp80Kvn01Enc(val= b'\x01\x02\x03\x04\x05\
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP80 KVN01 ENC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp80Kvn01Enc(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP80 KVN01 ENC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp80Kvn02Dek(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP80 KVN02 DEK': '01020304050607080910111213141516'}:{hexstr}
@@ -755,6 +939,10 @@ ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp80Kvn02Dek(val= b'\x01\x02\x03\x04\x05\
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP80 KVN02 DEK': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp80Kvn02Dek(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP80 KVN02 DEK': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp81Kvn81Mac(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN81 MAC': '01020304050607080910111213141516'}:{hexstr}
@@ -779,6 +967,10 @@ ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp81Kvn81Mac(val= b'\x01\x02\x03\x04\x05\
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN81 MAC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp81Kvn81Mac(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN81 MAC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp81Kvn83Enc(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN83 ENC': '01020304050607080910111213141516'}:{hexstr}
@@ -803,6 +995,10 @@ ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp81Kvn83Enc(val= b'\x01\x02\x03\x04\x05\
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN83 ENC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp81Kvn83Enc(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN83 ENC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp02Kvn20Dek(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 20 DEK': '01020304050607080910111213141516'}:{hexstr}
@@ -827,6 +1023,10 @@ ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp02Kvn20Dek(val= b'\x01\x02\x03\x04\x05\
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 20 DEK': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp02Kvn20Dek(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 20 DEK': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp02Kvn21Mac(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 21 MAC': '01020304050607080910111213141516'}:{hexstr}
@@ -851,6 +1051,10 @@ ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp02Kvn21Mac(val= b'\x01\x02\x03\x04\x05\
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 21 MAC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp02Kvn21Mac(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 21 MAC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp02KvnffEnc(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 ff ENC': '01020304050607080910111213141516'}:{hexstr}
@@ -875,6 +1079,10 @@ ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp02KvnffEnc(val= b'\x01\x02\x03\x04\x05\
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 ff ENC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp02KvnffEnc(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 ff ENC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp03Kvn30Dek(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 30 DEK': '01020304050607080910111213141516'}:{hexstr}
@@ -899,6 +1107,10 @@ ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp03Kvn30Dek(val= b'\x01\x02\x03\x04\x05\
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 30 DEK': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp03Kvn30Dek(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 30 DEK': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp03Kvn31Mac(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 31 MAC': '01020304050607080910111213141516'}:{hexstr}
@@ -923,6 +1135,10 @@ ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp03Kvn31Mac(val= b'\x01\x02\x03\x04\x05\
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 31 MAC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp03Kvn31Mac(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 31 MAC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_NoBERTLV.der Imsi(val= '123456':str)
clean_val= '123456':str
read_back_val= {'IMSI': '123456', 'IMSI-ACC': '0040'}:{str, hexstr}
@@ -943,6 +1159,10 @@ ok: TS48v5_SAIP2.3_NoBERTLV.der Puk1(val= '12345678':str)
clean_val= b'12345678':bytearray
read_back_val= {'PUK1': '12345678'}:{str}
ok: TS48v5_SAIP2.3_NoBERTLV.der Puk1(val= 12345678:int)
clean_val= b'12345678':bytearray
read_back_val= {'PUK1': '12345678'}:{str}
ok: TS48v5_SAIP2.3_NoBERTLV.der Puk2(val= '12345678':str)
clean_val= b'12345678':bytearray
read_back_val= {'PUK2': '12345678'}:{str}
@@ -959,6 +1179,18 @@ ok: TS48v5_SAIP2.3_NoBERTLV.der Pin1(val= '12345678':str)
clean_val= b'12345678':bytearray
read_back_val= {'PIN1': '12345678'}:{str}
ok: TS48v5_SAIP2.3_NoBERTLV.der Pin1(val= 1234:int)
clean_val= b'1234\xff\xff\xff\xff':bytearray
read_back_val= {'PIN1': '1234'}:{str}
ok: TS48v5_SAIP2.3_NoBERTLV.der Pin1(val= 123456:int)
clean_val= b'123456\xff\xff':bytearray
read_back_val= {'PIN1': '123456'}:{str}
ok: TS48v5_SAIP2.3_NoBERTLV.der Pin1(val= 12345678:int)
clean_val= b'12345678':bytearray
read_back_val= {'PIN1': '12345678'}:{str}
ok: TS48v5_SAIP2.3_NoBERTLV.der Adm1(val= '1234':str)
clean_val= b'1234\xff\xff\xff\xff':bytearray
read_back_val= {'ADM1': '1234'}:{str}
@@ -971,6 +1203,10 @@ ok: TS48v5_SAIP2.3_NoBERTLV.der Adm1(val= '12345678':str)
clean_val= b'12345678':bytearray
read_back_val= {'ADM1': '12345678'}:{str}
ok: TS48v5_SAIP2.3_NoBERTLV.der Adm1(val= 123456:int)
clean_val= b'123456\xff\xff':bytearray
read_back_val= {'ADM1': '123456'}:{str}
ok: TS48v5_SAIP2.3_NoBERTLV.der AlgorithmID(val= 'Milenage':str)
clean_val= 1:int
read_back_val= {'Algorithm': 'Milenage'}:{str}
@@ -983,6 +1219,18 @@ ok: TS48v5_SAIP2.3_NoBERTLV.der AlgorithmID(val= 'usim-test':str)
clean_val= 3:int
read_back_val= {'Algorithm': 'usim-test'}:{str}
ok: TS48v5_SAIP2.3_NoBERTLV.der AlgorithmID(val= 1:int)
clean_val= 1:int
read_back_val= {'Algorithm': 'Milenage'}:{str}
ok: TS48v5_SAIP2.3_NoBERTLV.der AlgorithmID(val= 2:int)
clean_val= 2:int
read_back_val= {'Algorithm': 'TUAK'}:{str}
ok: TS48v5_SAIP2.3_NoBERTLV.der AlgorithmID(val= 3:int)
clean_val= 3:int
read_back_val= {'Algorithm': 'usim-test'}:{str}
ok: TS48v5_SAIP2.3_NoBERTLV.der K(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'K': '01020304050607080910111213141516'}:{hexstr}
@@ -999,6 +1247,10 @@ ok: TS48v5_SAIP2.3_NoBERTLV.der K(val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'K': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_NoBERTLV.der K(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'K': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_NoBERTLV.der Opc(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'OPc': '01020304050607080910111213141516'}:{hexstr}
@@ -1039,6 +1291,10 @@ ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp80Kvn01Enc(val= b'\x01\x02\x03\x04\x05\x
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP80 KVN01 ENC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp80Kvn01Enc(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP80 KVN01 ENC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp80Kvn02Dek(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP80 KVN02 DEK': '01020304050607080910111213141516'}:{hexstr}
@@ -1063,6 +1319,10 @@ ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp80Kvn02Dek(val= b'\x01\x02\x03\x04\x05\x
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP80 KVN02 DEK': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp80Kvn02Dek(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP80 KVN02 DEK': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp81Kvn81Mac(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN81 MAC': '01020304050607080910111213141516'}:{hexstr}
@@ -1087,6 +1347,10 @@ ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp81Kvn81Mac(val= b'\x01\x02\x03\x04\x05\x
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN81 MAC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp81Kvn81Mac(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN81 MAC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp81Kvn83Enc(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN83 ENC': '01020304050607080910111213141516'}:{hexstr}
@@ -1111,6 +1375,10 @@ ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp81Kvn83Enc(val= b'\x01\x02\x03\x04\x05\x
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN83 ENC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp81Kvn83Enc(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP81 KVN83 ENC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp02Kvn20Dek(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 20 DEK': '01020304050607080910111213141516'}:{hexstr}
@@ -1135,6 +1403,10 @@ ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp02Kvn20Dek(val= b'\x01\x02\x03\x04\x05\x
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 20 DEK': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp02Kvn20Dek(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 20 DEK': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp02Kvn21Mac(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 21 MAC': '01020304050607080910111213141516'}:{hexstr}
@@ -1159,6 +1431,10 @@ ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp02Kvn21Mac(val= b'\x01\x02\x03\x04\x05\x
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 21 MAC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp02Kvn21Mac(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 21 MAC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp02KvnffEnc(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 ff ENC': '01020304050607080910111213141516'}:{hexstr}
@@ -1183,6 +1459,10 @@ ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp02KvnffEnc(val= b'\x01\x02\x03\x04\x05\x
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 ff ENC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp02KvnffEnc(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP02 ff ENC': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp03Kvn30Dek(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 30 DEK': '01020304050607080910111213141516'}:{hexstr}
@@ -1207,6 +1487,10 @@ ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp03Kvn30Dek(val= b'\x01\x02\x03\x04\x05\x
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 30 DEK': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp03Kvn30Dek(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 30 DEK': '11020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp03Kvn31Mac(val= '01020304050607080910111213141516':str)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 31 MAC': '01020304050607080910111213141516'}:{hexstr}
@@ -1230,3 +1514,7 @@ ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp03Kvn31Mac(val= b'\x01\x02\x03\x04\x05\x
ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp03Kvn31Mac(val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':BytesIO)
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 31 MAC': '01020304050607080910111213141516'}:{hexstr}
ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp03Kvn31Mac(val= 11020304050607080910111213141516:int)
clean_val= b'\x11\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
read_back_val= {'SCP03 31 MAC': '11020304050607080910111213141516'}:{hexstr}