From 89ff53922ecb21f490672f26318c4abe79bdede9 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sat, 6 Aug 2022 16:01:15 +0200 Subject: [PATCH] [UNTESTED] sysmocom_sja2: Support files related to OTA HTTPS features Change-Id: I5710b82c2eea6b6bf5b38882b2a1ec7d60a725d8 --- pySim/sysmocom_sja2.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/pySim/sysmocom_sja2.py b/pySim/sysmocom_sja2.py index 17abfa84..a4594c74 100644 --- a/pySim/sysmocom_sja2.py +++ b/pySim/sysmocom_sja2.py @@ -162,6 +162,28 @@ class EF_SIM_AUTH_KEY(TransparentEF): 'key'/Bytes(16), 'op_opc' /Bytes(16)) +class EF_HTTPS_CFG(TransparentEF): + def __init__(self, fid='6f2a', name='EF.HTTPS_CFG'): + super().__init__(fid, name=name, desc='HTTPS configuration') + +class EF_HTTPS_KEYS(TransparentEF): + KeyRecord = Struct('security_domain'/Int8ub, + 'key_type'/Enum(Int8ub, des=0x80, psk=0x85, aes=0x88), + 'key_version'/Int8ub, + 'key_id'/Int8ub, + 'key_length'/Int8ub, + 'key'/Bytes(this.key_length)) + def __init__(self, fid='6f2b', name='EF.HTTPS_KEYS'): + super().__init__(fid, name=name, desc='HTTPS PSK and DEK keys') + self._construct = GreedyRange(self.KeyRecord) + +class EF_HTTPS_POLL(TransparentEF): + TimeUnit = Enum(Int8ub, seconds=0, minutes=1, hours=2, days=3, ten_days=4) + def __init__(self, fid='6f2c', name='EF.HTTPS_POLL'): + super().__init__(fid, name=name, desc='HTTPS polling interval') + self._construct = Struct(Const(b'\x82'), 'time_unit'/self.TimeUnit, 'value'/Int8ub, + 'adm_session_triggering_tlv'/GreedyBytes) + class DF_SYSTEM(CardDF): def __init__(self): @@ -180,6 +202,9 @@ class DF_SYSTEM(CardDF): EF_0348_COUNT(), EF_GP_COUNT(), EF_GP_DIV_DATA(), + EF_HTTPS_CFG(), + EF_HTTPS_KEYS(), + EF_HTTPS_POLL(), ] self.add_files(files)