dexter submitted this change.

View Change

Approvals: jolly: Looks good to me, approved Jenkins Builder: Verified
eIM, IPAd: migrate from SGP.32 V.1.0.1 to SGP.32 V.1.2

SGP.32 V.1.2 is not backward compatible to SGP.32 V.1.0.1. This patch updates
the ASN.1 specification and the TTCN3 templates and types accordingly.

It also applies the bare minimum of changes required to compile the eIM and IPAd
testcases.

Related: SYS#8100
Related: SYS#8101
Change-Id: Id9e112669d9ed8caaec0893c55189eb566fe59be
Co-authored-by: Andreas Eversberg <aeversberg@sysmocom.de>
---
M .checkpatch.conf
M eim/REST_Types_JSON.ttcn
M eim/eIM_Tests.ttcn
M ipad/IPAd_Tests.ttcn
M library/euicc/SGP32Definitions.asn
M library/euicc/SGP32Definitions_Templates.ttcn
M library/euicc/SGP32Definitions_Types.ttcn
7 files changed, 1,177 insertions(+), 751 deletions(-)

diff --git a/.checkpatch.conf b/.checkpatch.conf
index 04702ba..2d8f958 100644
--- a/.checkpatch.conf
+++ b/.checkpatch.conf
@@ -3,4 +3,5 @@
--exclude ^ipad/example_ca/pki/certs_by_serial/.*\.pem$
--exclude ^ipad/example_ca/pki/issued/.*\.crt$
--exclude ^ipad/example_ca/vars$
---exclude ^smdpp/.*$
\ No newline at end of file
+--exclude ^smdpp/.*$
+--exclude ^library/euicc/SGP32Definitions.asn$
\ No newline at end of file
diff --git a/eim/REST_Types_JSON.ttcn b/eim/REST_Types_JSON.ttcn
index dee54c9..93168cb 100644
--- a/eim/REST_Types_JSON.ttcn
+++ b/eim/REST_Types_JSON.ttcn
@@ -36,10 +36,10 @@
record {
} getRAT,
record {
- boolean autoEnableFlag,
- objid smdpOid optional,
- charstring smdpAddress optional
- } configureAutoEnable
+ boolean immediateEnableFlag,
+ objid defaultSmdpOid optional,
+ charstring defaultSmdpAddress optional
+ } configureImmediateEnable
};

type union JSON_REST_Eco {
@@ -126,7 +126,7 @@
record of JSON_REST_ProfileInfo profileInfoList optional
} listProfileInfoResult,
record of JSON_REST_ProfilePolicyAuthorisationRule getRATResult,
- charstring configureAutoEnableResult,
+ charstring configureImmediateEnableResult,
record {
charstring addEimResultCode,
integer associationToken optional
@@ -257,9 +257,9 @@
order := { psmo := { { getRAT := {} } } }
}

-template (value) JSON_REST_Resource ts_JSON_REST_psmo_order_configureAutoEnable(octetstring eidValue) := {
+template (value) JSON_REST_Resource ts_JSON_REST_psmo_order_configureImmediateEnable(octetstring eidValue) := {
eidValue := oct2str(eidValue),
- order := { psmo := { { configureAutoEnable := { autoEnableFlag := true, smdpOid := objid {1 2 3}, smdpAddress := "smdp.example.com" } } } }
+ order := { psmo := { { configureImmediateEnable := { immediateEnableFlag := true, defaultSmdpOid := objid {1 2 3}, defaultSmdpAddress := "smdp.example.com" } } } }
}

const octetstring eimConfigurationData :=
diff --git a/eim/eIM_Tests.ttcn b/eim/eIM_Tests.ttcn
index b3a3519..1e24b9e 100644
--- a/eim/eIM_Tests.ttcn
+++ b/eim/eIM_Tests.ttcn
@@ -545,16 +545,15 @@
esipa_res := f_esipa_transceive(valueof(ts_getEimPackageRequest(str2oct(order.eidValue))),
tr_getEimPackageResponse_euiccPkgReq(euiccPackage));

- /* The eIM will generate a counterValue and a transactionId, both must be echoed in the
- * response. */
+ /* The eIM will generate a counterValue and an eimTransactionId, both must be echoed in the response. */
euiccPackageResult.euiccPackageResultSigned.euiccPackageResultDataSigned.counterValue :=
esipa_res.getEimPackageResponse.euiccPackageRequest.euiccPackageSigned.counterValue;
- euiccPackageResult.euiccPackageResultSigned.euiccPackageResultDataSigned.transactionId :=
- esipa_res.getEimPackageResponse.euiccPackageRequest.euiccPackageSigned.transactionId;
+ euiccPackageResult.euiccPackageResultSigned.euiccPackageResultDataSigned.eimTransactionId :=
+ esipa_res.getEimPackageResponse.euiccPackageRequest.euiccPackageSigned.eimTransactionId;

/* Respond with a plausible EimPackage result */
- f_esipa_transceive(valueof(ts_provideEimPackageResult_ePRAndNotif(euiccPackageResult)),
- tr_provideEimPackageResultResponse_eimAck);
+ f_esipa_transceive(valueof(ts_provideEimPackageResult_ePRAndNotif(eID, euiccPackageResult)),
+ tr_provideEimPackageResultResponse_empty);

f_rest_lookup_resource(resource_id, facility, tr_JSON_REST_success);
f_rest_delete_resource(resource_id, facility);
@@ -666,19 +665,19 @@
setverdict(pass);
}

-/* (see also above) Test configureAutoEnable PSMO */
-private function f_TC_proc_euicc_pkg_dwnld_exec_configureAutoEnable_psmo(charstring id) runs on eIM_ConnHdlr {
- var JSON_REST_Resource psmo_order := valueof(ts_JSON_REST_psmo_order_configureAutoEnable(eID));
- var template EuiccPackage euiccPackage := tr_euiccPackage_configureAutoEnable;
+/* (see also above) Test configureImmediateEnable PSMO */
+private function f_TC_proc_euicc_pkg_dwnld_exec_configureImmediateEnable_psmo(charstring id) runs on eIM_ConnHdlr {
+ var JSON_REST_Resource psmo_order := valueof(ts_JSON_REST_psmo_order_configureImmediateEnable(eID));
+ var template EuiccPackage euiccPackage := tr_euiccPackage_configureImmediateEnable;
f_TC_proc_euicc_pkg_dwnld_exec_psmo_or_eco("psmo", id, psmo_order, euiccPackage,
- ts_euiccPackageResultSigned_configureAutoEnable);
+ ts_euiccPackageResultSigned_configureImmediateEnable);
}
-testcase TC_proc_euicc_pkg_dwnld_exec_configureAutoEnable_psmo() runs on MTC_CT {
+testcase TC_proc_euicc_pkg_dwnld_exec_configureImmediateEnable_psmo() runs on MTC_CT {
var charstring id := testcasename();
var eIM_ConnHdlrPars pars := f_init_pars();
var eIM_ConnHdlr vc_conn;
f_init(id);
- vc_conn := f_start_handler(refers(f_TC_proc_euicc_pkg_dwnld_exec_configureAutoEnable_psmo), pars);
+ vc_conn := f_start_handler(refers(f_TC_proc_euicc_pkg_dwnld_exec_configureImmediateEnable_psmo), pars);
vc_conn.done;
setverdict(pass);
}
@@ -799,7 +798,7 @@
execute ( TC_proc_euicc_pkg_dwnld_exec_disable_and_delete_psmo() );
execute ( TC_proc_euicc_pkg_dwnld_exec_listProfileInfo_psmo() );
execute ( TC_proc_euicc_pkg_dwnld_exec_getRAT_psmo() );
- execute ( TC_proc_euicc_pkg_dwnld_exec_configureAutoEnable_psmo() );
+ execute ( TC_proc_euicc_pkg_dwnld_exec_configureImmediateEnable_psmo() );
execute ( TC_proc_euicc_pkg_dwnld_exec_addEim_eco() );
execute ( TC_proc_euicc_pkg_dwnld_exec_deleteEim_eco() );
execute ( TC_proc_euicc_pkg_dwnld_exec_updateEim_eco() );
@@ -807,4 +806,4 @@
execute ( TC_proc_euicc_data_req() );
}

-}
\ No newline at end of file
+}
diff --git a/ipad/IPAd_Tests.ttcn b/ipad/IPAd_Tests.ttcn
index c8f3928..cf7ff5e 100644
--- a/ipad/IPAd_Tests.ttcn
+++ b/ipad/IPAd_Tests.ttcn
@@ -479,7 +479,7 @@
}

/* Responds to the profile auto enable attempt by the iPAD */
- f_vpcd_transceive(enc_EnableUsingDDResponse(valueof(ts_enableUsingDDResponse)));
+ f_vpcd_transceive(enc_ImmediateEnableResponse(valueof(ts_immediateEnableResponse)));

/* Receive ProfileInstallationResult from iPAD->eIM */
f_esipa_transceive_empty_response(tr_handleNotificationEsipa_prfleInstRslt);
diff --git a/library/euicc/SGP32Definitions.asn b/library/euicc/SGP32Definitions.asn
index 8456ef4..69c3bf3 100644
--- a/library/euicc/SGP32Definitions.asn
+++ b/library/euicc/SGP32Definitions.asn
@@ -1,806 +1,918 @@
--- Section 2.1.3
--- ASN1START
+--Version V1.2
SGP32Definitions {joint-iso-itu-t(2) international-organizations(23) gsma(146) rsp(1) asn1modules(1) sgp32v1(31)}
DEFINITIONS
AUTOMATIC TAGS
EXTENSIBILITY IMPLIED ::=
BEGIN

