mirror of
https://gitea.osmocom.org/sim-card/pysim.git
synced 2026-03-16 18:38:32 +03:00
pySim.saip: Add ProfileElementRFM class
Change-Id: I547e02c12345932deafa4b914fcaeaa183b69798
This commit is contained in:
@@ -553,6 +553,34 @@ class ProfileElementSSD(ProfileElementSD):
|
||||
'uiccToolkitApplicationSpecificParametersField': h2b('01000001000000020112036C756500'),
|
||||
}
|
||||
|
||||
class ProfileElementRFM(ProfileElement):
|
||||
type = 'rfm'
|
||||
|
||||
def __init__(self, decoded: Optional[dict] = None,
|
||||
inst_aid: Optional[bytes] = None, sd_aid: Optional[bytes] = None,
|
||||
adf_aid: Optional[bytes] = None,
|
||||
tar_list: Optional[List[bytes]] = [], msl: Optional[int] = 0x06):
|
||||
super().__init__()
|
||||
ADM1_ACCESS = h2b('02000100')
|
||||
if decoded:
|
||||
self.decoded = decoded
|
||||
return
|
||||
# provide some reasonable defaults for a MNO-SD
|
||||
self.decoded = OrderedDict()
|
||||
self.decoded['rfm-header'] = { 'mandated': None, 'identification': None}
|
||||
self.decoded['instanceAID'] = inst_aid
|
||||
self.decoded['securityDomainAID'] = sd_aid
|
||||
self.decoded['tarList'] = tar_list
|
||||
self.decoded['minimumSecurityLevel'] = bytes([msl])
|
||||
self.decoded['uiccAccessDomain'] = ADM1_ACCESS
|
||||
self.decoded['uiccAdminAccessDomain'] = ADM1_ACCESS
|
||||
if adf_aid:
|
||||
self.decoded['adfRFMAccess'] = {
|
||||
'adfAID': adf_aid,
|
||||
'adfAccessDomain': ADM1_ACCESS,
|
||||
'adfAdminAccessDomain': ADM1_ACCESS,
|
||||
}
|
||||
|
||||
class ProfileElementUSIM(ProfileElement):
|
||||
type = 'usim'
|
||||
|
||||
|
||||
@@ -74,6 +74,13 @@ class SaipTest(unittest.TestCase):
|
||||
pes.append(inst)
|
||||
pes.to_der()
|
||||
|
||||
# RFM requires some constructor arguments
|
||||
cls = ProfileElementRFM
|
||||
with self.subTest(cls.__name__):
|
||||
pes = ProfileElementSequence()
|
||||
inst = cls(inst_aid=b'\x01\x02', sd_aid=b'\x03\x04', tar_list=[b'\x01\x02\x03'])
|
||||
pes.append(inst)
|
||||
pes.to_der()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user