mirror of
https://gitea.osmocom.org/sim-card/pysim.git
synced 2026-03-16 18:38:32 +03:00
personalization.ConfigurableParameter: fix BytesIO() input
Change-Id: I0ad160eef9015e76eef10baee7c6b606fe249123
This commit is contained in:
@@ -188,6 +188,9 @@ class ConfigurableParameter(abc.ABC, metaclass=ClassVarMeta):
|
|||||||
if cls.allow_chars is not None:
|
if cls.allow_chars is not None:
|
||||||
if any(c not in cls.allow_chars for c in val):
|
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}")
|
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:
|
if cls.allow_len is not None:
|
||||||
l = cls.allow_len
|
l = cls.allow_len
|
||||||
# cls.allow_len could be one int, or a tuple of ints. Wrap a single int also in a tuple.
|
# cls.allow_len could be one int, or a tuple of ints. Wrap a single int also in a tuple.
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
import io
|
import io
|
||||||
import sys
|
import sys
|
||||||
import unittest
|
import unittest
|
||||||
|
import io
|
||||||
from importlib import resources
|
from importlib import resources
|
||||||
from osmocom.utils import hexstr
|
from osmocom.utils import hexstr
|
||||||
from pySim.esim.saip import ProfileElementSequence
|
from pySim.esim.saip import ProfileElementSequence
|
||||||
@@ -143,6 +144,10 @@ class ConfigurableParameterTest(unittest.TestCase):
|
|||||||
val=bytearray(b'\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16'),
|
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_clean_val=b'\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16',
|
||||||
expect_val='01020304050607080910111213141516'),
|
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,
|
Paramtest(param_cls=p13n.Opc,
|
||||||
val='01020304050607080910111213141516',
|
val='01020304050607080910111213141516',
|
||||||
@@ -156,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'),
|
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_clean_val=b'\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16',
|
||||||
expect_val='01020304050607080910111213141516'),
|
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'),
|
||||||
]
|
]
|
||||||
|
|
||||||
# SdKey classes don't make sense yet, will come in Ic92ddea6e1fad8167ea75baf78ffc3eb419838c4
|
# SdKey classes don't make sense yet, will come in Ic92ddea6e1fad8167ea75baf78ffc3eb419838c4
|
||||||
|
|||||||
@@ -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
|
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}
|
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)
|
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
|
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}
|
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
|
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}
|
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.3_BERTLV_SUCI.der Imsi(val= '123456':str)
|
ok: TS48v5_SAIP2.3_BERTLV_SUCI.der Imsi(val= '123456':str)
|
||||||
clean_val= '123456':str
|
clean_val= '123456':str
|
||||||
read_back_val= {'IMSI': '123456', 'IMSI-ACC': '0040'}:{str, hexstr}
|
read_back_val= {'IMSI': '123456', 'IMSI-ACC': '0040'}:{str, hexstr}
|
||||||
@@ -155,6 +163,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
|
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}
|
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)
|
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
|
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}
|
read_back_val= {'OPc': '01020304050607080910111213141516'}:{hexstr}
|
||||||
@@ -167,6 +179,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
|
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}
|
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.1B_NoBERTLV.der Imsi(val= '123456':str)
|
ok: TS48v5_SAIP2.1B_NoBERTLV.der Imsi(val= '123456':str)
|
||||||
clean_val= '123456':str
|
clean_val= '123456':str
|
||||||
read_back_val= {'IMSI': '123456', 'IMSI-ACC': '0040'}:{str, hexstr}
|
read_back_val= {'IMSI': '123456', 'IMSI-ACC': '0040'}:{str, hexstr}
|
||||||
@@ -239,6 +255,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
|
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}
|
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)
|
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
|
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}
|
read_back_val= {'OPc': '01020304050607080910111213141516'}:{hexstr}
|
||||||
@@ -251,6 +271,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
|
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}
|
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.3_NoBERTLV.der Imsi(val= '123456':str)
|
ok: TS48v5_SAIP2.3_NoBERTLV.der Imsi(val= '123456':str)
|
||||||
clean_val= '123456':str
|
clean_val= '123456':str
|
||||||
read_back_val= {'IMSI': '123456', 'IMSI-ACC': '0040'}:{str, hexstr}
|
read_back_val= {'IMSI': '123456', 'IMSI-ACC': '0040'}:{str, hexstr}
|
||||||
@@ -323,6 +347,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
|
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}
|
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)
|
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
|
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}
|
read_back_val= {'OPc': '01020304050607080910111213141516'}:{hexstr}
|
||||||
@@ -334,3 +362,7 @@ ok: TS48v5_SAIP2.3_NoBERTLV.der Opc(val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x1
|
|||||||
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':bytearray)
|
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':bytearray)
|
||||||
clean_val= b'\x01\x02\x03\x04\x05\x06\x07\x08\t\x10\x11\x12\x13\x14\x15\x16':bytes
|
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}
|
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}
|
||||||
|
|||||||
Reference in New Issue
Block a user