-IMPORTS Certificate, SubjectPublicKeyInfo
-FROM PKIX1Explicit88 {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-explicit(18)}
+IMPORTS Certificate, SubjectPublicKeyInfo FROM PKIX1Explicit88 {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-explicit(18)}
SubjectKeyIdentifier FROM PKIX1Implicit88 {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-implicit(19)}
-
-ProfileInfo, EuiccSigned1, CancelSessionReason, RetrieveNotificationsListResponse,
-ServerSigned1, RspCapability, Iccid, TransactionId, ProfileInfoListRequest,
-ProfileInfoListResponse, RulesAuthorisationTable, EUICCInfo1, DeviceInfo,
-VersionType, UICCCapability, PprIds,
-CertificationDataObject, Octet1, Octet16, Octet32, PrepareDownloadResponse,
-PrepareDownloadResponseOk, PrepareDownloadResponseError,
-AuthenticateServerResponse, AuthenticateResponseOk, AuthenticateResponseError,
-CtxParams1, ProfileInstallationResult, ProfileInstallationResultData,
-OtherSignedNotification, EuiccSignPIR, ErrorResult, NotificationMetadata,
-CancelSessionResponse, CancelSessionResponseOk,
-StoreMetadataRequest, SmdpSigned2, BoundProfilePackage, NotificationEvent
-FROM RSPDefinitions {joint-iso-itu-t(2) international-organizations(23) gsma(146) rsp(1) asn1modules(1) sgp22v2(2)};
--- ASN1STOP
-
--- Section 2.11.1.1
--- ASN1START
+CancelSessionReason, ServerSigned1, RspCapability, Iccid, TransactionId, ProfileInfoListRequest, RulesAuthorisationTable, EUICCInfo1, DeviceInfo, VersionType, UICCCapability, PprIds, CertificationDataObject, Octet1, Octet16, Octet32, PrepareDownloadResponseOk, PrepareDownloadResponseError, AuthenticateResponseError, CtxParams1, ProfileInstallationResultData, OtherSignedNotification, EuiccSignPIR, ErrorResult, NotificationMetadata, CancelSessionResponseOk, SmdpSigned2, BoundProfilePackage, NotificationEvent, VendorSpecificExtension, DpProprietaryData, OperatorId, NotificationConfigurationInformation, ProfileClass, IconType, ProfileState, OctetTo16 FROM RSPDefinitions {joint-iso-itu-t(2) international-organizations(23) gsma(146) rsp(1) asn1modules(1) sgp22v2(2)};
EuiccPackageRequest ::= [81] SEQUENCE { -- Tag ' BF51', #SupportedForPsmoV1.0.0#
- euiccPackageSigned EuiccPackageSigned,
- eimSignature [APPLICATION 55] OCTET STRING -- Tag '5F37'
+ euiccPackageSigned EuiccPackageSigned,
+ eimSignature [APPLICATION 55] OCTET STRING -- Tag '5F37'
}
+
EuiccPackageSigned ::= SEQUENCE {
- eimId [0] UTF8String,
- eidValue [APPLICATION 26] Octet16, -- Tag '5A'
- counterValue [1] INTEGER,
- transactionId [2] TransactionId OPTIONAL,
- euiccPackage EuiccPackage
+ eimId [0] UTF8String (SIZE(1..128)),
+ eidValue [APPLICATION 26] Octet16, -- Tag '5A'
+ counterValue [1] INTEGER,
+ eimTransactionId [2] TransactionId OPTIONAL,
+ euiccPackage EuiccPackage
}
+
EuiccPackage ::= CHOICE {
- psmoList SEQUENCE OF Psmo, -- #SupportedForPsmoV1.0.0#
- ecoList SEQUENCE OF Eco -- #SupportedForEcoV1.0.0#
+ psmoList SEQUENCE OF Psmo, -- #SupportedForPsmoV1.0.0#
+ ecoList SEQUENCE OF Eco -- #SupportedForEcoV1.0.0#
}
--- ASN1STOP
-
-
--- Section 2.11.1.1.1
--- ASN1START
EimConfigurationData ::= SEQUENCE {
- eimId [0] UTF8String, -- eimId of eIM
- eimFqdn [1] UTF8String OPTIONAL, -- FQDN of eIM
- eimIdType [2] EimIdType OPTIONAL,
- counterValue [3] INTEGER OPTIONAL, -- initial counterValue for the eIM
- associationToken [4] INTEGER OPTIONAL,
- eimPublicKeyData [5] CHOICE {
- eimPublicKey SubjectPublicKeyInfo, -- public key of eIM, used for eUICC Package signature verification, where the encoding follows X.509 standard
- eimCertificate Certificate -- certificate of eIM, used for eUICC Package signature verification, where the encoding follows X.509 standard
- } OPTIONAL,
- trustedPublicKeyDataTls [6] CHOICE {
- trustedEimPkTls SubjectPublicKeyInfo, -- public key of eIM, used for TLS or DTLS, where the encoding follows X.509 standard
- trustedCertificateTls Certificate -- either the certificate of eIM, used for (D)TLS, or the certificate of the CA, where the encoding follows X.509 standard
- } OPTIONAL,
- eimSupportedProtocol [7] EimSupportedProtocol OPTIONAL,
- euiccCiPKId [8] SubjectKeyIdentifier OPTIONAL -- CI Public Key Identifier supported on the eUICC for signature creation
+ eimId [0] UTF8String (SIZE(1..128)), -- eimId of eIM
+ eimFqdn [1] UTF8String OPTIONAL, -- FQDN of eIM or intermediate server, if used
+ eimIdType [2] EimIdType OPTIONAL,
+ counterValue [3] INTEGER OPTIONAL, -- initial counterValue for the eIM
+ associationToken [4] INTEGER OPTIONAL,
+ eimPublicKeyData [5] CHOICE {
+ eimPublicKey SubjectPublicKeyInfo, -- public key of eIM, used for eUICC Package signature verification, where the encoding follows X.509 standard
+ eimCertificate Certificate -- certificate of eIM, used for eUICC Package signature verification, where the encoding follows X.509 standard
+ } OPTIONAL,
+ trustedPublicKeyDataTls [6] CHOICE {
+ trustedEimPkTls SubjectPublicKeyInfo, -- public key of eIM, used for TLS or DTLS, where the encoding follows X.509 standard
+ trustedCertificateTls Certificate -- either the certificate of eIM, used for (D)TLS, or the certificate of the CA, where the encoding follows X.509 standard
+ } OPTIONAL,
+ eimSupportedProtocol [7] EimSupportedProtocol OPTIONAL,
+ euiccCiPKId [8] SubjectKeyIdentifier OPTIONAL, -- CI Public Key Identifier supported on the eUICC for signature creation
+ indirectProfileDownload [9] NULL OPTIONAL -- support of Indirect Profile download with indicated EimSupportedProtocol
}
EimIdType ::= INTEGER {
- eimIdTypeOid(1),
- eimIdTypeFqdn(2),
- eimIdTypeProprietary(3)
+ eimIdTypeOid(1),
+ eimIdTypeFqdn(2),
+ eimIdTypeProprietary(3)
}
- EimSupportedProtocol ::= BIT STRING {
- eimRetrieveHttps(0),
- eimRetrieveCoaps(1),
- eimInjectHttps(2),
- eimInjectCoaps(3),
- eimProprietary(4)
+EimSupportedProtocol ::= BIT STRING {
+ eimRetrieveHttps(0),
+ eimRetrieveCoaps(1),
+ eimInjectHttps(2),
+ eimInjectCoaps(3),
+ eimProprietary(4)
}
--- ASN1STOP

--- Section 2.11.1.1.2
--- ASN1START
Eco ::= CHOICE {
- addEim [8] EimConfigurationData, -- for eIM configuration data see 2.11.1
- deleteEim [9] SEQUENCE {eimId [0] UTF8String},
- updateEim [10] EimConfigurationData,
- listEim [11] SEQUENCE {}
+ addEim [8] EimConfigurationData, -- for eIM configuration data see 2.11.1
+ deleteEim [9] SEQUENCE {eimId [0] UTF8String},
+ updateEim [10] EimConfigurationData,
+ listEim [11] SEQUENCE {}
}
--- ASN1STOP
-
--- Section 2.11.1.1.3
--- ASN1START
Psmo ::= CHOICE {
- enable [3] SEQUENCE {
- iccid [APPLICATION 26] Iccid,
- rollbackFlag NULL OPTIONAL
- },
- disable [4] SEQUENCE {iccid [APPLICATION 26] Iccid},
- delete [5] SEQUENCE {iccid [APPLICATION 26] Iccid},
- listProfileInfo [45] ProfileInfoListRequest, -- Tag 'BF2D'
- getRAT [6] SEQUENCE {},
- configureAutoEnable [7] SEQUENCE {
- autoEnableFlag [0] NULL OPTIONAL,
- smdpOid [1] OBJECT IDENTIFIER OPTIONAL,
- smdpAddress [2] UTF8String OPTIONAL
- }
+ enable [3] SEQUENCE {
+ iccid [APPLICATION 26] Iccid,
+ rollbackFlag NULL OPTIONAL
+ },
+ disable [4] SEQUENCE {iccid [APPLICATION 26] Iccid},
+ delete [5] SEQUENCE {iccid [APPLICATION 26] Iccid},
+ listProfileInfo [45] ProfileInfoListRequest, -- Tag 'BF2D'
+ getRAT [6] SEQUENCE {},
+ configureImmediateEnable [7] SEQUENCE {
+ immediateEnableFlag [0] NULL OPTIONAL,
+ defaultSmdpOid [1] OBJECT IDENTIFIER OPTIONAL,
+ defaultSmdpAddress [2] UTF8String OPTIONAL
+ },
+ setFallbackAttribute [8] SEQUENCE {iccid [APPLICATION 26] Iccid},
+ unsetFallbackAttribute [9] SEQUENCE {},
+ setDefaultDpAddress [101] SGP32-SetDefaultDpAddressRequest -- Tag 'BF65'
}
--- ASN1STOP
-
-
--- Section 2.11.1.2
--- ASN1START
IpaEuiccDataRequest ::= [82] SEQUENCE { -- Tag BF52
- tagList [APPLICATION 28] OCTET STRING, -- Tag '5C'
- euiccCiPKId SubjectKeyIdentifier OPTIONAL, -- CI Public Key Identifier supported on the eUICC for signature creation
- searchCriteria [1] CHOICE {
- seqNumber [0] INTEGER,
- profileManagementOperation [1] NotificationEvent,
- euiccPackageResults [2] NULL
- } OPTIONAL
+ tagList [APPLICATION 28] OCTET STRING, -- Tag '5C'
+ euiccCiPKIdentifierToBeUsed OCTET STRING OPTIONAL, -- CI Public Key Identifier (possibly truncated) supported on the eUICC for signature creation
+ searchCriteriaNotification [1] CHOICE {
+ seqNumber [0] INTEGER,
+ profileManagementOperation [1] NotificationEvent
+ } OPTIONAL,
+ searchCriteriaEuiccPackageResult [2] CHOICE {
+ seqNumber [0] INTEGER
+ } OPTIONAL,
+ eimTransactionId [3] TransactionId OPTIONAL -- Tag '83'
}
--- ASN1STOP
-
--- Section 2.11.1.3
--- ASN1START
ProfileDownloadTriggerRequest ::= [84] SEQUENCE { -- Tag 'BF54'
- profileDownloadData [0] ProfileDownloadData OPTIONAL,
- eimTransactionId [2] TransactionId OPTIONAL
+ profileDownloadData [0] ProfileDownloadData OPTIONAL,
+ eimTransactionId [2] TransactionId OPTIONAL
}
ProfileDownloadData ::= CHOICE {
- activationCode [0] UTF8String (SIZE(0..255)),
- contactDefaultSmdp [1] NULL,
- contactSmds [2] SEQUENCE {
- smdsAddress UTF8String OPTIONAL
- }
+ activationCode [0] UTF8String (SIZE(0..255)),
+ contactDefaultSmdp [1] NULL,
+ contactSmds [2] SEQUENCE {
+ smdsAddress UTF8String OPTIONAL
+ }
}
--- ASN1STOP
-
--- Section 2.11.1.4
--- ASN1START
EimAcknowledgements ::= [83] SEQUENCE OF SequenceNumber -- Tag BF53
SequenceNumber ::= [0] INTEGER
--- ASN1STOP
-
-
--- Section 2.11.2.1
--- ASN1START
EuiccPackageResult ::= [81] CHOICE { -- Tag 'BF51' #SupportedForPsmoV1.0.0#
- euiccPackageResultSigned EuiccPackageResultSigned,
- euiccPackageErrorSigned EuiccPackageErrorSigned,
- euiccPackageErrorUnsigned EuiccPackageErrorUnsigned
+ euiccPackageResultSigned EuiccPackageResultSigned,
+ euiccPackageErrorSigned EuiccPackageErrorSigned,
+ euiccPackageErrorUnsigned EuiccPackageErrorUnsigned
}
EuiccPackageResultSigned ::= SEQUENCE {
- euiccPackageResultDataSigned EuiccPackageResultDataSigned,
- euiccSignEPR [APPLICATION 55] OCTET STRING -- Tag '5F37'
+ euiccPackageResultDataSigned EuiccPackageResultDataSigned,
+ euiccSignEPR [APPLICATION 55] OCTET STRING -- Tag '5F37'
}
EuiccPackageResultDataSigned ::= SEQUENCE { -- #SupportedForPsmoV1.0.0#
- eimId [0] UTF8String,
- counterValue [1] INTEGER,
- transactionId[2] TransactionId OPTIONAL,
- seqNumber [3] INTEGER,
- euiccResult SEQUENCE OF EuiccResultData
+ eimId [0] UTF8String (SIZE(1..128)),
+ counterValue [1] INTEGER,
+ eimTransactionId[2] TransactionId OPTIONAL,
+ seqNumber [3] INTEGER,
+ euiccResult SEQUENCE OF EuiccResultData
}
EuiccResultData ::= CHOICE {
- enableResult [3] EnableProfileResult,
- disableResult [4] DisableProfileResult,
- deleteResult [5] DeleteProfileResult,
- listProfileInfoResult [45] SGP32-ProfileInfoListResponse,
- getRATResult [6] RulesAuthorisationTable, -- see SGP.22
- configureAutoEnableResult [7] ConfigureAutoEnableResult,
- addEimResult [8] AddEimResult,
- deleteEimResult [9] DeleteEimResult,
- updateEimResult [10] UpdateEimResult,
- listEimResult [11] ListEimResult,
- rollbackResult [12] RollbackProfileResult,
- processingTerminated INTEGER {
- resultSizeOverflow(1),
- unknownOrDamagedCommand(2),
- interruption(3),
- undefinedError(127)
- }
+ enableResult [3] EnableProfileResult,
+ disableResult [4] DisableProfileResult,
+ deleteResult [5] DeleteProfileResult,
+ listProfileInfoResult [45] SGP32-ProfileInfoListResponse,
+ getRATResult [6] RulesAuthorisationTable, -- see SGP.22
+ configureImmediateEnableResult [7] ConfigureImmediateEnableResult,
+ addEimResult [8] AddEimResult,
+ deleteEimResult [9] DeleteEimResult,
+ updateEimResult [10] UpdateEimResult,
+ listEimResult [11] ListEimResult,
+ rollbackResult [12] RollbackProfileResult,
+ setFallbackAttributeResult [13] SetFallbackAttributeResult,
+ unsetFallbackAttributeResult [14] UnsetFallbackAttributeResult,
+ processingTerminated INTEGER {
+ resultSizeOverflow(1),
+ unknownOrDamagedCommand(2),
+ interruption(3),
+ undefinedError(127)
+ },
+ setDefaultDpAddressResult [101] SGP32-SetDefaultDpAddressResponse
}
EuiccPackageErrorSigned ::= SEQUENCE {
- euiccPackageErrorDataSigned EuiccPackageErrorDataSigned,
- euiccSignEPE [APPLICATION 55] OCTET STRING -- Tag '5F37'
+ euiccPackageErrorDataSigned EuiccPackageErrorDataSigned,
+ euiccSignEPE [APPLICATION 55] OCTET STRING -- Tag '5F37'
}
EuiccPackageErrorDataSigned ::= SEQUENCE {
- eimId [0] UTF8String,
- counterValue [1] INTEGER,
- transactionId [2] TransactionId OPTIONAL,
- euiccPackageErrorCode EuiccPackageErrorCode
+ eimId [0] UTF8String (SIZE(1..128)),
+ counterValue [1] INTEGER,
+ eimTransactionId [2] TransactionId OPTIONAL,
+ euiccPackageErrorCode EuiccPackageErrorCode
}
-EuiccPackageErrorCode ::= INTEGER { invalidEid(3), replayError(4), counterValueOutOfRange(6), sizeOverflow(15), undefinedError(127)}
+EuiccPackageErrorCode ::= INTEGER {
+ invalidEid(3),
+ replayError(4),
+ counterValueOutOfRange(6),
+ sizeOverflow(15),
+ ecallActive(104),
+ undefinedError(127)}
+
EuiccPackageErrorUnsigned ::= SEQUENCE {
- eimId [0] UTF8String,
- associationToken [4] INTEGER OPTIONAL
+ eimId [0] UTF8String (SIZE(1..128)),
+ eimTransactionId [2] TransactionId OPTIONAL,
+ associationToken [4] INTEGER OPTIONAL
}
-ConfigureAutoEnableResult ::= INTEGER {
- ok(0),
- insufficientMemory(1),
- commandError(7),
- undefinedError(127)
+ConfigureImmediateEnableResult ::= INTEGER {
+ ok(0),
+ insufficientMemory(1),
+ commandError(7),
+ undefinedError(127)
}
EnableProfileResult ::= INTEGER {
- ok(0),
- iccidOrAidNotFound(1),
- profileNotInDisabledState(2),
- undefinedError(127)
+ ok(0),
+ iccidOrAidNotFound(1),
+ profileNotInDisabledState(2),
+ disallowedByPolicy(3),
+ catBusy(5),
+ rollbackNotAvailable(20),
+ undefinedError(127)
}
DisableProfileResult ::= INTEGER {
- ok(0),
- iccidOrAidNotFound(1),
- profileNotInEnabledState(2),
- undefinedError(127)
+ ok(0),
+ iccidOrAidNotFound(1),
+ profileNotInEnabledState(2),
+ disallowedByPolicy(3),
+ catBusy(5),
+ undefinedError(127)
}
DeleteProfileResult ::= INTEGER {
- ok(0),
- iccidOrAidNotFound(1),
- profileNotInDisabledState(2),
- undefinedError(127)
+ ok(0),
+ iccidOrAidNotFound(1),
+ profileNotInDisabledState(2),
+ disallowedByPolicy(3),
+ rollbackNotAvailable(20),
+ returnFallbackProfile(21),
+ undefinedError(127)
}
+-- workaround: add prefix ("SGP32-") to avoid clash with SGP.22
SGP32-ProfileInfoListResponse ::= [45] CHOICE {
- profileInfoListOk SEQUENCE OF ProfileInfo, -- see SGP.22
- profileInfoListError SGP32-ProfileInfoListError
+ profileInfoListOk SEQUENCE OF SGP32-ProfileInfo, -- see SGP.22
+ profileInfoListError SGP32-ProfileInfoListError
}
+-- workaround: add prefix ("SGP32-") to avoid clash with SGP.22
SGP32-ProfileInfoListError ::= INTEGER {
- incorrectInputValues(1),
- profileChangeOngoing (11),
- undefinedError(127)
+ incorrectInputValues(1),
+ profileChangeOngoing (11),
+ undefinedError(127)
}
RollbackProfileResult ::= INTEGER {
- ok(0),
- undefinedError(127)
+ ok(0),
+ undefinedError(127)
+}
+SetFallbackAttributeResult ::= INTEGER {
+ ok(0),
+ iccidOrAidNotFound (1),
+ fallbackNotAllowed (2),
+ fallbackProfileEnabled (3),
+ undefinedError (127)
+}
+UnsetFallbackAttributeResult ::= INTEGER {
+ ok(0),
+ noFallbackAttribute(2),
+ fallbackProfileEnabled (3),
+ commandError(7),
+ undefinedError (127)
}
AddEimResult ::= CHOICE {
- associationToken [4] INTEGER,
- addEimResultCode INTEGER {
- ok(0),
- insufficientMemory(1),
- ciPKUnknown(3),
- invalidAssociationToken(5),
- counterValueOutOfRange(6),
- commandError(7),
- undefinedError(127)
- }
+ associationToken [4] INTEGER,
+ addEimResultCode INTEGER {
+ ok(0),
+ insufficientMemory(1),
+ associatedEimAlreadyExists(2),
+ ciPKUnknown(3),
+ invalidAssociationToken(5),
+ counterValueOutOfRange(6),
+ commandError(7),
+ undefinedError(127)
+ }
}
DeleteEimResult ::= INTEGER {
- ok(0),
- eimNotFound(1),
- lastEimDeleted(2), -- no eIM Configuration Data available in eUICC,
- commandError(7),
- undefinedError(127)
+ ok(0),
+ eimNotFound(1),
+ lastEimDeleted(2), -- no eIM Configuration Data available in eUICC,
+ commandError(7),
+ undefinedError(127)
}
UpdateEimResult ::= INTEGER {
- ok(0),
- eimNotFound (1),
- ciPKUnknown(3),
- counterValueOutOfRange(6),
- commandError(7),
- undefinedError(127)
+ ok(0),
+ eimNotFound (1),
+ ciPKUnknown(3),
+ counterValueOutOfRange(6),
+ commandError(7),
+ undefinedError(127)
}
ListEimResult ::= CHOICE {
- eimIdList SEQUENCE OF EimIdInfo,
- listEimError INTEGER {
- commandError(7),
- undefinedError(127)
- }
+ eimIdList SEQUENCE OF EimIdInfo,
+ listEimError INTEGER {
+ undefinedError(127)
+ }
}
EimIdInfo ::= SEQUENCE {
- eimId [0] UTF8String,
- eimIdType [4] EimIdType OPTIONAL -- present in case of eimIdTypeOid and eimIdTypeFqdn
+ eimId [0] UTF8String (SIZE(1..128)),
+ eimIdType [2] EimIdType OPTIONAL -- present in case of eimIdTypeOid and eimIdTypeFqdn
}
--- ASN1STOP
+IpaEuiccDataErrorCode ::= INTEGER {
+ incorrectTagList (1),
+ euiccCiPKIdNotFound(5),
+ ecallActive(104),
+ undefinedError(127)
+}

--- Section 2.11.2.2
--- ASN1START
+IpaEuiccDataResponseError ::= SEQUENCE {
+ eimTransactionId [0] TransactionId OPTIONAL,
+ ipaEuiccDataErrorCode IpaEuiccDataErrorCode
+}
+
IpaEuiccDataResponse ::= [82] CHOICE { -- Tag 'BF52'
- ipaEuiccData IpaEuiccData,
- ipaEuiccDataError INTEGER {
- incorrectTagList (1),
- euiccCiPKIdNotFound(5),
- undefinedError(127)
- }
+ ipaEuiccData IpaEuiccData,
+ ipaEuiccDataResponseError IpaEuiccDataResponseError
}
+
+PendingNotificationList ::= SEQUENCE OF SGP32-PendingNotification
+EuiccPackageResultList ::= SEQUENCE OF EuiccPackageResult
+
IpaEuiccData ::= SEQUENCE {
- defaultSmdpAddress [0] UTF8String OPTIONAL, -- Tag '80'
- euiccInfo1 [32] EUICCInfo1 OPTIONAL, -- Tag 'BF20'
- euiccInfo2 [34] SGP32-EUICCInfo2 OPTIONAL, -- Tag 'BF22'
- rootSmdsAddress [3] UTF8String OPTIONAL, -- Tag '83'
- associationToken [4] INTEGER OPTIONAL, -- Tag '84'
- eumCertificate [5] Certificate OPTIONAL, -- Tag 'A5'
- euiccCertificate [6] Certificate OPTIONAL, -- Tag 'A6'
- ipaCapabilities [8] IpaCapabilities OPTIONAL, -- Tag '88'
- deviceInfo [9] DeviceInfo OPTIONAL, -- Tag 'A9'
- notificationsList [43] SGP32-RetrieveNotificationsListResponse OPTIONAL -- Tag 'BF2B'.
+ notificationsList [0] PendingNotificationList OPTIONAL, -- Tag 'A0'
+ defaultSmdpAddress [1] UTF8String OPTIONAL, -- Tag '81'
+ euiccPackageResultList [2] EuiccPackageResultList OPTIONAL, -- Tag 'A2'
+ euiccInfo1 [32] EUICCInfo1 OPTIONAL, -- Tag 'BF20'
+ euiccInfo2 [34] SGP32-EUICCInfo2 OPTIONAL, -- Tag 'BF22'
+ rootSmdsAddress [3] UTF8String OPTIONAL, -- Tag '83'
+ associationToken [4] INTEGER OPTIONAL, -- Tag '84'
+ eumCertificate [5] Certificate OPTIONAL, -- Tag 'A5'
+ euiccCertificate [6] Certificate OPTIONAL, -- Tag 'A6'
+ eimTransactionId [7] TransactionId OPTIONAL, -- Tag '87'
+ ipaCapabilities [8] IpaCapabilities OPTIONAL, -- Tag 'A8'
+ deviceInfo [9] DeviceInfo OPTIONAL -- Tag 'A9'
}
--- ASN1STOP
-
--- Section 2.11.2.3
--- ASN1START
ProfileDownloadTriggerResult ::= [84] SEQUENCE { -- tag 'BF54'
- eimTransactionId [2] TransactionId OPTIONAL,
- profileDownloadTriggerResultData CHOICE {
- profileInstallationResult [55] SGP32-ProfileInstallationResult, -- see SGP.22 [4]
- profileDownloadError SEQUENCE {
- errorResponse OCTET STRING OPTIONAL
- }
- }
+ eimTransactionId [2] TransactionId OPTIONAL,
+ profileDownloadTriggerResultData CHOICE {
+ profileInstallationResult [55] SGP32-ProfileInstallationResult, -- see SGP.22 [4]
+ profileDownloadError SEQUENCE {
+ profileDownloadErrorReason [0] INTEGER {
+ ecallActive (104),
+ undefinedError(127)
+ },
+ errorResponse OCTET STRING OPTIONAL
+ }
+ }
}
--- ASN1STOP
-
--- Section 4.1
--- ASN1START
+ISDRProprietaryApplicationTemplateIoT ::= [PRIVATE 1] SEQUENCE { -- Tag 'E1'
+ euiccConfiguration BIT STRING {
+ ipaeSupported(0), -- IPA in the eUICC (IPAe) supported
+ enabledProfile(1) -- eUICC contains an Enabled Profile
+ }
+}
+IpaeActivationRequest ::= [66] SEQUENCE { -- Tag 'BF42'
+ ipaeOption BIT STRING {
+ activateIpae(0) -- IPAe activation
+ }
+}
+IpaeActivationResponse ::= [66] SEQUENCE { -- Tag 'BF42'
+ ipaeActivationResult INTEGER {ok(0), notSupported(1)}
+}
IpaCapabilities ::= SEQUENCE {
- ipaFeatures [0] BIT STRING {
- directRspServerCommunication (0),
- indirectRspServerCommunication (1),
- eimDownloadDataHandling (2),
- eimCtxParams1Generation (3),
- eimProfileMetadataVerification (4),
- minimizeEsipaBytes (5)
- },
- ipaSupportedProtocols [1] BIT STRING {
- ipaRetrieveHttps(0),
- ipaRetrieveCoaps(1),
- ipaInjectHttps(2),
- ipaInjectCoaps(3),
- ipaProprietary(4)
- } OPTIONAL
+ ipaFeatures [0] BIT STRING {
+ directRspServerCommunication (0),
+ indirectRspServerCommunication (1),
+ eimDownloadDataHandling (2),
+ eimCtxParams1Generation (3),
+ eimProfileMetadataVerification (4),
+ minimizeEsipaBytes (5)
+ },
+ ipaSupportedProtocols [1] BIT STRING {
+ ipaRetrieveHttps(0),
+ ipaRetrieveCoaps(1),
+ ipaInjectHttps(2),
+ ipaInjectCoaps(3),
+ ipaProprietary(4)
+ } OPTIONAL
}
--- ASN1STOP
+-- Definition of ProfileInfo
+-- workaround: add prefix ("SGP32-") to avoid clash with SGP.22
+SGP32-ProfileInfo ::= [PRIVATE 3] SEQUENCE { -- Tag 'E3'
+ iccid Iccid OPTIONAL,
+ isdpAid [APPLICATION 15] OctetTo16 OPTIONAL, -- AID of the ISD-P containing the Profile, tag '4F'
+ profileState [112] ProfileState OPTIONAL, -- Tag '9F70'
+ profileNickname [16] UTF8String (SIZE(0..64)) OPTIONAL, -- Tag '90'
+ serviceProviderName [17] UTF8String (SIZE(0..32)) OPTIONAL, -- Tag '91'
+ profileName [18] UTF8String (SIZE(0..64)) OPTIONAL, -- Tag '92'
+ iconType [19] IconType OPTIONAL, -- Tag '93'
+ icon [20] OCTET STRING (SIZE(0..1024)) OPTIONAL, -- Tag '94', see condition in ES10b:GetProfilesInfo
+ profileClass [21] ProfileClass OPTIONAL, -- Tag '95'
+ notificationConfigurationInfo [22] SEQUENCE OF NotificationConfigurationInformation OPTIONAL, -- Tag 'B6'
+ profileOwner [23] OperatorId OPTIONAL, -- Tag 'B7'
+ dpProprietaryData [24] DpProprietaryData OPTIONAL, -- Tag 'B8'
+ profilePolicyRules [25] PprIds OPTIONAL, -- Tag '99'
+ serviceSpecificDataStoredInEuicc [34] VendorSpecificExtension OPTIONAL, -- Tag 'BF22'
+ ecallIndication [123] BOOLEAN OPTIONAL, -- Tag '9F7B'
+ fallbackAttribute [38] BOOLEAN DEFAULT FALSE, -- Tag '9F26', indicates a Fallback Profile if set to TRUE
+ fallbackAllowed [103] BOOLEAN OPTIONAL -- Tag '9F67', indicates if Fallback is authorized by the Profile Owner
+}
+-- workaround: add prefix ("SGP32-") to avoid clash with SGP.22
+SGP32-StoreMetadataRequest ::= [37] SEQUENCE { -- Tag 'BF25'
+ iccid Iccid,
+ serviceProviderName [17] UTF8String (SIZE(0..32)), -- Tag '91'
+ profileName [18] UTF8String (SIZE(0..64)), -- Tag '92' (corresponds to 'Short Description' defined in SGP.21 [2])
+ iconType [19] IconType OPTIONAL, -- Tag '93' (JPG or PNG)
+ icon [20] OCTET STRING (SIZE(0..1024)) OPTIONAL, -- Tag '94' (Data of the icon. Size 64 x 64 pixel. This field SHALL only be present if iconType is present)
+ profileClass [21] ProfileClass DEFAULT operational, -- Tag '95'
+ notificationConfigurationInfo [22] SEQUENCE OF NotificationConfigurationInformation OPTIONAL,
+ profileOwner [23] OperatorId OPTIONAL, -- Tag 'B7'
+ profilePolicyRules [25] PprIds OPTIONAL, -- Tag '99'
+ serviceSpecificDataStoredInEuicc [34] VendorSpecificExtension OPTIONAL, -- Tag 'BF22'
+ serviceSpecificDataNotStoredInEuicc [35] VendorSpecificExtension OPTIONAL, -- Tag ‘BF23’
+ ecallIndication [123] BOOLEAN OPTIONAL, -- Tag '9F7B'
+ fallbackAllowed [103] BOOLEAN OPTIONAL -- Tag '9F67'
+}
+-- workaround: add prefix ("SGP32-") to avoid clash with SGP.22
+SGP32-AuthenticateClientRequest ::= [59] SEQUENCE { -- Tag 'BF3B'
+ transactionId [0] TransactionId,
+ authenticateServerResponse [56] SGP32-AuthenticateServerResponse -- This is the response from ES10b.AuthenticateServer
+}
+-- workaround: add prefix ("SGP32-") to avoid clash with SGP.22
+SGP32-EUICCInfo2 ::= [34] SEQUENCE { -- Tag 'BF22'
+ profileVersion [1] VersionType, -- Base eUICC Profile package version supported
+ svn [2] VersionType, -- GSMA SGP.22 version supported (SVN)referenced by SGP.32
+ euiccFirmwareVer [3] VersionType, -- eUICC Firmware version
+ extCardResource [4] OCTET STRING, -- Extended Card Resource Information according to ETSI TS 102 226
+ uiccCapability [5] UICCCapability,
+ ts102241Version [6] VersionType OPTIONAL,
+ globalplatformVersion [7] VersionType OPTIONAL,
+ rspCapability [8] RspCapability,
+ euiccCiPKIdListForVerification [9] SEQUENCE OF SubjectKeyIdentifier, -- List of CI Public Key Identifiers supported on the eUICC for signature verification
+ euiccCiPKIdListForSigning [10] SEQUENCE OF SubjectKeyIdentifier, -- List of CI Public Key Identifier supported on the eUICC for signature creation
+ euiccCategory [11] INTEGER {
+ other(0),
+ basicEuicc(1),
+ mediumEuicc(2),
+ contactlessEuicc(3)
+ } OPTIONAL,
+ forbiddenProfilePolicyRules [25] PprIds OPTIONAL, -- Tag '99'
+ ppVersion VersionType, -- Protection Profile version
+ sasAcreditationNumber UTF8String (SIZE(0..64)),
+ certificationDataObject [12] CertificationDataObject OPTIONAL,
+ treProperties [13] BIT STRING {
+ isDiscrete(0),
+ isIntegrated(1),
+ usesRemoteMemory(2) -- refers to the usage of remote memory protected by the Remote Memory Protection Function described in SGP.21 [4]
+ } OPTIONAL,
+ treProductReference [14] UTF8String OPTIONAL, -- Platform_Label as defined in GlobalPlatform DLOA specification [57]
+ additionalEuiccProfilePackageVersions [15] SEQUENCE OF VersionType OPTIONAL,
+ ipaMode [16] IpaMode OPTIONAL, -- active IPA, mandatory within SGP.32
+ euiccCiPKIdListForSigningV3 [17] SEQUENCE OF SubjectKeyIdentifier OPTIONAL, -- not used by this version of SGP.32.
+ additionalEuiccInfo [18] OCTET STRING (SIZE(0..32)) OPTIONAL, -- not used by this version of SGP.32
+ highestSvn [19] VersionType OPTIONAL, -- not used by this version of SGP.32
+ iotSpecificInfo [20] IoTSpecificInfo OPTIONAL -- mandatory within SGP.32
+}

--- Section 5.9.2
--- ASN1START
-SGP32-EUICCInfo2 ::= [34] SEQUENCE { -- Tag 'BF22'
- profileVersion [1] VersionType, -- Base eUICC Profile package version supported
- svn [2] VersionType, -- GSMA SGP.22 version supported (SVN)referenced by SGP.32
- euiccFirmwareVer [3] VersionType, -- eUICC Firmware version
- extCardResource [4] OCTET STRING, -- Extended Card Resource Information according to ETSI TS 102 226
- uiccCapability [5] UICCCapability,
- ts102241Version [6] VersionType OPTIONAL,
- globalplatformVersion [7] VersionType OPTIONAL,
- rspCapability [8] RspCapability,
- euiccCiPKIdListForVerification [9] SEQUENCE OF SubjectKeyIdentifier, -- List of CI Public Key Identifiers supported on the eUICC for signature verification
- euiccCiPKIdListForSigning [10] SEQUENCE OF SubjectKeyIdentifier, -- List of CI Public Key Identifier supported on the eUICC for signature creation
- euiccCategory [11] INTEGER {
- other(0),
- basicEuicc(1),
- mediumEuicc(2),
- contactlessEuicc(3)
- } OPTIONAL,
- forbiddenProfilePolicyRules [25] PprIds OPTIONAL, -- Tag '99'
- ppVersion VersionType, -- Protection Profile version
- sasAcreditationNumber UTF8String (SIZE(0..64)),
- certificationDataObject [12] CertificationDataObject OPTIONAL,
- treProperties [13] BIT STRING {
- isDiscrete(0),
- isIntegrated(1),
- usesRemoteMemory(2) -- refers to the usage of remote memory protected by the Remote Memory Protection Function described in SGP.21 [4]
- } OPTIONAL,
- treProductReference [14] UTF8String OPTIONAL, -- Platform_Label as defined in GlobalPlatform DLOA specification [57]
- additionalEuiccProfilePackageVersions [15] SEQUENCE OF VersionType OPTIONAL,
- ipaMode [16] IpaMode OPTIONAL, -- active IPA, mandatory within SGP.32
- rfu2 [17] SEQUENCE OF SubjectKeyIdentifier OPTIONAL, -- not used by this version of SGP.32.
- rfu3 [18] OCTET STRING (SIZE(0..32)) OPTIONAL,
- -- not used by this version of SGP.32
- rfu4 [19] VersionType OPTIONAL, -- not used by this version of SGP.32
- iotSpecificInfo [20] IoTSpecificInfo OPTIONAL -- mandatory within SGP.32
-}
-- Definition of IoTSpecificInfo
IoTSpecificInfo ::= SEQUENCE {
-iotVersion [0] SEQUENCE OF VersionType -- SGP.32 version(s) supported by the eUICC, at least one must be present
+ iotVersion [0] SEQUENCE OF VersionType, -- SGP.32 version(s) supported by the eUICC, at least one must be present
+ ecallSupported [1] NULL OPTIONAL, -- if present, eUICC supports the Emergency Mechanism
+ fallbackSupported [2] NULL OPTIONAL -- if present, eUICC supports the Fallback Mechanism
}
+
-- Definition of IpaMode
IpaMode ::= INTEGER {
-ipad (0), -- IPAd is active
-ipae (1) -- IPAe is active
+ ipad (0), -- IPAd is active
+ ipae (1) -- IPAe is active
}
--- ASN1STOP
-
--- Section 5.9.4
--- ASN1START
-AddInitialEimRequest ::= [87] SEQUENCE { -- Tag 'BF57'
- eimConfigurationDataList [0] SEQUENCE OF EimConfigurationData
+AddInitialEimRequest ::= [87] SEQUENCE { -- Tag 'BF57'
+ eimConfigurationDataList [0] SEQUENCE OF EimConfigurationData
}
--- ASN1STOP
-
--- Section 5.9.4
--- ASN1START
AddInitialEimResponse ::= [87] CHOICE { -- Tag 'BF57'
- addInitialEimOk SEQUENCE OF CHOICE {
- associationToken [4] INTEGER,
- addOk NULL
- },
- addInitialEimError INTEGER {
- insufficientMemory(1),
- unsignedEimConfigDisallowed(2),
- ciPKUnknown(3),
- invalidAssociationToken(5),
- counterValueOutOfRange(6),
- undefinedError(127)
- }
+ addInitialEimOk SEQUENCE OF CHOICE {
+ associationToken [4] INTEGER,
+ addOk NULL
+ },
+ addInitialEimError INTEGER {
+ insufficientMemory(1),
+ associatedEimAlreadyExists (2),
+ ciPKUnknown(3),
+ invalidAssociationToken(5),
+ counterValueOutOfRange(6),
+ commandError(7),
+ undefinedError(127)
+ }
}
--- ASN1STOP
-
-
--- Section 5.9.10
--- ASN1START
+-- workaround: add prefix ("SGP32-") to avoid clash with SGP.22
+SGP32-EuiccMemoryResetRequest ::= [100] SEQUENCE { -- Tag 'BF64'
+ resetOptions [2] BIT STRING {
+ deleteOperationalProfiles(0),
+ deleteFieldLoadedTestProfiles(1),
+ resetDefaultSmdpAddress(2),
+ deletePreLoadedTestProfiles(3),
+ deleteProvisioningProfiles(4),
+ resetEimConfigData(5),
+ resetImmediateEnableConfig (6)
+ }
+}
+-- workaround: add prefix ("SGP32-") to avoid clash with SGP.22
+SGP32-EuiccMemoryResetResponse ::= [100] SEQUENCE { -- Tag 'BF64'
+ resetResult INTEGER {ok(0), nothingToDelete(1), catBusy(5), ecallActive(104), undefinedError(127)},
+ resetEimResult INTEGER {ok(0), nothingToDelete(1), eimResetNotSupported(2), undefinedError(127)} OPTIONAL,
+ resetImmediateEnableConfigResult INTEGER {ok(0), resetIECNotSupported (1), undefinedError(127)} OPTIONAL
+}
GetCertsRequest ::= [86] SEQUENCE { -- Tag 'BF56'
- euiccCiPKId SubjectKeyIdentifier OPTIONAL -- CI Public Key Identifier supported on the eUICC for signature creation
+ euiccCiPKId SubjectKeyIdentifier OPTIONAL -- CI Public Key Identifier supported on the eUICC for signature creation
}
--- ASN1STOP
--- ASN1START
GetCertsResponse ::= [86] CHOICE { -- Tag 'BF56'
- certs SEQUENCE {
- eumCertificate [5] Certificate, -- Tag 'A5'
- euiccCertificate [6] Certificate -- Tag 'A6'
- },
- getCertsError INTEGER {invalidCiPKId(1), undfinedError(127)}
+ certs SEQUENCE {
+ eumCertificate [5] Certificate, -- Tag 'A5'
+ euiccCertificate [6] Certificate -- Tag 'A6'
+ },
+ getCertsError INTEGER {invalidCiPKId(1), undfinedError(127)}
}
--- ASN1STOP
-
--- Section 5.9.11 (no ASN1START/STOP)!
+-- workaround: add prefix ("SGP32-") to avoid clash with SGP.22
SGP32-RetrieveNotificationsListRequest ::= [43] SEQUENCE { -- Tag 'BF2B'
- searchCriteria CHOICE {
- seqNumber [0] INTEGER,
- profileManagementOperation [1] NotificationEvent,
- euiccPackageResults [2] NULL
- } OPTIONAL
+ searchCriteria CHOICE {
+ seqNumber [0] INTEGER,
+ profileManagementOperation [1] NotificationEvent,
+ euiccPackageResults [2] NULL
+ } OPTIONAL
}
-
--- ASN1START
+-- workaround: add prefix ("SGP32-") to avoid clash with SGP.22
SGP32-RetrieveNotificationsListResponse ::= [43] CHOICE { -- Tag 'BF2B'
- notificationList SEQUENCE OF SGP32-PendingNotification,
- notificationsListResultError INTEGER { undefinedError(127)},
- euiccPackageResultList SEQUENCE OF EuiccPackageResult,
- notificationAndEprList SEQUENCE {
- notificationList SEQUENCE OF SGP32-PendingNotification,
- euiccPackageResultList SEQUENCE OF EuiccPackageResult
- }
+ notificationList PendingNotificationList, -- Tag 'A0'
+ notificationsListResultError INTEGER { undefinedError(127)}, -- Tag '81'
+ euiccPackageResultList EuiccPackageResultList -- Tag 'A2'
}
--- ASN1STOP
-
--- Section 5.9.15
--- ASN1START
-EnableUsingDDRequest ::= [90] SEQUENCE { -- Tag 'BF5A'
+ImmediateEnableRequest ::= [90] SEQUENCE { -- Tag 'BF5A'
+ refreshFlag BOOLEAN -- indicating whether REFRESH is required
}
--- ASN1STOP
--- ASN1START
-EnableUsingDDResponse ::= [90] SEQUENCE { -- Tag 'BF5A'
- enableUsingDDResult [0] INTEGER {
- ok(0),
- autoEnableNotAvailable(1),
- noSessionContext(4),
- undefinedError(127)
- }
+ImmediateEnableResponse ::= [90] SEQUENCE { -- Tag 'BF5A'
+ immediateEnableResult [0] INTEGER {
+ ok(0),
+ immediateEnableNotAvailable (1),
+ noSessionContext(4),
+ catBusy(5),
+ undefinedError(127)
+ }
}
--- ASN1STOP
-
--- Section 5.9.16
--- ASN1START
ProfileRollbackRequest ::= [88] SEQUENCE { -- Tag 'BF58'
- refreshFlag BOOLEAN -- indicating whether REFRESH is required
+ refreshFlag BOOLEAN -- indicating whether REFRESH is required
}
--- ASN1STOP
--- ASN1START
ProfileRollbackResponse ::= [88] SEQUENCE { -- Tag 'BF58'
- cmdResult INTEGER {
- ok(0),
- rollbackNotAllowed(1), -- Usage of rollback was not granted by the eIM
- catBusy(5),
- commandError(7),
- undefinedError(127)
- },
- eUICCPackageResult [81] EuiccPackageResult OPTIONAL
+ cmdResult INTEGER {
+ ok(0),
+ rollbackNotAllowed(1), -- Usage of rollback was not granted by the eIM
+ catBusy(5),
+ commandError(7),
+ undefinedError(127)
+ },
+ eUICCPackageResult [81] EuiccPackageResult OPTIONAL
}
--- ASN1STOP
-
--- Section 5.9.17
--- ASN1START
-ConfigureAutoProfileEnablingRequest ::= [89] SEQUENCE { -- Tag 'BF59'
- autoEnableFlag [0] NULL OPTIONAL,
- smdpOid [1] OBJECT IDENTIFIER OPTIONAL,
- smdpAddress [2] UTF8String OPTIONAL
+ConfigureImmediateProfileEnablingRequest ::= [89] SEQUENCE { -- Tag 'BF59'
+ immediateEnableFlag [0] NULL OPTIONAL,
+ defaultSmdpOid [1] OBJECT IDENTIFIER OPTIONAL,
+ defaultSmdpAddress [2] UTF8String OPTIONAL
}
--- ASN1STOP
--- ASN1START
-ConfigureAutoProfileEnablingResponse ::= [89] SEQUENCE { -- Tag 'BF59'
- configAutoEnableResult [0] INTEGER {
- ok(0),
- insufficientMemory(1),
- unsignedAutoEnableConfigDisallowed(2),
- undefinedError(127)
- }
+ConfigureImmediateProfileEnablingResponse ::= [89] SEQUENCE { -- Tag 'BF59'
+ configImmediateEnableResult [0] INTEGER {
+ ok(0),
+ insufficientMemory(1),
+ associatedEimAlreadyExists(2),
+ undefinedError(127)
+ }
}
--- ASN1STOP
-
--- Section 5.9.18
--- ASN1START
GetEimConfigurationDataRequest ::= [85] SEQUENCE { -- Tag 'BF55'
+ searchCriteria CHOICE {
+ eimId [0] UTF8String (SIZE(1..128))
+ } OPTIONAL
}
--- ASN1STOP
--- ASN1START
GetEimConfigurationDataResponse ::= [85] SEQUENCE { -- Tag 'BF55'
- eimConfigurationDataList [0] SEQUENCE OF EimConfigurationData
+ eimConfigurationDataList [0] SEQUENCE OF EimConfigurationData
}
--- ASN1STOP
+ExecuteFallbackMechanismRequest ::= [93] SEQUENCE { -- Tag ' BF5D'
+ refreshFlag BOOLEAN -- indicating whether REFRESH is required
+}
+ExecuteFallbackMechanismResponse ::= [93] SEQUENCE { -- Tag ' BF5D'
+ executeFallbackMechanismResult [0] INTEGER {
+ ok(0),
+ profileNotInDisabledState(2),
+ catBusy(5),
+ fallbackNotAvailable(6), -- Fallback Attribute not set
+ commandError(7),
+ ecallActive(104),
+ undefinedError(127)
+ }
+}
+ReturnFromFallbackRequest ::= [94] SEQUENCE { -- Tag 'BF5E'
+ refreshFlag BOOLEAN -- indicating whether REFRESH is required
+}
+ReturnFromFallbackResponse ::= [94] SEQUENCE { -- Tag 'BF5E'
+ returnFromFallbackResult [0] INTEGER {
+ ok(0),
+ catBusy(5),
+ fallbackNotAvailable(6), -- Fallback Attribute not set
+ commandError(7),
+ undefinedError(127)
+ }
+}
+EnableEmergencyProfileRequest ::= [91] SEQUENCE { -- Tag 'BF5B'
+ refreshFlag BOOLEAN -- indicating whether REFRESH is required
+}
+EnableEmergencyProfileResponse ::= [91] SEQUENCE { -- Tag 'BF5B'
+ enableEmergencyProfileResult [0] INTEGER {
+ ok(0),
+ profileNotInDisabledState(2),
+ catBusy(5),
+ ecallNotAvailable(8), -- Emergency Profile does not exist
+ undefinedError(127)
+ }
+}
+DisableEmergencyProfileRequest ::= [92] SEQUENCE { -- Tag 'BF5C'
+ refreshFlag BOOLEAN -- indicating whether REFRESH is required
+}
+DisableEmergencyProfileResponse ::= [92] SEQUENCE { -- Tag 'BF5C'
+ disableEmergencyProfileResult [0] INTEGER {
+ ok(0),
+ profileNotInEnabledState(2),
+ catBusy(5),
+ undefinedError(127)
+ }
+}
+GetConnectivityParametersRequest ::= [95] SEQUENCE { -- Tag 'BF5F'
+}
+GetConnectivityParametersResponse ::= [95] CHOICE { -- Tag 'BF5F'
+ connectivityParameters ConnectivityParameters,
+ connectivityParametersError ConnectivityParametersError
+}

--- Section 5.14.2
--- ASN1START
+ConnectivityParameters ::= SEQUENCE {
+ httpParams [1] OCTET STRING OPTIONAL -- Also used for CoAP
+}
+
+ConnectivityParametersError ::= INTEGER {
+ parametersNotAvailable(1),
+ undefinedError(127)
+}
+-- workaround for erlang asn1ct: remove already specified context-specific tag
+SGP32-SetDefaultDpAddressRequest ::= [101] SEQUENCE { -- Tag 'BF65'
+ defaultDpAddress UTF8String -- Default SM-DP+ address as an FQDN
+}
+-- workaround for erlang asn1ct: remove already specified context-specific tag
+SGP32-SetDefaultDpAddressResponse ::= [101] SEQUENCE { -- Tag 'BF65'
+ setDefaultDpAddressResult INTEGER { ok (0), undefinedError (127)}
+}
+-- workaround: add prefix ("SGP32-") to avoid clash with SGP.22
SGP32-PrepareDownloadResponse ::= [33] CHOICE { -- Tag 'BF21'
- downloadResponseOk PrepareDownloadResponseOk,
- downloadResponseError PrepareDownloadResponseError,
- compactDownloadResponseOk CompactPrepareDownloadResponseOk
+ downloadResponseOk PrepareDownloadResponseOk,
+ downloadResponseError PrepareDownloadResponseError,
+ compactDownloadResponseOk CompactPrepareDownloadResponseOk
}
CompactPrepareDownloadResponseOk ::= SEQUENCE {
- compactEuiccSigned2 CompactEuiccSigned2, -- Compact version of EuiccSigned2
- euiccSignature2 [APPLICATION 55] OCTET STRING -- tag '5F37' signature on EuiccSigned2
+ compactEuiccSigned2 CompactEuiccSigned2, -- Compact version of EuiccSigned2
+ euiccSignature2 [APPLICATION 55] OCTET STRING -- tag '5F37' signature on EuiccSigned2
}
CompactEuiccSigned2 ::= SEQUENCE {
- euiccOtpk [APPLICATION 73] OCTET STRING OPTIONAL, -- otPK.EUICC.ECKA, tag '5F49' euiccOtpk is always present except if bppEuiccOtpk was chosen by the eUICC
- hashCc Octet32 OPTIONAL -- Hash of confirmation code, if not received from Eim
+ euiccOtpk [APPLICATION 73] OCTET STRING OPTIONAL, -- otPK.EUICC.ECKA, tag '5F49' euiccOtpk is always present except if bppEuiccOtpk was chosen by the eUICC
+ hashCc Octet32 OPTIONAL -- Hash of confirmation code, if not received from eIM
}
--- ASN1STOP
-
--- Section 5.14.3
--- ASN1START
+-- workaround: add prefix ("SGP32-") to avoid clash with SGP.22
+SGP32-EuiccSigned1 ::= SEQUENCE {
+ transactionId [0] TransactionId,
+ serverAddress [3] UTF8String,
+ serverChallenge [4] Octet16, -- The RSP Server Challenge
+ euiccInfo2 [34] SGP32-EUICCInfo2,
+ ctxParams1 CtxParams1
+}
+-- workaround: add prefix ("SGP32-") to avoid clash with SGP.22
+SGP32-AuthenticateResponseOk ::= SEQUENCE {
+ euiccSigned1 SGP32-EuiccSigned1, -- Signed information
+ euiccSignature1 [APPLICATION 55] OCTET STRING, --EUICC_Sign1, tag 5F37
+ euiccCertificate Certificate, -- eUICC Certificate (CERT.EUICC.ECDSA) signed by the EUM
+ eumCertificate Certificate -- EUM Certificate (CERT.EUM.ECDSA) signed by the requested CI
+}
+-- workaround: add prefix ("SGP32-") to avoid clash with SGP.22
SGP32-AuthenticateServerResponse ::= [56] CHOICE { -- Tag 'BF38'
- authenticateResponseOk AuthenticateResponseOk,
- authenticateResponseError AuthenticateResponseError,
- compactAuthenticateResponseOk CompactAuthenticateResponseOk
+ authenticateResponseOk SGP32-AuthenticateResponseOk,
+ authenticateResponseError AuthenticateResponseError,
+ compactAuthenticateResponseOk CompactAuthenticateResponseOk
}
CompactAuthenticateResponseOk ::= SEQUENCE {
- signedData CHOICE {
- euiccSigned1 EuiccSigned1,
- compactEuiccSigned1 [0] CompactEuiccSigned1 -- Compact version of EuiccSigned1
- },
- euiccSignature1 [APPLICATION 55] OCTET STRING, -- tag 5F37 signature on EuiccSigned1
- euiccCertificate [1] Certificate OPTIONAL, -- eUICC Certificate (CERT.EUICC.ECDSA)
- eumCertificate [2] Certificate OPTIONAL -- EUM Certificate (CERT.EUM.ECDSA)
+ signedData CHOICE {
+ euiccSigned1 SGP32-EuiccSigned1,
+ compactEuiccSigned1 [0] CompactEuiccSigned1 -- Compact version of EuiccSigned1
+ },
+ euiccSignature1 [APPLICATION 55] OCTET STRING, -- tag 5F37 signature on EuiccSigned1
+ euiccCertificate [1] Certificate OPTIONAL, -- eUICC Certificate (CERT.EUICC.ECDSA)
+ eumCertificate [2] Certificate OPTIONAL -- EUM Certificate (CERT.EUM.ECDSA)
}
CompactEuiccSigned1 ::= SEQUENCE {
- extCardResource [4] OCTET STRING, -- Extended Card Resource Information according to ETSI TS 102 226 extracted from euiccInfo2,
- ctxParams1 [2] CtxParams1 OPTIONAL -- ctxParams1 may be left out by IPA if eIM ctxParams1 was received from the eIM
+ extCardResource [4] OCTET STRING, -- Extended Card Resource Information according to ETSI TS 102 226 extracted from euiccInfo2,
+ ctxParams1 [2] CtxParams1 OPTIONAL -- ctxParams1 may be left out by IPA if eIM ctxParams1 was received from the eIM
}
--- ASN1STOP
-
--- Section 5.14.7
--- ASN1START
+-- workaround: add prefix ("SGP32-") to avoid clash with SGP.22
SGP32-PendingNotification ::= CHOICE {
- profileInstallationResult [55] SGP32-ProfileInstallationResult, -- tag 'BF37'
- otherSignedNotification OtherSignedNotification,
- compactProfileInstallationResult [0] CompactProfileInstallationResult,
- compactOtherSignedNotification [1] CompactOtherSignedNotification
+ profileInstallationResult [55] SGP32-ProfileInstallationResult, -- tag 'BF37'
+ otherSignedNotification OtherSignedNotification,
+ compactProfileInstallationResult [0] CompactProfileInstallationResult,
+ compactOtherSignedNotification [1] CompactOtherSignedNotification
}
+-- workaround: add prefix ("SGP32-") to avoid clash with SGP.22
SGP32-ProfileInstallationResult ::= [55] SEQUENCE { -- Tag 'BF37'
- profileInstallationResultData [39] ProfileInstallationResultData,
- euiccSignPIR EuiccSignPIR
+ profileInstallationResultData [39] ProfileInstallationResultData,
+ euiccSignPIR EuiccSignPIR
}
CompactProfileInstallationResult ::= SEQUENCE {
- compactProfileInstallationResultData [0] CompactProfileInstallationResultData,
- euiccSignPIR EuiccSignPIR
+ compactProfileInstallationResultData [0] CompactProfileInstallationResultData,
+ euiccSignPIR EuiccSignPIR
}
CompactProfileInstallationResultData ::= SEQUENCE {
- transactionId [0] TransactionId, -- The TransactionID generated by the SM-DP+
- seqNumber INTEGER,
- iccidPresent BOOLEAN DEFAULT TRUE,
- compactFinalResult [2] CHOICE {
- compactSuccessResult CompactSuccessResult,
- errorResult ErrorResult
- }
+ transactionId [0] TransactionId, -- The TransactionID generated by the SM-DP+
+ seqNumber INTEGER,
+ iccidPresent BOOLEAN DEFAULT TRUE,
+ compactFinalResult [2] CHOICE {
+ compactSuccessResult CompactSuccessResult,
+ errorResult ErrorResult
+ }
}
CompactSuccessResult ::= SEQUENCE {
- compactAid [APPLICATION 15] OCTET STRING (SIZE (2)), -- Byte 14 and 15 of ISD-P AID
- simaResponse OCTET STRING OPTIONAL -- MUST be present if the simaResponse value (EUICCResponse) is different from the 9-byte value ‘30 07 A0 05 30 03 80 01 00’ representing success
+ compactAid [APPLICATION 15] OCTET STRING (SIZE (2)), -- Byte 14 and 15 of ISD-P AID
+ simaResponse OCTET STRING OPTIONAL -- MUST be present if the simaResponse value (EUICCResponse) is different from the 9-byte value ‘30 07 A0 05 30 03 80 01 00’ representing success
}
CompactOtherSignedNotification ::= SEQUENCE {
- tbsOtherNotification NotificationMetadata,
- euiccNotificationSignature [APPLICATION 55] OCTET STRING -- eUICC signature of tbsOtherNotification, Tag '5F37'
+ eidValue [APPLICATION 26] Octet16 OPTIONAL, -- Tag '5A'
+ tbsOtherNotification NotificationMetadata,
+ euiccNotificationSignature [APPLICATION 55] OCTET STRING -- eUICC signature of tbsOtherNotification, Tag '5F37'
}
--- ASN1STOP
-
--- Section 5.14.8
--- ASN1START
+-- workaround: add prefix ("SGP32-") to avoid clash with SGP.22
SGP32-CancelSessionResponse ::= [65] CHOICE { -- Tag 'BF41'
- cancelSessionResponseOk CancelSessionResponseOk,
- cancelSessionResponseError INTEGER {invalidTransactionId(5), undefinedError(127)},
- compactCancelSessionResponseOk CompactCancelSessionResponseOk
+ cancelSessionResponseOk CancelSessionResponseOk,
+ cancelSessionResponseError INTEGER {invalidTransactionId(5), undefinedError(127)},
+ compactCancelSessionResponseOk CompactCancelSessionResponseOk
}
CompactCancelSessionResponseOk ::= SEQUENCE {
- compactEuiccCancelSessionSigned CompactEuiccCancelSessionSigned, -- Compact version of euiccCancelSessionSigned
- euiccCancelSessionSignature [APPLICATION 55] OCTET STRING -- tag 5F37 signature on euiccCancelSessionSigned
+ compactEuiccCancelSessionSigned CompactEuiccCancelSessionSigned, -- Compact version of euiccCancelSessionSigned
+ euiccCancelSessionSignature [APPLICATION 55] OCTET STRING -- tag 5F37 signature on euiccCancelSessionSigned
}
CompactEuiccCancelSessionSigned ::= SEQUENCE {
- reason CancelSessionReason OPTIONAL
+ reason CancelSessionReason OPTIONAL
}
--- ASN1STOP
-
--- Section 6.3.1
--- ASN1START
EsipaMessageFromIpaToEim ::= CHOICE {
- initiateAuthenticationRequestEsipa [57] InitiateAuthenticationRequestEsipa, -- Tag 'BF39'
- authenticateClientRequestEsipa [59] AuthenticateClientRequestEsipa, -- Tag 'BF3B'
- getBoundProfilePackageRequestEsipa [58] GetBoundProfilePackageRequestEsipa, -- Tag 'BF3A'
- cancelSessionRequestEsipa [65] CancelSessionRequestEsipa, -- Tag 'BF41'
- handleNotificationEsipa [61] HandleNotificationEsipa, -- Tag 'BF3D'
- transferEimPackageResponse [78] TransferEimPackageResponse, -- Tag 'BF4E'
- getEimPackageRequest [79] GetEimPackageRequest, -- Tag 'BF4F'
- provideEimPackageResult [80] ProvideEimPackageResult -- Tag 'BF50'
+ initiateAuthenticationRequestEsipa [57] InitiateAuthenticationRequestEsipa, -- Tag 'BF39'
+ authenticateClientRequestEsipa [59] AuthenticateClientRequestEsipa, -- Tag 'BF3B'
+ getBoundProfilePackageRequestEsipa [58] GetBoundProfilePackageRequestEsipa, -- Tag 'BF3A'
+ cancelSessionRequestEsipa [65] CancelSessionRequestEsipa, -- Tag 'BF41'
+ handleNotificationEsipa [61] HandleNotificationEsipa, -- Tag 'BF3D'
+ transferEimPackageResponse [78] TransferEimPackageResponse, -- Tag 'BF4E'
+ getEimPackageRequest [79] GetEimPackageRequest, -- Tag 'BF4F'
+ provideEimPackageResult [80] ProvideEimPackageResult -- Tag 'BF50'
}
EsipaMessageFromEimToIpa ::= CHOICE {
- initiateAuthenticationResponseEsipa [57] InitiateAuthenticationResponseEsipa, -- Tag 'BF39'
- authenticateClientResponseEsipa [59] AuthenticateClientResponseEsipa, -- Tag 'BF3B'
- getBoundProfilePackageResponseEsipa [58] GetBoundProfilePackageResponseEsipa, -- Tag 'BF3A'
- cancelSessionResponseEsipa [65] CancelSessionResponseEsipa, -- Tag 'BF41'
- transferEimPackageRequest [78] TransferEimPackageRequest, -- Tag 'BF4E'
- getEimPackageResponse [79] GetEimPackageResponse, -- Tag 'BF4F'
- provideEimPackageResultResponse [80] ProvideEimPackageResultResponse -- Tag 'BF50'
+ initiateAuthenticationResponseEsipa [57] InitiateAuthenticationResponseEsipa, -- Tag 'BF39'
+ authenticateClientResponseEsipa [59] AuthenticateClientResponseEsipa, -- Tag 'BF3B'
+ getBoundProfilePackageResponseEsipa [58] GetBoundProfilePackageResponseEsipa, -- Tag 'BF3A'
+ cancelSessionResponseEsipa [65] CancelSessionResponseEsipa, -- Tag 'BF41'
+ transferEimPackageRequest [78] TransferEimPackageRequest, -- Tag 'BF4E'
+ getEimPackageResponse [79] GetEimPackageResponse, -- Tag 'BF4F'
+ provideEimPackageResultResponse [80] ProvideEimPackageResultResponse -- Tag 'BF50'
}
--- ASN1STOP
-
--- Section 6.3.2
--- ASN1START
InitiateAuthenticationRequestEsipa ::= [57] SEQUENCE { -- Tag 'BF39'
- euiccChallenge [1] Octet16, -- random eUICC challenge
- smdpAddress [3] UTF8String OPTIONAL,
- euiccInfo1 EUICCInfo1 OPTIONAL
+ euiccChallenge [1] Octet16, -- random eUICC challenge
+ smdpAddress [3] UTF8String OPTIONAL,
+ euiccInfo1 EUICCInfo1 OPTIONAL,
+ eimTransactionId [2] TransactionId OPTIONAL
}
+
InitiateAuthenticationResponseEsipa ::= [57] CHOICE { -- Tag 'BF39'
- initiateAuthenticationOkEsipa InitiateAuthenticationOkEsipa,
- initiateAuthenticationErrorEsipa INTEGER {
- invalidDpAddress(1),
- euiccVersionNotSupportedByDp(2),
- ciPKIdNotSupported(3),
- smdpAddressMismatch(50),
- smdpOidMismatch(51)
-}
+ initiateAuthenticationOkEsipa InitiateAuthenticationOkEsipa,
+ initiateAuthenticationErrorEsipa INTEGER {
+ invalidDpAddress(1),
+ euiccVersionNotSupportedByDp(2),
+ ciPKIdNotSupported(3),
+ smdpAddressMismatch(50),
+ smdpOidMismatch(51),
+ invalidEimTransactionId(52),
+ undefinedError(127)
+ }
}
InitiateAuthenticationOkEsipa ::= SEQUENCE {
- transactionId [0] TransactionId OPTIONAL, -- The TransactionID generated by the SM-DP+
- serverSigned1 ServerSigned1, -- Signed information
- serverSignature1 [APPLICATION 55] OCTET STRING, -- Server Sign1, Tag '5F37'
- euiccCiPKIdToBeUsed OCTET STRING, -- Key identifier (possibly truncated) of the CI Public Key to be used as required by ES10b.AuthenticateServer
- serverCertificate Certificate,
- matchingId UTF8String OPTIONAL,
- ctxParams1 [2] CtxParams1 OPTIONAL
+ transactionId [0] TransactionId OPTIONAL, -- The TransactionID generated by the SM-DP+
+ serverSigned1 ServerSigned1, -- Signed information
+ serverSignature1 [APPLICATION 55] OCTET STRING, -- Server Sign1, Tag '5F37'
+ euiccCiPKIdentifierToBeUsed OCTET STRING, -- Key identifier (possibly truncated) of the CI Public Key to be used as required by ES10b.AuthenticateServer
+ serverCertificate Certificate,
+ matchingId UTF8String OPTIONAL,
+ ctxParams1 [2] CtxParams1 OPTIONAL
}
--- ASN1STOP
-
--- Section 6.3.2.2
--- ASN1START
AuthenticateClientRequestEsipa ::= [59] SEQUENCE { -- Tag 'BF3B'
- transactionId [0] TransactionId,
- authenticateServerResponse [56] SGP32-AuthenticateServerResponse -- This is the response from ES10b.AuthenticateServer, possibly in compact format
+ transactionId [0] TransactionId, -- The TransactionID generated by the SM-DP+/SM-DS
+ authenticateServerResponse [56] SGP32-AuthenticateServerResponse -- This is the response from ES10b.AuthenticateServer, possibly in compact format
}
AuthenticateClientResponseEsipa ::= [59] CHOICE { -- Tag 'BF3B'
- authenticateClientOkDPEsipa AuthenticateClientOkDPEsipa,
- authenticateClientOkDSEsipa AuthenticateClientOkDSEsipa,
- authenticateClientErrorEsipa INTEGER {
- eumCertificateInvalid(1),
- eumCertificateExpired(2),
- euiccCertificateInvalid(3),
- euiccCertificateExpired(4),
- euiccSignatureInvalid(5),
- matchingIdRefused(6),
- eidMismatch(7),
- noEligibleProfile(8),
- ciPKUnknown(9),
- invalidTransactionId(10),
- insufficientMemory(11),
- pprNotAllowed(50),
- eventIdUnknown(56),
- undefinedError(127)
- }
+ authenticateClientOkDPEsipa AuthenticateClientOkDPEsipa,
+ authenticateClientOkDSEsipa AuthenticateClientOkDSEsipa,
+ authenticateClientErrorEsipa INTEGER {
+ eumCertificateInvalid(1),
+ eumCertificateExpired(2),
+ euiccCertificateInvalid(3),
+ euiccCertificateExpired(4),
+ euiccSignatureInvalid(5),
+ matchingIdRefused(6),
+ eidMismatch(7),
+ noEligibleProfile(8),
+ ciPKUnknown(9),
+ invalidTransactionId(10),
+ insufficientMemory(11),
+ pprNotAllowed(50),
+ eventIdUnknown(56),
+ undefinedError(127)
+ }
}
AuthenticateClientOkDPEsipa ::= SEQUENCE {
- transactionId [0] TransactionId OPTIONAL,
- profileMetaData [37] StoreMetadataRequest OPTIONAL,
- smdpSigned2 SmdpSigned2, -- Signed information
- smdpSignature2 [APPLICATION 55] OCTET STRING, -- Tag '5F37'
- smdpCertificate Certificate, -- CERT.DPpb.ECDSA
- hashCc Octet32 OPTIONAL -- Hash of confirmation code
+ transactionId [0] TransactionId OPTIONAL, -- The TransactionID generated by the SM-DP+
+ profileMetaData [37] SGP32-StoreMetadataRequest OPTIONAL,
+ smdpSigned2 SmdpSigned2, -- Signed information
+ smdpSignature2 [APPLICATION 55] OCTET STRING, -- Tag '5F37'
+ smdpCertificate Certificate, -- CERT.DPpb.ECDSA
+ hashCc Octet32 OPTIONAL -- Hash of confirmation code
}
AuthenticateClientOkDSEsipa ::= SEQUENCE {
- transactionId [0] TransactionId,
- profileDownloadTrigger [84] ProfileDownloadTriggerRequest OPTIONAL -- Tag 'BF54'
+ transactionId [0] TransactionId, -- The TransactionID generated by the SM-DS
+ profileDownloadTrigger [84] ProfileDownloadTriggerRequest OPTIONAL -- Tag 'BF54'
}
--- ASN1STOP
-
--- Section 6.3.2.3
--- ASN1START
GetBoundProfilePackageRequestEsipa ::= [58] SEQUENCE { -- Tag 'BF3A'
- transactionId [0] TransactionId,
- prepareDownloadResponse [33] SGP32-PrepareDownloadResponse -- This is the response from ES10b.PrepareDownload, possibly in compact format
+ transactionId [0] TransactionId, -- The TransactionID generated by the SM-DP+
+ prepareDownloadResponse [33] SGP32-PrepareDownloadResponse -- This is the response from ES10b.PrepareDownload, possibly in compact format
}
GetBoundProfilePackageResponseEsipa ::= [58] CHOICE { -- Tag 'BF3A'
- getBoundProfilePackageOkEsipa GetBoundProfilePackageOkEsipa,
- getBoundProfilePackageErrorEsipa INTEGER {
- euiccSignatureInvalid(1),
- confirmationCodeMissing(2),
- confirmationCodeRefused(3),
- confirmationCodeRetriesExceeded(4),
- bppRebindingRefused(5),
- downloadOrderExpired(6),
- profileMetadataMismatch(50),
- invalidTransactionId(95),
- undefinedError(127)
- }
+ getBoundProfilePackageOkEsipa GetBoundProfilePackageOkEsipa,
+ getBoundProfilePackageErrorEsipa INTEGER {
+ euiccSignatureInvalid(1),
+ confirmationCodeMissing(2),
+ confirmationCodeRefused(3),
+ confirmationCodeRetriesExceeded(4),
+ bppRebindingRefused(5),
+ downloadOrderExpired(6),
+ metadataMismatch(50),
+ invalidTransactionId(95),
+ undefinedError(127)
+ }
}
GetBoundProfilePackageOkEsipa ::= SEQUENCE {
- transactionId [0] TransactionId OPTIONAL,
- boundProfilePackage [54] BoundProfilePackage
+ transactionId [0] TransactionId OPTIONAL, -- The TransactionID generated by the SM-DP+
+ boundProfilePackage [54] BoundProfilePackage
}
--- ASN1STOP
-
--- Section 6.3.2.4
--- ASN1START
HandleNotificationEsipa ::= [61] CHOICE { -- Tag 'BF3D'
- pendingNotification SGP32-PendingNotification, -- A Notification to be delivered to a Notification Receiver, possibly in compact format
- provideEimPackageResult ProvideEimPackageResult
+ pendingNotification [0] SGP32-PendingNotification, -- A Notification to be delivered to a Notification Receiver, possibly in compact format
+ provideEimPackageResult [80] ProvideEimPackageResult -- Tag 'BF50'
}
--- ASN1STOP
-
--- Section 6.3.2.5
--- ASN1START
CancelSessionRequestEsipa ::= [65] SEQUENCE { -- Tag 'BF41'
- transactionId TransactionId,
- cancelSessionResponse SGP32-CancelSessionResponse -- This is the response from ES10b. CancelSession function, possibly in compact format
+ transactionId TransactionId, -- The TransactionID generated by the SM-DP+
+ cancelSessionResponse SGP32-CancelSessionResponse -- This is the response from ES10b. CancelSession function, possibly in compact format
}
CancelSessionResponseEsipa ::= [65] CHOICE { -- Tag 'BF41'
- cancelSessionOk SGP32-CancelSessionOk,
- cancelSessionError INTEGER {
- invalidTransactionId(1),
- euiccSignatureInvalid(2),
- undefinedError(127)
- }
+ cancelSessionOk SGP32-CancelSessionOk,
+ cancelSessionError INTEGER {
+ invalidTransactionId(1),
+ euiccSignatureInvalid(2),
+ undefinedError(127)
+ }
}
+-- workaround: add prefix ("SGP32-") to avoid clash with SGP.22
SGP32-CancelSessionOk ::= SEQUENCE { -- This function has no output data
+}
+StateChangeCause ::= INTEGER {
+ otherEim(0), -- for change(s) requested by another registered eIM
+ fallback(1), -- for change(s) following fallback requested by IPA
+ emergencyProfile(2), -- for change(s) following Emergency Profile swap requested by IPA
+ local(3), -- for change(s) applied locally (RFU, not supported in this version)
+ reset(4), -- for change(s) following an euicc reset
+ immediateEnableProfile(5), -- for change(s) following immediate Profile enabling requested by IPA
+ deviceChange(6), -- for change(s) detected by IPAe following a IoT Device change (removable eSIMs)
+ undefined(127) -- unknown cause
}
--- ASN1STOP

-
--- Section 6.3.2.6
--- ASN1START
GetEimPackageRequest ::= [79] SEQUENCE { -- Tag 'BF4F'
- eidValue [APPLICATION 26] Octet16, -- Tag '5A'
- notifyStateChange [0] NULL OPTIONAL, -- Notification to the eIM that it should update its information about the eUICC (e.g. list of profiles, profile states...)
- rPLMN [1] OCTET STRING (SIZE(3)) OPTIONAL -- MCC and MNC of the last registered PLMN, coded as defined in 3GPP TS 24.008 [22]
+ eidValue [APPLICATION 26] Octet16, -- Tag '5A'
+ notifyStateChange [0] NULL OPTIONAL, -- Notification to the eIM that it should update its information about the eUICC (e.g. list of profiles, profile states...)
+ stateChangeCause [1] StateChangeCause OPTIONAL, -- Provide the cause of the notified state change(s)
+ rPLMN [2] OCTET STRING (SIZE(3)) OPTIONAL -- MCC and MNC of the last registered PLMN, coded as defined in 3GPP TS 24.008 [22]
}
GetEimPackageResponse ::= [79] CHOICE { -- Tag 'BF4F'
- euiccPackageRequest [81] EuiccPackageRequest, -- Tag 'BF51'
- ipaEuiccDataRequest [82] IpaEuiccDataRequest, -- Tag 'BF52'
- profileDownloadTriggerRequest [84] ProfileDownloadTriggerRequest, -- Tag 'BF54'
- eimPackageError INTEGER {
- noEimPackageAvailable(1),
- undefinedError(127)
- }
+ euiccPackageRequest [81] EuiccPackageRequest, -- Tag 'BF51'
+ ipaEuiccDataRequest [82] IpaEuiccDataRequest, -- Tag 'BF52'
+ profileDownloadTriggerRequest [84] ProfileDownloadTriggerRequest, -- Tag 'BF54'
+ eimPackageError INTEGER {
+ noEimPackageAvailable(1),
+ eidNotFound(2),
+ invalidEid(3),
+ missingEid(4),
+ undefinedError(127)
+ }
}
--- ASN1STOP
+EimPackageResultErrorCode ::= INTEGER {
+ invalidPackageFormat(1),
+ unknownPackage(2),
+ undefinedError(127)
+}

--- Section 6.3.2.7
--- ASN1START
-ProvideEimPackageResult ::= [80] CHOICE { -- Tag 'BF50'
- euiccPackageResult [81] EuiccPackageResult, -- Tag 'BF51'
- ePRAndNotifications SEQUENCE {
- euiccPackageResult [81] EuiccPackageResult, -- Tag 'BF51'
- notificationList [43] SGP32-RetrieveNotificationsListResponse -- Tag 'BF2B'
- },
- ipaEuiccDataResponse [82] IpaEuiccDataResponse, -- Tag 'BF52'
- profileDownloadTriggerResult [84] ProfileDownloadTriggerResult, -- Tag 'BF54'
- eimPackageError INTEGER {
- invalidPackageFormat(1),
- unknownPackage(2),
- undefinedError(127)
- }
+EimPackageResultResponseError ::= SEQUENCE {
+ eimTransactionId [0] TransactionId OPTIONAL,
+ eimPackageResultErrorCode EimPackageResultErrorCode
}
-ProvideEimPackageResultResponse ::= [80] SEQUENCE { -- Tag 'BF50'
- eimAcknowledgements [83] EimAcknowledgements OPTIONAL -- Tag 'BF53'
-}
--- ASN1STOP

--- Section 6.3.3.1
--- ASN1START
+EimPackageResult ::= CHOICE {
+ euiccPackageResult [81] EuiccPackageResult, -- Tag 'BF51'
+ ePRAndNotifications SEQUENCE {
+ euiccPackageResult [81] EuiccPackageResult, -- Tag 'BF51'
+ notificationList [0] PendingNotificationList -- Tag 'A0'
+ },
+ ipaEuiccDataResponse [82] IpaEuiccDataResponse, -- Tag 'BF52'
+ profileDownloadTriggerResult [84] ProfileDownloadTriggerResult, -- Tag 'BF54'
+ eimPackageResultResponseError [0] EimPackageResultResponseError
+}
+
+ProvideEimPackageResult ::= [80] SEQUENCE { -- Tag 'BF50'
+ eidValue [APPLICATION 26] Octet16 OPTIONAL, -- Tag '5A'
+ eimPackageResult EimPackageResult
+}
+ProvideEimPackageResultResponse ::= [80] CHOICE { -- Tag 'BF50'
+ eimAcknowledgements [83] EimAcknowledgements, -- Tag 'BF53'
+ emptyResponse SEQUENCE {}, -- because EimAcknowledgements was OPTIONAL
+ provideEimPackageResultError INTEGER {
+ eidNotFound(2),
+ invalidEid(3),
+ missingEid(4),
+ undefinedError(127)
+ }
+}
TransferEimPackageRequest ::= [78] CHOICE { -- Tag 'BF4E'
- euiccPackageRequest [81] EuiccPackageRequest, -- Tag 'BF51'
- ipaEuiccDataRequest [82] IpaEuiccDataRequest, -- Tag 'BF52'
- eimAcknowledgements [83] EimAcknowledgements, -- Tag 'BF53'
- profileDownloadTriggerRequest [84] ProfileDownloadTriggerRequest -- Tag 'BF54'
+ euiccPackageRequest [81] EuiccPackageRequest, -- Tag 'BF51'
+ ipaEuiccDataRequest [82] IpaEuiccDataRequest, -- Tag 'BF52'
+ eimAcknowledgements [83] EimAcknowledgements, -- Tag 'BF53'
+ profileDownloadTriggerRequest [84] ProfileDownloadTriggerRequest -- Tag 'BF54'
}
TransferEimPackageResponse ::= [78] CHOICE { -- Tag 'BF4E'
- euiccPackageResult [81] EuiccPackageResult, -- Tag 'BF51'
- ePRAndNotifications SEQUENCE {
- euiccPackageResult [81] EuiccPackageResult, -- Tag 'BF51'
- notificationList [43] SGP32-RetrieveNotificationsListResponse -- Tag 'BF2B'
- },
- ipaEuiccDataResponse [82] IpaEuiccDataResponse, -- Tag 'BF52'
- eimPackageReceived NULL,
- eimPackageError INTEGER {
- invalidPackageFormat(1),
- unknownPackage(2),
- undefinedError(127)
- }
+ euiccPackageResult [81] EuiccPackageResult, -- Tag 'BF51'
+ ePRAndNotifications SEQUENCE {
+ euiccPackageResult [81] EuiccPackageResult, -- Tag 'BF51'
+ notificationList [0] PendingNotificationList -- Tag 'A0'
+ },
+ ipaEuiccDataResponse [82] IpaEuiccDataResponse, -- Tag 'BF52'
+ eimPackageReceived NULL,
+ eimPackageError INTEGER {
+ invalidPackageFormat(1),
+ unknownPackage(2),
+ undefinedError(127)
+ }
}
--- ASN1STOP
-
-
END
diff --git a/library/euicc/SGP32Definitions_Templates.ttcn b/library/euicc/SGP32Definitions_Templates.ttcn
index fa21cd4..c83dc8e 100644
--- a/library/euicc/SGP32Definitions_Templates.ttcn
+++ b/library/euicc/SGP32Definitions_Templates.ttcn
@@ -43,9 +43,9 @@
treProductReference := *,
additionalEuiccProfilePackageVersions := *,
ipaMode := *,
- rfu2 := *,
- rfu3 := *,
- rfu4 := *,
+ euiccCiPKIdListForSigningV3 := *,
+ additionalEuiccInfo := *,
+ highestSvn := *,
iotSpecificInfo:= *
}
template (value) SGP32_EUICCInfo2
@@ -75,9 +75,9 @@
treProductReference := omit,
additionalEuiccProfilePackageVersions := omit,
ipaMode := omit,
- rfu2 := omit,
- rfu3 := omit,
- rfu4 := omit,
+ euiccCiPKIdListForSigningV3 := omit,
+ additionalEuiccInfo := omit,
+ highestSvn := omit,
iotSpecificInfo:= omit
}

@@ -90,7 +90,7 @@
transactionId := *,
serverSigned1 := tr_serverSigned1(euiccChallenge := euiccChallenge, serverAddress := serverAddress),
serverSignature1 := ?,
- euiccCiPKIdToBeUsed := ?,
+ euiccCiPKIdentifierToBeUsed := ?,
serverCertificate := ?,
matchingId := *,
ctxParams1 := *
@@ -107,7 +107,7 @@
serverSigned1 := ts_serverSigned1(euiccChallenge := euiccChallenge, serverAddress := serverAddress),
serverSignature1 := '5252525252525252525252525252525252525252525252525252525252525252
5353535353535353535353535353535353535353535353535353535353535353'O,
- euiccCiPKIdToBeUsed := 'F54172BDF98A95D65CBEB88A38A1C11D800A85C3'O, /* NIST */
+ euiccCiPKIdentifierToBeUsed := 'F54172BDF98A95D65CBEB88A38A1C11D800A85C3'O, /* NIST */
serverCertificate := ts_cert_s_sm_dpauth_nist,
// serverCertificate := ts_cert_s_sm_dpauth_brp,
// serverCertificate := ts_cert_s_sm_dp2auth_nist,
@@ -124,21 +124,46 @@
initiateAuthenticationRequestEsipa := {
euiccChallenge := euiccChallenge,
smdpAddress := *,
- euiccInfo1 := *
+ euiccInfo1 := *,
+ eimTransactionId := *
}
}
template (value) EsipaMessageFromIpaToEim
ts_initiateAuthenticationRequestEsipa(template (value) octetstring euiccChallenge := '00112233445566778899aabbccddeeff'O,
template (omit) charstring smdpAddress := "smdp.example.com",
- template (omit) EUICCInfo1 euiccInfo1 := ts_EUICCInfo1) := {
+ template (omit) EUICCInfo1 euiccInfo1 := ts_EUICCInfo1,
+ template (omit) octetstring eimTransactionId := omit) := {
initiateAuthenticationRequestEsipa := {
euiccChallenge := euiccChallenge,
smdpAddress := smdpAddress,
- euiccInfo1 := euiccInfo1
+ euiccInfo1 := euiccInfo1,
+ eimTransactionId := eimTransactionId
}
}

/* GSMA SGP.32, section 6.3.2.2 */
+template (present) SGP32_EuiccSigned1 tr_euiccSigned1(template (present) octetstring transactionId := ?,
+ template (present) universal charstring serverAddress := ?,
+ template (present) octetstring serverChallenge := ?,
+ template (present) SGP32_EUICCInfo2 euiccInfo2 := ?,
+ template (present) CtxParams1 ctxParams1 := ?) := {
+ transactionId := transactionId,
+ serverAddress := serverAddress,
+ serverChallenge := serverChallenge,
+ euiccInfo2 := euiccInfo2,
+ ctxParams1 := ctxParams1
+}
+template (value) SGP32_EuiccSigned1 ts_euiccSigned1(template (value) octetstring transactionId := 'ABCDEF'O,
+ template (value) universal charstring serverAddress := "smdp.example.com",
+ template (value) octetstring serverChallenge := '01020304050607080910111213141516'O,
+ template (value) SGP32_EUICCInfo2 euiccInfo2 := ts_SGP32_EUICCInfo2,
+ template (value) CtxParams1 ctxParams1 := ts_ctxParams1) := {
+ transactionId := transactionId,
+ serverAddress := serverAddress,
+ serverChallenge := serverChallenge,
+ euiccInfo2 := euiccInfo2,
+ ctxParams1 := ctxParams1
+}
template (present) EsipaMessageFromIpaToEim
tr_authenticateClientRequestEsipa := {
authenticateClientRequestEsipa := {
@@ -242,6 +267,7 @@
getEimPackageRequest := {
eidValue := eidValue,
notifyStateChange := *,
+ stateChangeCause := *,
rPLMN := *
}
}
@@ -250,6 +276,7 @@
getEimPackageRequest := {
eidValue := eidValue,
notifyStateChange := omit,
+ stateChangeCause := omit,
rPLMN := omit
}
}
@@ -284,8 +311,10 @@
getEimPackageResponse := {
ipaEuiccDataRequest := {
tagList := ?,
- euiccCiPKId := *,
- searchCriteria := *
+ euiccCiPKIdentifierToBeUsed := *,
+ searchCriteriaNotification := *,
+ searchCriteriaEuiccPackageResult := *,
+ eimTransactionId := *
}
}
}
@@ -293,9 +322,11 @@
ts_getEimPackageResponse_euiccDataReq := {
getEimPackageResponse := {
ipaEuiccDataRequest := {
- tagList := '80BF20BF228384A5A688A9BF2B'O,
- euiccCiPKId := omit,
- searchCriteria := omit
+ tagList := '81BF20BF228384A5A6A8A9A0'O,
+ euiccCiPKIdentifierToBeUsed := omit,
+ searchCriteriaNotification := omit,
+ searchCriteriaEuiccPackageResult := omit,
+ eimTransactionId := omit
}
}
}
@@ -448,30 +479,87 @@
}
}
template (present) EuiccPackage
-tr_euiccPackage_configureAutoEnable := {
+tr_euiccPackage_configureImmediateEnable := {
psmoList := {
{
- configureAutoEnable := {
- autoEnableFlag := *,
- smdpOid := *,
- smdpAddress := *
+ configureImmediateEnable := {
+ immediateEnableFlag := *,
+ defaultSmdpOid := *,
+ defaultSmdpAddress := *
}
}
}
}
template (value) EuiccPackage
-ts_euiccPackage_configureAutoEnable := {
+ts_euiccPackage_configureImmediateEnable := {
psmoList := {
{
- configureAutoEnable := {
- autoEnableFlag := NULL,
- smdpOid := objid {1 2 3},
- smdpAddress := "smdp.example.com"
+ configureImmediateEnable := {
+ immediateEnableFlag := NULL,
+ defaultSmdpOid := objid {1 2 3},
+ defaultSmdpAddress := "smdp.example.com"
}
}
}
}
template (present) EuiccPackage
+tr_euiccPackage_setFallbackAttribute := {
+ psmoList := {
+ {
+ setFallbackAttribute := {
+ iccid := ?
+ }
+ }
+ }
+}
+template (value) EuiccPackage
+ts_euiccPackage_setFallbackAttribute := {
+ psmoList := {
+ {
+ setFallbackAttribute := {
+ iccid := '123456789ABCDEFFAAAA'O
+ }
+ }
+ }
+}
+template (present) EuiccPackage
+tr_euiccPackage_unsetFallbackAttribute := {
+ psmoList := {
+ {
+ unsetFallbackAttribute := { }
+ }
+ }
+}
+template (value) EuiccPackage
+ts_euiccPackage_unsetFallbackAttribute := {
+ psmoList := {
+ {
+ unsetFallbackAttribute := { }
+ }
+ }
+}
+template (present) EuiccPackage
+tr_euiccPackage_setDefaultDpAddress := {
+ psmoList := {
+ {
+ setDefaultDpAddress := {
+ defaultDpAddress := ?
+ }
+ }
+ }
+}
+template (value) EuiccPackage
+ts_euiccPackage_setDefaultDpAddress := {
+ psmoList := {
+ {
+ setDefaultDpAddress := {
+ defaultDpAddress := "smdp.example.com"
+ }
+ }
+ }
+}
+
+template (present) EuiccPackage
tr_euiccPackage_addEim := {
ecoList := {
{
@@ -547,7 +635,7 @@
eimId := ?,
eidValue := ?,
counterValue := ?,
- transactionId := *,
+ eimTransactionId := *,
euiccPackage := euiccPackage
},
eimSignature := ?
@@ -562,7 +650,7 @@
eimId := "myEim",
eidValue := '00112233445566778899AABBCCDDEEFF'O,
counterValue := 123,
- transactionId := omit,
+ eimTransactionId := omit,
euiccPackage := euiccPackage
},
eimSignature := '5252525252525252525252525252525252525252525252525252525252525252
@@ -656,7 +744,7 @@
euiccPackageResultDataSigned := {
eimId := ?,
counterValue := ?,
- transactionId := *,
+ eimTransactionId := *,
seqNumber := ?,
euiccResult := ?
},
@@ -669,7 +757,7 @@
euiccPackageResultDataSigned := {
eimId := "myEim",
counterValue := 333,
- transactionId := omit,
+ eimTransactionId := omit,
seqNumber := 1234,
euiccResult := {
{
@@ -714,7 +802,7 @@
euiccPackageResultDataSigned := {
eimId := ?,
counterValue := ?,
- transactionId := *,
+ eimTransactionId := *,
seqNumber := ?,
euiccResult := {
{
@@ -731,7 +819,7 @@
euiccPackageResultDataSigned := {
eimId := "myEIM",
counterValue := 1,
- transactionId := omit,
+ eimTransactionId := omit,
seqNumber := 123,
euiccResult := {
{
@@ -749,7 +837,7 @@
euiccPackageResultDataSigned := {
eimId := ?,
counterValue := ?,
- transactionId := *,
+ eimTransactionId := *,
seqNumber := ?,
euiccResult := {
{
@@ -766,7 +854,7 @@
euiccPackageResultDataSigned := {
eimId := "myEIM",
counterValue := 1,
- transactionId := omit,
+ eimTransactionId := omit,
seqNumber := 123,
euiccResult := {
{
@@ -784,7 +872,7 @@
euiccPackageResultDataSigned := {
eimId := ?,
counterValue := ?,
- transactionId := *,
+ eimTransactionId := *,
seqNumber := ?,
euiccResult := {
{
@@ -801,7 +889,7 @@
euiccPackageResultDataSigned := {
eimId := "myEIM",
counterValue := 1,
- transactionId := omit,
+ eimTransactionId := omit,
seqNumber := 123,
euiccResult := {
{
@@ -819,7 +907,7 @@
euiccPackageResultDataSigned := {
eimId := ?,
counterValue := ?,
- transactionId := *,
+ eimTransactionId := *,
seqNumber := ?,
euiccResult := {
{
@@ -839,7 +927,7 @@
euiccPackageResultDataSigned := {
eimId := "myEIM",
counterValue := 1,
- transactionId := omit,
+ eimTransactionId := omit,
seqNumber := 123,
euiccResult := {
{
@@ -860,7 +948,7 @@
euiccPackageResultDataSigned := {
eimId := ?,
counterValue := ?,
- transactionId := *,
+ eimTransactionId := *,
seqNumber := ?,
euiccResult := {
{
@@ -877,7 +965,7 @@
euiccPackageResultDataSigned := {
eimId := "myEIM",
counterValue := 1,
- transactionId := omit,
+ eimTransactionId := omit,
seqNumber := 123,
euiccResult := {
{
@@ -897,7 +985,10 @@
profileOwner := omit,
dpProprietaryData := omit,
profilePolicyRules := omit,
- serviceSpecificDataStoredInEuicc := omit
+ serviceSpecificDataStoredInEuicc := omit,
+ ecallIndication := omit,
+ fallbackAttribute := false,
+ fallbackAllowed := omit
}
}
}
@@ -914,7 +1005,7 @@
euiccPackageResultDataSigned := {
eimId := ?,
counterValue := ?,
- transactionId := *,
+ eimTransactionId := *,
seqNumber := ?,
euiccResult := {
{
@@ -931,7 +1022,7 @@
euiccPackageResultDataSigned := {
eimId := "myEIM",
counterValue := 1,
- transactionId := omit,
+ eimTransactionId := omit,
seqNumber := 123,
euiccResult := {
{
@@ -956,16 +1047,16 @@
}
}
template (present) EuiccPackageResult
-tr_euiccPackageResultSigned_configureAutoEnable := {
+tr_euiccPackageResultSigned_configureImmediateEnable := {
euiccPackageResultSigned := {
euiccPackageResultDataSigned := {
eimId := ?,
counterValue := ?,
- transactionId := *,
+ eimTransactionId := *,
seqNumber := ?,
euiccResult := {
{
- configureAutoEnableResult := ?
+ configureImmediateEnableResult := ?
}
}
},
@@ -973,16 +1064,16 @@
}
}
template (value) EuiccPackageResult
-ts_euiccPackageResultSigned_configureAutoEnable := {
+ts_euiccPackageResultSigned_configureImmediateEnable := {
euiccPackageResultSigned := {
euiccPackageResultDataSigned := {
eimId := "myEIM",
counterValue := 1,
- transactionId := omit,
+ eimTransactionId := omit,
seqNumber := 123,
euiccResult := {
{
- configureAutoEnableResult := 0
+ configureImmediateEnableResult := 0
}
}
},
@@ -996,7 +1087,7 @@
euiccPackageResultDataSigned := {
eimId := ?,
counterValue := ?,
- transactionId := *,
+ eimTransactionId := *,
seqNumber := ?,
euiccResult := {
{
@@ -1013,7 +1104,7 @@
euiccPackageResultDataSigned := {
eimId := "myEIM",
counterValue := 1,
- transactionId := omit,
+ eimTransactionId := omit,
seqNumber := 123,
euiccResult := {
{
@@ -1033,7 +1124,7 @@
euiccPackageResultDataSigned := {
eimId := ?,
counterValue := ?,
- transactionId := *,
+ eimTransactionId := *,
seqNumber := ?,
euiccResult := {
{
@@ -1050,7 +1141,7 @@
euiccPackageResultDataSigned := {
eimId := "myEIM",
counterValue := 1,
- transactionId := omit,
+ eimTransactionId := omit,
seqNumber := 123,
euiccResult := {
{
@@ -1068,7 +1159,7 @@
euiccPackageResultDataSigned := {
eimId := ?,
counterValue := ?,
- transactionId := *,
+ eimTransactionId := *,
seqNumber := ?,
euiccResult := {
{
@@ -1085,7 +1176,7 @@
euiccPackageResultDataSigned := {
eimId := "myEIM",
counterValue := 1,
- transactionId := omit,
+ eimTransactionId := omit,
seqNumber := 123,
euiccResult := {
{
@@ -1103,7 +1194,7 @@
euiccPackageResultDataSigned := {
eimId := ?,
counterValue := ?,
- transactionId := *,
+ eimTransactionId := *,
seqNumber := ?,
euiccResult := {
{
@@ -1120,7 +1211,7 @@
euiccPackageResultDataSigned := {
eimId := "myEIM",
counterValue := 1,
- transactionId := omit,
+ eimTransactionId := omit,
seqNumber := 123,
euiccResult := {
{
@@ -1139,21 +1230,172 @@
5353535353535353535353535353535353535353535353535353535353535353'O
}
}
+template (present) EuiccPackageResult
+tr_euiccPackageResultSigned_rollback := {
+ euiccPackageResultSigned := {
+ euiccPackageResultDataSigned := {
+ eimId := ?,
+ counterValue := ?,
+ eimTransactionId := *,
+ seqNumber := ?,
+ euiccResult := {
+ {
+ rollbackResult := ?
+ }
+ }
+ },
+ euiccSignEPR := ?
+ }
+}
+template (value) EuiccPackageResult
+ts_euiccPackageResultSigned_rollback := {
+ euiccPackageResultSigned := {
+ euiccPackageResultDataSigned := {
+ eimId := "myEIM",
+ counterValue := 1,
+ eimTransactionId := omit,
+ seqNumber := 123,
+ euiccResult := {
+ {
+ rollbackResult := 0
+ }
+ }
+ },
+ euiccSignEPR := '5252525252525252525252525252525252525252525252525252525252525252
+ 5353535353535353535353535353535353535353535353535353535353535353'O
+ }
+}
+template (present) EuiccPackageResult
+tr_euiccPackageResultSigned_setFallbackAttribute := {
+ euiccPackageResultSigned := {
+ euiccPackageResultDataSigned := {
+ eimId := ?,
+ counterValue := ?,
+ eimTransactionId := *,
+ seqNumber := ?,
+ euiccResult := {
+ {
+ setFallbackAttributeResult := ?
+ }
+ }
+ },
+ euiccSignEPR := ?
+ }
+}
+template (value) EuiccPackageResult
+ts_euiccPackageResultSigned_setFallbackAttribute := {
+ euiccPackageResultSigned := {
+ euiccPackageResultDataSigned := {
+ eimId := "myEIM",
+ counterValue := 1,
+ eimTransactionId := omit,
+ seqNumber := 123,
+ euiccResult := {
+ {
+ setFallbackAttributeResult := 0
+ }
+ }
+ },
+ euiccSignEPR := '5252525252525252525252525252525252525252525252525252525252525252
+ 5353535353535353535353535353535353535353535353535353535353535353'O
+ }
+}
+template (present) EuiccPackageResult
+tr_euiccPackageResultSigned_unsetFallbackAttribute := {
+ euiccPackageResultSigned := {
+ euiccPackageResultDataSigned := {
+ eimId := ?,
+ counterValue := ?,
+ eimTransactionId := *,
+ seqNumber := ?,
+ euiccResult := {
+ {
+ unsetFallbackAttributeResult := ?
+ }
+ }
+ },
+ euiccSignEPR := ?
+ }
+}
+template (value) EuiccPackageResult
+ts_euiccPackageResultSigned_unsetFallbackAttribute := {
+ euiccPackageResultSigned := {
+ euiccPackageResultDataSigned := {
+ eimId := "myEIM",
+ counterValue := 1,
+ eimTransactionId := omit,
+ seqNumber := 123,
+ euiccResult := {
+ {
+ unsetFallbackAttributeResult := 0
+ }
+ }
+ },
+ euiccSignEPR := '5252525252525252525252525252525252525252525252525252525252525252
+ 5353535353535353535353535353535353535353535353535353535353535353'O
+ }
+}
+template (present) EuiccPackageResult
+tr_euiccPackageResultSigned_setDefaultDpAddress := {
+ euiccPackageResultSigned := {
+ euiccPackageResultDataSigned := {
+ eimId := ?,
+ counterValue := ?,
+ eimTransactionId := *,
+ seqNumber := ?,
+ euiccResult := {
+ {
+ setDefaultDpAddressResult := {
+ setDefaultDpAddressResult := ?
+ }
+ }
+ }
+ },
+ euiccSignEPR := ?
+ }
+}
+template (value) EuiccPackageResult
+ts_euiccPackageResultSigned_setDefaultDpAddress := {
+ euiccPackageResultSigned := {
+ euiccPackageResultDataSigned := {
+ eimId := "myEIM",
+ counterValue := 1,
+ eimTransactionId := omit,
+ seqNumber := 123,
+ euiccResult := {
+ {
+ setDefaultDpAddressResult := {
+ setDefaultDpAddressResult := 0
+ }
+ }
+ }
+ },
+ euiccSignEPR := '5252525252525252525252525252525252525252525252525252525252525252
+ 5353535353535353535353535353535353535353535353535353535353535353'O
+ }
+}
+
template (present) EsipaMessageFromIpaToEim
-tr_provideEimPackageResult_ePRAndNotif(template (present) EuiccPackageResult euiccPackageResult := tr_euiccPackageResultSigned_enablePsmo) := {
+tr_provideEimPackageResult_ePRAndNotif(template octetstring eidValue := *,
+ template (present) EuiccPackageResult euiccPackageResult := tr_euiccPackageResultSigned_enablePsmo) := {
provideEimPackageResult := {
- ePRAndNotifications := {
- euiccPackageResult := euiccPackageResult,
- notificationList := ?
+ eidValue := eidValue,
+ eimPackageResult := {
+ ePRAndNotifications := {
+ euiccPackageResult := euiccPackageResult,
+ notificationList := ?
+ }
}
}
}
template (value) EsipaMessageFromIpaToEim
-ts_provideEimPackageResult_ePRAndNotif(template (value) EuiccPackageResult euiccPackageResult := ts_euiccPackageResultSigned_enablePsmo) := {
+ts_provideEimPackageResult_ePRAndNotif(template (omit) octetstring eidValue := omit,
+ template (value) EuiccPackageResult euiccPackageResult := ts_euiccPackageResultSigned_enablePsmo) := {
provideEimPackageResult := {
- ePRAndNotifications := {
- euiccPackageResult := euiccPackageResult,
- notificationList := {
+ eidValue := eidValue,
+ eimPackageResult := {
+ ePRAndNotifications := {
+ euiccPackageResult := euiccPackageResult,
notificationList := { }
}
}
@@ -1161,39 +1403,80 @@
}

template (present) EsipaMessageFromIpaToEim
-tr_provideEimPackageResult_euiccDataResp := {
+tr_provideEimPackageResult_euiccDataResp(template octetstring eidValue := *) := {
provideEimPackageResult := {
- ipaEuiccDataResponse := {
- ipaEuiccData := {
- defaultSmdpAddress := *,
- euiccInfo1 := *,
- euiccInfo2 := *,
- rootSmdsAddress := *,
- associationToken := *,
- eumCertificate := *,
- euiccCertificate := *,
- ipaCapabilities := *,
- deviceInfo := *,
- notificationsList := *
+ eidValue := eidValue,
+ eimPackageResult := {
+ ipaEuiccDataResponse := {
+ ipaEuiccData := {
+ notificationsList := *,
+ defaultSmdpAddress := *,
+ euiccPackageResultList := *,
+ euiccInfo1 := *,
+ euiccInfo2 := *,
+ rootSmdsAddress := *,
+ associationToken := *,
+ eumCertificate := *,
+ euiccCertificate := *,
+ eimTransactionId := *,
+ ipaCapabilities := *,
+ deviceInfo := *
+ }
}
}
}
}
template (value) EsipaMessageFromIpaToEim
-ts_provideEimPackageResult_euiccDataResp := {
+ts_provideEimPackageResult_euiccDataResp(template (omit) octetstring eidValue := omit,
+ template (omit) octetstring eimTransactionId := omit) := {
provideEimPackageResult := {
- ipaEuiccDataResponse := {
- ipaEuiccData := {
- defaultSmdpAddress := "smdp.example.com",
- euiccInfo1 := ts_EUICCInfo1,
- euiccInfo2 := ts_SGP32_EUICCInfo2,
- rootSmdsAddress := "smds.example.com",
- associationToken := 1,
- eumCertificate := ts_cert_eum_nist,
- euiccCertificate := ts_cert_euicc_nist,
- ipaCapabilities := omit,
- deviceInfo := omit,
- notificationsList := omit
+ eidValue := eidValue,
+ eimPackageResult := {
+ ipaEuiccDataResponse := {
+ ipaEuiccData := {
+ notificationsList := omit,
+ defaultSmdpAddress := "smdp.example.com",
+ euiccPackageResultList := omit,
+ euiccInfo1 := ts_EUICCInfo1,
+ euiccInfo2 := ts_SGP32_EUICCInfo2,
+ rootSmdsAddress := "smds.example.com",
+ associationToken := 1,
+ eumCertificate := ts_cert_eum_nist,
+ euiccCertificate := ts_cert_euicc_nist,
+ eimTransactionId := eimTransactionId,
+ ipaCapabilities := omit,
+ deviceInfo := omit
+ }
+ }
+ }
+ }
+}
+
+template (present) EsipaMessageFromIpaToEim
+tr_provideEimPackageResult_euiccDataResp_err(template octetstring eidValue := *) := {
+ provideEimPackageResult := {
+ eidValue := eidValue,
+ eimPackageResult := {
+ ipaEuiccDataResponse := {
+ ipaEuiccDataResponseError := {
+ eimTransactionId := *,
+ ipaEuiccDataErrorCode := ?
+ }
+ }
+ }
+ }
+}
+template (value) EsipaMessageFromIpaToEim
+ts_provideEimPackageResult_euiccDataResp_err(template (omit) octetstring eidValue := omit,
+ template (omit) octetstring eimTransactionId := omit) := {
+ provideEimPackageResult := {
+ eidValue := eidValue,
+ eimPackageResult := {
+ ipaEuiccDataResponse := {
+ ipaEuiccDataResponseError := {
+ eimTransactionId := eimTransactionId,
+ ipaEuiccDataErrorCode := 127
+ }
}
}
}
@@ -1202,7 +1485,7 @@
template (present) EsipaMessageFromEimToIpa
tr_provideEimPackageResultResponse_eimAck := {
provideEimPackageResultResponse := {
- eimAcknowledgements := *
+ eimAcknowledgements := ?
}
}
template (value) EsipaMessageFromEimToIpa
@@ -1211,6 +1494,30 @@
eimAcknowledgements := eimAcknowledgements
}
}
+template (present) EsipaMessageFromEimToIpa
+tr_provideEimPackageResultResponse_empty := {
+ provideEimPackageResultResponse := {
+ emptyResponse := { }
+ }
+}
+template (value) EsipaMessageFromEimToIpa
+ts_provideEimPackageResultResponse_empty := {
+ provideEimPackageResultResponse := {
+ emptyResponse := { }
+ }
+}
+template (present) EsipaMessageFromEimToIpa
+tr_provideEimPackageResultResponse_eimPkgRsltErr := {
+ provideEimPackageResultResponse := {
+ provideEimPackageResultError := ?
+ }
+}
+template (value) EsipaMessageFromEimToIpa
+ts_provideEimPackageResultResponse_eimPkgRsltErr(template (value) integer errorCode := 127) := {
+ provideEimPackageResultResponse := {
+ provideEimPackageResultError := errorCode
+ }
+}

/* GSMA SGP.32, section 2.11.1.2 */
template (present) GetCertsResponse
@@ -1239,7 +1546,8 @@
eimPublicKeyData := *,
trustedPublicKeyDataTls := *,
eimSupportedProtocol := *,
- euiccCiPKId := *
+ euiccCiPKId := *,
+ indirectProfileDownload := *
}
template (value) EimConfigurationData
ts_eimConfigurationData(template (omit) charstring eimFqdn := omit) := {
@@ -1250,8 +1558,9 @@
associationToken := 123,
eimPublicKeyData := omit,
trustedPublicKeyDataTls := omit,
- eimSupportedProtocol := omit,
- euiccCiPKId := omit
+ eimSupportedProtocol := '00001'B,
+ euiccCiPKId := omit,
+ indirectProfileDownload := NULL
}
template (present) GetEimConfigurationDataResponse
tr_getEimConfigurationDataResponse := {
@@ -1279,13 +1588,13 @@
}

/* GSMA SGP.32, section 5.9.15 */
-template (present) EnableUsingDDResponse
-tr_enableUsingDDResponse := {
- enableUsingDDResult := ?
+template (present) ImmediateEnableResponse
+tr_immediateEnableResponse := {
+ immediateEnableResult := ?
}
-template (value) EnableUsingDDResponse
-ts_enableUsingDDResponse := {
- enableUsingDDResult := 1 /* autoEnableNotAvailable */
+template (value) ImmediateEnableResponse
+ts_immediateEnableResponse := {
+ immediateEnableResult := 1 /* immediateEnableNotAvailable */
}

/* GSMA SGP.32, section 5.9.16 */
@@ -1310,7 +1619,7 @@
euiccPackageResultDataSigned := {
eimId := "myEim",
counterValue := 333,
- transactionId := omit,
+ eimTransactionId := omit,
seqNumber := 1234,
euiccResult := {
{
diff --git a/library/euicc/SGP32Definitions_Types.ttcn b/library/euicc/SGP32Definitions_Types.ttcn
index 9fe2b7d..c344823 100644
--- a/library/euicc/SGP32Definitions_Types.ttcn
+++ b/library/euicc/SGP32Definitions_Types.ttcn
@@ -23,14 +23,19 @@
external function enc_GetCertsResponse(in GetCertsResponse msg) return octetstring
with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };

+external function dec_EimConfigurationData(in octetstring stream) return EimConfigurationData
+with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" };
+external function enc_EimConfigurationData(in EimConfigurationData msg) return octetstring
+with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };
+
external function dec_GetEimConfigurationDataResponse(in octetstring stream) return GetEimConfigurationDataResponse
with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" };
external function enc_GetEimConfigurationDataResponse(in GetEimConfigurationDataResponse msg) return octetstring
with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };

-external function dec_EnableUsingDDResponse(in octetstring stream) return EnableUsingDDResponse
+external function dec_ImmediateEnableResponse(in octetstring stream) return ImmediateEnableResponse
with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" };
-external function enc_EnableUsingDDResponse(in EnableUsingDDResponse msg) return octetstring
+external function enc_ImmediateEnableResponse(in ImmediateEnableResponse msg) return octetstring
with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };

external function dec_ProfileRollbackRequest(in octetstring stream) return ProfileRollbackRequest

To view, visit change 42953. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Id9e112669d9ed8caaec0893c55189eb566fe59be
Gerrit-Change-Number: 42953
Gerrit-PatchSet: 3
Gerrit-Owner: dexter <pmaier@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier@sysmocom.de>
Gerrit-Reviewer: jolly <andreas@eversberg.eu>