From 2bee70cbac8c2fbff4c8809e125dc4833884e4a3 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Thu, 25 May 2023 09:14:28 +0200 Subject: [PATCH] ts_31_102: Add DF.SAIP support DF.SAIP (SIMalliance Interoperable Profile) is not part of 31.102, but something from the eSIM/eUICC universe of TCA (formerly known as SIMalliance). However, as 3GPP does not specify how/where the card stores the information required for SUCI calculation, the TCA/SIMalliance standard is the only standard there is. Some CardOS start to use this standard even for non-eSIM/eUICC use cases. Change-Id: Iffb65af335dfdbd7791fca9a0a6ad4b79814a57c --- pySim/ts_31_102.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 77b83251..76f13587 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -1451,6 +1451,18 @@ class DF_USIM_5GS(CardDF): self.add_files(files) +class DF_SAIP(CardDF): + """This is not really TS 31.102 but part of the eUICC Profile Package: Interoperable Format Technical + Specification as released by TCA (formerly SIMalliance)""" + def __init__(self, fid='5FD0', name='DF.SAIP', desc='SIMalliance Interoperable Profile', **kwargs): + super().__init__(fid=fid, name=name, desc=desc, **kwargs) + files = [ + # uses the same file format as DF.5GS/EF_SUCI_Calc_Info, but different FID + EF_SUCI_Calc_Info(fid='4f01') + ] + self.add_files(files) + + class ADF_USIM(CardADF): def __init__(self, aid='a0000000871002', name='ADF.USIM', fid=None, sfid=None, desc='USIM Application'): @@ -1576,6 +1588,7 @@ class ADF_USIM(CardADF): DF_USIM_5GS(service=[122, 123, 124, 125, 126, 127, 129, 130]), DF_SNPN(service=[143,146]), DF_5G_ProSe(service=139), + DF_SAIP(), ] self.add_files(files)