diff --git a/pySim/esim/saip/personalization.py b/pySim/esim/saip/personalization.py index 76c131c7..22922eb5 100644 --- a/pySim/esim/saip/personalization.py +++ b/pySim/esim/saip/personalization.py @@ -198,6 +198,9 @@ class ConfigurableParameter: if cls.allow_chars is not None: if any(c not in cls.allow_chars for c in val): raise ValueError(f"invalid characters in input value {val!r}, valid chars are {cls.allow_chars}") + elif isinstance(val, io.BytesIO): + val = val.getvalue() + if cls.allow_len is not None: l = cls.allow_len # cls.allow_len could be one int, or a tuple of ints. Wrap a single int also in a tuple. diff --git a/tests/unittests/test_configurable_parameters.py b/tests/unittests/test_configurable_parameters.py index f6152eb9..8fe9a9ec 100755 --- a/tests/unittests/test_configurable_parameters.py +++ b/tests/unittests/test_configurable_parameters.py @@ -20,6 +20,7 @@ import io import sys import unittest +import io from importlib import resources from osmocom.utils import hexstr from pySim.esim.saip import ProfileElementSequence @@ -160,6 +161,10 @@ class ConfigurableParameterTest(unittest.TestCase): val=bytearray(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=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.Opc, val='01020304050607080910111213141516', @@ -173,6 +178,10 @@ class ConfigurableParameterTest(unittest.TestCase): val=bytearray(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.Opc, + 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'), ] for sdkey_cls in ( @@ -243,6 +252,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=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', + ), ]) outputs = [] diff --git a/tests/unittests/xo/test_configurable_parameters b/tests/unittests/xo/test_configurable_parameters index a0971403..43ec998f 100644 --- a/tests/unittests/xo/test_configurable_parameters +++ b/tests/unittests/xo/test_configurable_parameters @@ -71,6 +71,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= 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= {'K': '01020304050607080910111213141516'}:{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} @@ -83,6 +87,10 @@ ok: TS48v5_SAIP2.1A_NoBERTLV.der Opc(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= {'OPc': '01020304050607080910111213141516'}:{hexstr} +ok: TS48v5_SAIP2.1A_NoBERTLV.der Opc(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= {'OPc': '01020304050607080910111213141516'}:{hexstr} + ok: TS48v5_SAIP2.1A_NoBERTLV.der SdKeyScp80Kvn01Enc(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 KVN01 ENC': '01020304050607080910111213141516'}:{hexstr} @@ -103,6 +111,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= 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= {'SCP80 KVN01 ENC': '01020304050607080910111213141516'}:{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} @@ -123,6 +135,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= 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= {'SCP80 KVN02 DEK': '01020304050607080910111213141516'}:{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} @@ -143,6 +159,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= 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= {'SCP81 KVN81 MAC': '01020304050607080910111213141516'}:{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} @@ -163,6 +183,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= 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= {'SCP81 KVN83 ENC': '01020304050607080910111213141516'}:{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} @@ -183,6 +207,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= 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= {'SCP02 20 DEK': '01020304050607080910111213141516'}:{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} @@ -203,6 +231,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= 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= {'SCP02 21 MAC': '01020304050607080910111213141516'}:{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} @@ -223,6 +255,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= 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= {'SCP02 ff ENC': '01020304050607080910111213141516'}:{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} @@ -243,6 +279,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= 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 30 DEK': '01020304050607080910111213141516'}:{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} @@ -263,6 +303,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= 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_BERTLV_SUCI.der Imsi(val= '123456':str) clean_val= '123456':str read_back_val= {'IMSI': '123456', 'IMSI-ACC': '0040'}:{str, hexstr} @@ -335,6 +379,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= 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= {'K': '01020304050607080910111213141516'}:{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} @@ -347,6 +395,10 @@ ok: TS48v5_SAIP2.3_BERTLV_SUCI.der Opc(val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t 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} +ok: TS48v5_SAIP2.3_BERTLV_SUCI.der Opc(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= {'OPc': '01020304050607080910111213141516'}:{hexstr} + ok: TS48v5_SAIP2.3_BERTLV_SUCI.der SdKeyScp80Kvn01Enc(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 KVN01 ENC': '01020304050607080910111213141516'}:{hexstr} @@ -367,6 +419,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= 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= {'SCP80 KVN01 ENC': '01020304050607080910111213141516'}:{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} @@ -387,6 +443,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= 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= {'SCP80 KVN02 DEK': '01020304050607080910111213141516'}:{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} @@ -407,6 +467,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= 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= {'SCP81 KVN81 MAC': '01020304050607080910111213141516'}:{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} @@ -427,6 +491,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= 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= {'SCP81 KVN83 ENC': '01020304050607080910111213141516'}:{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} @@ -447,6 +515,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= 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= {'SCP02 20 DEK': '01020304050607080910111213141516'}:{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} @@ -467,6 +539,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= 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= {'SCP02 21 MAC': '01020304050607080910111213141516'}:{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} @@ -487,6 +563,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= 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= {'SCP02 ff ENC': '01020304050607080910111213141516'}:{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} @@ -507,6 +587,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= 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 30 DEK': '01020304050607080910111213141516'}:{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} @@ -527,6 +611,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= 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.1B_NoBERTLV.der Imsi(val= '123456':str) clean_val= '123456':str read_back_val= {'IMSI': '123456', 'IMSI-ACC': '0040'}:{str, hexstr} @@ -599,6 +687,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= 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= {'K': '01020304050607080910111213141516'}:{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} @@ -611,6 +703,10 @@ ok: TS48v5_SAIP2.1B_NoBERTLV.der Opc(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= {'OPc': '01020304050607080910111213141516'}:{hexstr} +ok: TS48v5_SAIP2.1B_NoBERTLV.der Opc(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= {'OPc': '01020304050607080910111213141516'}:{hexstr} + ok: TS48v5_SAIP2.1B_NoBERTLV.der SdKeyScp80Kvn01Enc(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 KVN01 ENC': '01020304050607080910111213141516'}:{hexstr} @@ -631,6 +727,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= 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= {'SCP80 KVN01 ENC': '01020304050607080910111213141516'}:{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} @@ -651,6 +751,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= 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= {'SCP80 KVN02 DEK': '01020304050607080910111213141516'}:{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} @@ -671,6 +775,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= 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= {'SCP81 KVN81 MAC': '01020304050607080910111213141516'}:{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} @@ -691,6 +799,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= 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= {'SCP81 KVN83 ENC': '01020304050607080910111213141516'}:{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} @@ -711,6 +823,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= 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= {'SCP02 20 DEK': '01020304050607080910111213141516'}:{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} @@ -731,6 +847,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= 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= {'SCP02 21 MAC': '01020304050607080910111213141516'}:{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} @@ -751,6 +871,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= 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= {'SCP02 ff ENC': '01020304050607080910111213141516'}:{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} @@ -771,6 +895,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= 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 30 DEK': '01020304050607080910111213141516'}:{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} @@ -791,6 +919,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= 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 Imsi(val= '123456':str) clean_val= '123456':str read_back_val= {'IMSI': '123456', 'IMSI-ACC': '0040'}:{str, hexstr} @@ -863,6 +995,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= 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= {'K': '01020304050607080910111213141516'}:{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} @@ -875,6 +1011,10 @@ ok: TS48v5_SAIP2.3_NoBERTLV.der Opc(val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x1 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} +ok: TS48v5_SAIP2.3_NoBERTLV.der Opc(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= {'OPc': '01020304050607080910111213141516'}:{hexstr} + ok: TS48v5_SAIP2.3_NoBERTLV.der SdKeyScp80Kvn01Enc(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 KVN01 ENC': '01020304050607080910111213141516'}:{hexstr} @@ -895,6 +1035,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= 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= {'SCP80 KVN01 ENC': '01020304050607080910111213141516'}:{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} @@ -915,6 +1059,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= 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= {'SCP80 KVN02 DEK': '01020304050607080910111213141516'}:{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} @@ -935,6 +1083,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= 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= {'SCP81 KVN81 MAC': '01020304050607080910111213141516'}:{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} @@ -955,6 +1107,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= 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= {'SCP81 KVN83 ENC': '01020304050607080910111213141516'}:{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} @@ -975,6 +1131,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= 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= {'SCP02 20 DEK': '01020304050607080910111213141516'}:{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} @@ -995,6 +1155,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= 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= {'SCP02 21 MAC': '01020304050607080910111213141516'}:{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} @@ -1015,6 +1179,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= 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= {'SCP02 ff ENC': '01020304050607080910111213141516'}:{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} @@ -1035,6 +1203,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= 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 30 DEK': '01020304050607080910111213141516'}:{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} @@ -1054,3 +1226,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':bytearray) 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= 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}