dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43181?usp=email )
Change subject: SGP32Definitions_Templates: rework templates, imrove flexibilty ......................................................................
SGP32Definitions_Templates: rework templates, imrove flexibilty
The templates in their current form where originally developed to generate and match messages for the ASN.1 ESipa interface. This interface uses a top-level envelope structure for sending and receiving messages (EsipaMessageFromIpaToEim and EsipaMessageFromEimToIpa). The JSON ESipa interface is different. Here the top level envelope is a JSON formatted body whith Base64 encoded ASN.1 mebers. Those members have to be encoded and decoded by accessing ASN.1 structures below the top-level envelope structure directly. Unfortunately the current templates do not provide the required flexibility for that.
With this patch we rework the templates to be more flexible and open, so that we can integrate JSON ESipa bindings into the eIM testsuite with a follow-up patch.
Related: SYS#8100 Change-Id: I69a29b30578b0280006c2655b20c2a4eb62f5e75 --- M eim/eIM_Tests.ttcn M ipad/IPAd_Tests.ttcn M library/euicc/SGP32Definitions_Templates.ttcn 3 files changed, 309 insertions(+), 260 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/81/43181/1
diff --git a/eim/eIM_Tests.ttcn b/eim/eIM_Tests.ttcn index ba3855a..26fe2bf 100644 --- a/eim/eIM_Tests.ttcn +++ b/eim/eIM_Tests.ttcn @@ -490,7 +490,7 @@ /* Check the eIM for new eIM packages, we expect to get a profileDownloadTriggerRequest that contains the * activationCode that we have created the download with (see above) */ esipa_res := f_esipa_transceive(valueof(ts_getEimPackageRequest(eID)), - tr_getEimPackageResponse_dnlTrigReq(activationCode)); + tr_getEimPackageResponse_dnlTrigReq(tr_profileDownloadTriggerRequest(activationCode))); eimTransactionId := valueof(esipa_res.getEimPackageResponse.profileDownloadTriggerRequest.eimTransactionId);
/* Perform common mutial authentication procedure */ @@ -502,7 +502,7 @@ f_esipa_receive(tr_getBoundProfilePackageResponseEsipa);
/* Handle notification */ - f_esipa_send(valueof(ts_handleNotificationEsipa_prfleInstRslt(notificationAddress := smdpp_add))); + f_esipa_send(valueof(ts_handleNotificationEsipa_pendingNotif(ts_SGP32_pendingNotification_prfleInstRslt(notificationAddress := smdpp_add)))); f_es9p_transceive_empty_response(tr_handleNotification);
f_rest_lookup_resource(resource_id, "download", tr_JSON_REST_success); @@ -548,7 +548,7 @@ /* Check the eIM for new eIM packages, we expect to get an euiccPackageRequest that contains the PSMO * that we have created (see above) */ esipa_res := f_esipa_transceive(valueof(ts_getEimPackageRequest(str2oct(order.eidValue))), - tr_getEimPackageResponse_euiccPkgReq(euiccPackage)); + tr_getEimPackageResponse_euiccPkgReq(tr_euiccPackageRequest(euiccPackage)));
/* The eIM will generate a counterValue and an eimTransactionId, both must be echoed in the response. */ euiccPackageResult.euiccPackageResultSigned.euiccPackageResultDataSigned.counterValue := @@ -557,7 +557,7 @@ esipa_res.getEimPackageResponse.euiccPackageRequest.euiccPackageSigned.eimTransactionId;
/* Respond with a plausible EimPackage result */ - f_esipa_transceive(valueof(ts_provideEimPackageResult_ePRAndNotif(eID, euiccPackageResult)), + f_esipa_transceive(valueof(ts_provideEimPackageResult(eID, ts_eimPackageResult_ePRAndNotif(euiccPackageResult))), tr_provideEimPackageResultResponse_empty);
f_rest_lookup_resource(resource_id, facility, tr_JSON_REST_success); @@ -833,7 +833,7 @@ eimTransactionId := valueof(esipa_res.getEimPackageResponse.ipaEuiccDataRequest.eimTransactionId);
/* Provide a plausible ipaEuiccDataResponse to the eIM */ - f_esipa_transceive(valueof(ts_provideEimPackageResult_euiccDataResp(eID, eimTransactionId)), + f_esipa_transceive(valueof(ts_provideEimPackageResult(eID, ts_eimPackageResult_euiccDataResp(eimTransactionId))), tr_provideEimPackageResultResponse_empty);
f_rest_lookup_resource(resource_id, "edr", tr_JSON_REST_success); @@ -878,7 +878,7 @@ eimTransactionId := valueof(esipa_res.getEimPackageResponse.ipaEuiccDataRequest.eimTransactionId);
/* Provide a plausible ipaEuiccDataResponse to the eIM */ - f_esipa_transceive(valueof(ts_provideEimPackageResult_euiccDataResp_err(eID, eimTransactionId)), + f_esipa_transceive(valueof(ts_provideEimPackageResult(eID, ts_eimPackageResult_euiccDataResp_err(eimTransactionId))), tr_provideEimPackageResultResponse_empty);
f_rest_lookup_resource(resource_id, "edr", tr_JSON_REST_success(outcome := expected_outcome) ); diff --git a/ipad/IPAd_Tests.ttcn b/ipad/IPAd_Tests.ttcn index c999cfb..ce744d0 100644 --- a/ipad/IPAd_Tests.ttcn +++ b/ipad/IPAd_Tests.ttcn @@ -409,7 +409,7 @@
/* Step #5-#10 */ esipa_req := f_esipa_receive(tr_initiateAuthenticationRequestEsipa); - esipa_res := valueof(ts_initiateAuthenticationResponseEsipa(euiccChallenge := esipa_req.initiateAuthenticationRequestEsipa.euiccChallenge)); + esipa_res := valueof(ts_initiateAuthenticationResponseEsipa(serverSigned1 := ts_serverSigned1(euiccChallenge := esipa_req.initiateAuthenticationRequestEsipa.euiccChallenge))); f_esipa_send(esipa_res);
/* Step #11-#14 */ @@ -482,7 +482,7 @@ f_vpcd_transceive(enc_ImmediateEnableResponse(valueof(ts_immediateEnableResponse)));
/* Receive ProfileInstallationResult from iPAD->eIM */ - f_esipa_transceive_empty_response(tr_handleNotificationEsipa_prfleInstRslt); + f_esipa_transceive_empty_response(tr_handleNotificationEsipa_pendingNotif(tr_SGP32_pendingNotification_prfleInstRslt));
/* Receive RemoveNotificationFromList from iPAD->eUICC */ f_vpcd_transceive(enc_NotificationSentResponse(valueof(ts_notificationSentResponse))); @@ -522,7 +522,7 @@
/* Step #10-14 */ f_esipa_transceive(valueof(ts_provideEimPackageResultResponse_eimAck(eimAcknowledgements := {1,2,3,4})), - tr_provideEimPackageResult_ePRAndNotif); + tr_provideEimPackageResult(*, tr_eimPackageResult_ePRAndNotif));
/* Step #15-17 */ f_vpcd_transceive(enc_NotificationSentResponse(valueof(ts_notificationSentResponse))); @@ -580,7 +580,7 @@
/* Step #10-14 */ f_esipa_transceive(valueof(ts_provideEimPackageResultResponse_eimAck(eimAcknowledgements := {1,2,3,4})), - tr_provideEimPackageResult_ePRAndNotif(euiccPackageResult := ?)); + tr_provideEimPackageResult(*, tr_eimPackageResult_ePRAndNotif(euiccPackageResult := ?)));
/* Step #15-17 */ f_vpcd_transceive(enc_NotificationSentResponse(valueof(ts_notificationSentResponse))); @@ -628,7 +628,7 @@
/* IPAd will return the data to us */ f_esipa_transceive(valueof(ts_provideEimPackageResultResponse_eimAck(eimAcknowledgements := {1,2,3,4})), - tr_provideEimPackageResult_euiccDataResp); + tr_provideEimPackageResult(*, tr_eimPackageResult_euiccDataResp));
/* Wait some time until the the last HTTP response is actually delivered */ f_sleep(2.0); diff --git a/library/euicc/SGP32Definitions_Templates.ttcn b/library/euicc/SGP32Definitions_Templates.ttcn index bdc5fba..6722e11 100644 --- a/library/euicc/SGP32Definitions_Templates.ttcn +++ b/library/euicc/SGP32Definitions_Templates.ttcn @@ -83,37 +83,43 @@
/* GSMA SGP.32, section 6.3.2.1 */ template (present) EsipaMessageFromEimToIpa -tr_initiateAuthenticationResponseEsipa(template (present) octetstring euiccChallenge := ?, - template (present) universal charstring serverAddress := ?) := { +tr_initiateAuthenticationResponseEsipa(template octetstring transactionId := *, + template (present) ServerSigned1 serverSigned1 := tr_serverSigned1, + template (present) octetstring serverSignature1 := ?, + template (present) octetstring euiccCiPKIdentifierToBeUsed := ?, + template (present) Certificate serverCertificate := ?, + template charstring matchingId := *, + template CtxParams1 ctxParams1 := *) := { initiateAuthenticationResponseEsipa := { initiateAuthenticationOkEsipa := { - transactionId := *, - serverSigned1 := tr_serverSigned1(euiccChallenge := euiccChallenge, serverAddress := serverAddress), - serverSignature1 := ?, - euiccCiPKIdentifierToBeUsed := ?, + transactionId := transactionId, + serverSigned1 := serverSigned1, + serverSignature1 := serverSignature1, + euiccCiPKIdentifierToBeUsed := euiccCiPKIdentifierToBeUsed, serverCertificate := ?, - matchingId := *, - ctxParams1 := * + matchingId := matchingId, + ctxParams1 := ctxParams1 } } } - template (value) EsipaMessageFromEimToIpa -ts_initiateAuthenticationResponseEsipa(template (value) octetstring euiccChallenge := '00112233445566778899AABBCCDDEEFF'O, - template (value) universal charstring serverAddress := "smdp.example.com") := { +ts_initiateAuthenticationResponseEsipa(template (omit) octetstring transactionId := omit, + template (value) ServerSigned1 serverSigned1 := ts_serverSigned1, + template (value) octetstring serverSignature1 := '5252525252525252525252525252525252525252525252525252525252525252 + 5353535353535353535353535353535353535353535353535353535353535353'O, + template (value) octetstring euiccCiPKIdentifierToBeUsed := 'F54172BDF98A95D65CBEB88A38A1C11D800A85C3'O /* NIST */, + template (value) Certificate serverCertificate := ts_cert_s_sm_dpauth_nist, + template (omit) universal charstring matchingId := omit, + template (omit) CtxParams1 ctxParams1 := omit) := { initiateAuthenticationResponseEsipa := { initiateAuthenticationOkEsipa := { - transactionId := omit, - serverSigned1 := ts_serverSigned1(euiccChallenge := euiccChallenge, serverAddress := serverAddress), - serverSignature1 := '5252525252525252525252525252525252525252525252525252525252525252 - 5353535353535353535353535353535353535353535353535353535353535353'O, - 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, -// serverCertificate := ts_cert_s_sm_dp2auth_brp, - matchingId := omit, - ctxParams1 := omit + transactionId := transactionId, + serverSigned1 := serverSigned1, + serverSignature1 := serverSignature1, + euiccCiPKIdentifierToBeUsed := euiccCiPKIdentifierToBeUsed, + serverCertificate := serverCertificate, + matchingId := matchingId, + ctxParams1 := ctxParams1 } } } @@ -164,28 +170,39 @@ euiccInfo2 := euiccInfo2, ctxParams1 := ctxParams1 } +template (present) SGP32_AuthenticateServerResponse +tr_SGP32_authenticateServerResponse := { + authenticateResponseOk := { + euiccSigned1 := tr_euiccSigned1, + euiccSignature1 := ?, + euiccCertificate := ?, + eumCertificate := ? + } +} +template (value) SGP32_AuthenticateServerResponse +ts_SGP32_authenticateServerResponse := { + authenticateResponseOk := { + euiccSigned1 := ts_euiccSigned1, + euiccSignature1 := '5252525252525252525252525252525252525252525252525252525252525252 + 5353535353535353535353535353535353535353535353535353535353535353'O, + euiccCertificate := ts_cert_euicc_nist, + eumCertificate := ts_cert_eum_nist + } +} template (present) EsipaMessageFromIpaToEim -tr_authenticateClientRequestEsipa := { +tr_authenticateClientRequestEsipa(template (present) octetstring transactionId := ?, + template (present) SGP32_AuthenticateServerResponse authenticateServerResponse := tr_SGP32_authenticateServerResponse) := { authenticateClientRequestEsipa := { - transactionId := ?, - authenticateServerResponse := { - authenticateResponseOk := ? - } + transactionId := transactionId, + authenticateServerResponse := authenticateServerResponse } } template (value) EsipaMessageFromIpaToEim -ts_authenticateClientRequestEsipa(template (value) octetstring transactionId := 'ABCDEF'O) := { +ts_authenticateClientRequestEsipa(template (value) octetstring transactionId := 'ABCDEF'O, + template (value) SGP32_AuthenticateServerResponse authenticateServerResponse := ts_SGP32_authenticateServerResponse) := { authenticateClientRequestEsipa := { transactionId := transactionId, - authenticateServerResponse := { - authenticateResponseOk := { - euiccSigned1 := ts_euiccSigned1, - euiccSignature1 := '5252525252525252525252525252525252525252525252525252525252525252 - 5353535353535353535353535353535353535353535353535353535353535353'O, - euiccCertificate := ts_cert_euicc_nist, - eumCertificate := ts_cert_eum_nist - } - } + authenticateServerResponse := authenticateServerResponse } }
@@ -223,40 +240,39 @@
/* GSMA SGP.32, section 6.3.2.2 */ template (present) EsipaMessageFromEimToIpa -tr_authenticateClientResponseEsipa_dpe(template (present) octetstring transactionId := ?) := { +tr_authenticateClientResponseEsipa_dpe(template octetstring transactionId := *, + template SGP32_StoreMetadataRequest profileMetaData := *, + template (present) SmdpSigned2 smdpSigned2 := tr_smdpSigned2, + template (present) octetstring smdpSignature2 := ?, + template (present) Certificate smdpCertificate := ?, + template octetstring hashCc := *) := { authenticateClientResponseEsipa := { authenticateClientOkDPEsipa := { transactionId := transactionId, - profileMetaData := *, - smdpSigned2 := { - transactionId := ?, - ccRequiredFlag := ?, - bppEuiccOtpk := * - }, - smdpSignature2 := ?, - smdpCertificate := ?, - hashCc := * + profileMetaData := profileMetaData, + smdpSigned2 := smdpSigned2, + smdpSignature2 := smdpSignature2, + smdpCertificate := smdpCertificate, + hashCc := hashCc } } } template (value) EsipaMessageFromEimToIpa -ts_authenticateClientResponseEsipa_dpe(template (value) octetstring transactionId := 'ABCDEF'O) := { +ts_authenticateClientResponseEsipa_dpe(template (omit) octetstring transactionId := omit, + template (omit) SGP32_StoreMetadataRequest profileMetaData := omit, + template (value) SmdpSigned2 smdpSigned2 := ts_smdpSigned2, + template (value) octetstring smdpSignature2 := '5252525252525252525252525252525252525252525252525252525252525252 + 5353535353535353535353535353535353535353535353535353535353535353'O, + template (value) Certificate smdpCertificate := ts_cert_s_sm_dpauth_nist, + template (omit) octetstring hashCc := omit) := { authenticateClientResponseEsipa := { authenticateClientOkDPEsipa := { transactionId := transactionId, - profileMetaData := omit, - smdpSigned2 := { - transactionId := transactionId, - ccRequiredFlag := false, - bppEuiccOtpk := omit - }, - smdpSignature2 := '5252525252525252525252525252525252525252525252525252525252525252 - 5353535353535353535353535353535353535353535353535353535353535353'O, - smdpCertificate := ts_cert_s_sm_dpauth_nist, -// smdpCertificate := ts_cert_s_sm_dpauth_brp, -// smdpCertificate := ts_cert_s_sm_dp2auth_nist, -// smdpCertificate := ts_cert_s_sm_dp2auth_brp, - hashCc := omit + profileMetaData := profileMetaData, + smdpSigned2 := smdpSigned2, + smdpSignature2 := smdpSignature2, + smdpCertificate := smdpCertificate, + hashCc := hashCc } } } @@ -274,62 +290,71 @@ template (value) EsipaMessageFromIpaToEim ts_getEimPackageRequest(template (value) octetstring eidValue, template (omit) AsnNull notifyStateChange := omit, - template (omit) integer stateChangeCause := omit) := { + template (omit) integer stateChangeCause := omit, + template (omit) octetstring rPLMN := omit) := { getEimPackageRequest := { eidValue := eidValue, notifyStateChange := notifyStateChange, stateChangeCause := stateChangeCause, - rPLMN := omit + rPLMN := rPLMN } }
/* GSMA SGP.32, section 6.3.2.6 and 2.11.1.3 */ +template (present) ProfileDownloadTriggerRequest +tr_profileDownloadTriggerRequest(template (present) charstring activationCode := ?) := { + profileDownloadData := { + activationCode := activationCode + }, + eimTransactionId := * +} +template (value) ProfileDownloadTriggerRequest +ts_profileDownloadTriggerRequest(template (value) charstring activationCode := "1$SMDP.EXAMPLE.COM$$1.3.6.1.4.1.31746") := { + profileDownloadData := { + activationCode := activationCode + }, + eimTransactionId := omit +} template (present) EsipaMessageFromEimToIpa -tr_getEimPackageResponse_dnlTrigReq(template (present) charstring activationCode := ?) := { +tr_getEimPackageResponse_dnlTrigReq(template (present) ProfileDownloadTriggerRequest profileDownloadTriggerRequest := tr_profileDownloadTriggerRequest) := { getEimPackageResponse := { - profileDownloadTriggerRequest := { - profileDownloadData := { - activationCode := activationCode - }, - eimTransactionId := * - } + profileDownloadTriggerRequest := profileDownloadTriggerRequest } } template (value) EsipaMessageFromEimToIpa -ts_getEimPackageResponse_dnlTrigReq(template (value) charstring activationCode := "1$SMDP.EXAMPLE.COM$$1.3.6.1.4.1.31746") := { +ts_getEimPackageResponse_dnlTrigReq(template (value) ProfileDownloadTriggerRequest profileDownloadTriggerRequest := ts_profileDownloadTriggerRequest) := { getEimPackageResponse := { - profileDownloadTriggerRequest := { - profileDownloadData := { - activationCode := activationCode - }, - eimTransactionId := omit - } + profileDownloadTriggerRequest := profileDownloadTriggerRequest } }
/* GSMA SGP.32, section 6.3.2.6 and 2.11.1.2 */ +template (present) IpaEuiccDataRequest +tr_ipaEuiccDataRequest := { + tagList := ?, + euiccCiPKIdentifierToBeUsed := *, + searchCriteriaNotification := *, + searchCriteriaEuiccPackageResult := *, + eimTransactionId := * +} +template (value) IpaEuiccDataRequest +ts_ipaEuiccDataRequest := { + tagList := '81BF20BF228384A5A6A8A9A0'O, + euiccCiPKIdentifierToBeUsed := omit, + searchCriteriaNotification := omit, + searchCriteriaEuiccPackageResult := omit, + eimTransactionId := omit +} template (present) EsipaMessageFromEimToIpa -tr_getEimPackageResponse_euiccDataReq := { +tr_getEimPackageResponse_euiccDataReq(template (present) IpaEuiccDataRequest ipaEuiccDataRequest := tr_ipaEuiccDataRequest) := { getEimPackageResponse := { - ipaEuiccDataRequest := { - tagList := ?, - euiccCiPKIdentifierToBeUsed := *, - searchCriteriaNotification := *, - searchCriteriaEuiccPackageResult := *, - eimTransactionId := * - } + ipaEuiccDataRequest := ipaEuiccDataRequest } } template (value) EsipaMessageFromEimToIpa -ts_getEimPackageResponse_euiccDataReq := { +ts_getEimPackageResponse_euiccDataReq(template (value) IpaEuiccDataRequest ipaEuiccDataRequest := ts_ipaEuiccDataRequest) := { getEimPackageResponse := { - ipaEuiccDataRequest := { - tagList := '81BF20BF228384A5A6A8A9A0'O, - euiccCiPKIdentifierToBeUsed := omit, - searchCriteriaNotification := omit, - searchCriteriaEuiccPackageResult := omit, - eimTransactionId := omit - } + ipaEuiccDataRequest := ipaEuiccDataRequest } }
@@ -629,55 +654,65 @@ }
/* GSMA SGP.32, section 6.3.2.6 */ +template (present) EuiccPackageRequest +tr_euiccPackageRequest(template (present) EuiccPackage euiccPackage := tr_euiccPackage_enablePsmo) := { + euiccPackageSigned := { + eimId := ?, + eidValue := ?, + counterValue := ?, + eimTransactionId := *, + euiccPackage := euiccPackage + }, + eimSignature := ? +} +template (value) EuiccPackageRequest +ts_euiccPackageRequest(template (value) EuiccPackage euiccPackage := ts_euiccPackage_enablePsmo) := { + euiccPackageSigned := { + eimId := "myEim", + eidValue := '00112233445566778899AABBCCDDEEFF'O, + counterValue := 123, + eimTransactionId := omit, + euiccPackage := euiccPackage + }, + eimSignature := '5252525252525252525252525252525252525252525252525252525252525252 + 5353535353535353535353535353535353535353535353535353535353535353'O +} template (present) EsipaMessageFromEimToIpa -tr_getEimPackageResponse_euiccPkgReq(template (present) EuiccPackage euiccPackage := tr_euiccPackage_enablePsmo) := { +tr_getEimPackageResponse_euiccPkgReq(template (present) EuiccPackageRequest euiccPackageRequest := tr_euiccPackageRequest) := { getEimPackageResponse := { - euiccPackageRequest := { - euiccPackageSigned := { - eimId := ?, - eidValue := ?, - counterValue := ?, - eimTransactionId := *, - euiccPackage := euiccPackage - }, - eimSignature := ? - } + euiccPackageRequest := euiccPackageRequest } } template (value) EsipaMessageFromEimToIpa -ts_getEimPackageResponse_euiccPkgReq(template (value) EuiccPackage euiccPackage := ts_euiccPackage_enablePsmo) := { +ts_getEimPackageResponse_euiccPkgReq(template (value) EuiccPackageRequest euiccPackageRequest := ts_euiccPackageRequest) := { getEimPackageResponse := { - euiccPackageRequest := { - euiccPackageSigned := { - eimId := "myEim", - eidValue := '00112233445566778899AABBCCDDEEFF'O, - counterValue := 123, - eimTransactionId := omit, - euiccPackage := euiccPackage - }, - eimSignature := '5252525252525252525252525252525252525252525252525252525252525252 - 5353535353535353535353535353535353535353535353535353535353535353'O - } + euiccPackageRequest := euiccPackageRequest } }
/* GSMA SGP.32, section 6.3.2.5 */ +template (present) SGP32_CancelSessionResponse +tr_SGP32_cancelSessionResponse := { + cancelSessionResponseOk := tr_cancelSessionResponseOk +} +template (value) SGP32_CancelSessionResponse +ts_SGP32_cancelSessionResponse := { + cancelSessionResponseOk := ts_cancelSessionResponseOk +} template (present) EsipaMessageFromIpaToEim -tr_cancelSessionRequestEsipa := { +tr_cancelSessionRequestEsipa(template (present) octetstring transactionId := ?, + template (present) SGP32_CancelSessionResponse cancelSessionResponse := tr_SGP32_cancelSessionResponse) := { cancelSessionRequestEsipa := { - transactionId := ?, - cancelSessionResponse := { - cancelSessionResponseOk := tr_cancelSessionResponseOk - } + transactionId := transactionId, + cancelSessionResponse := cancelSessionResponse } } template (value) EsipaMessageFromIpaToEim -ts_cancelSessionRequestEsipa := { +ts_cancelSessionRequestEsipa(template (value) octetstring transactionId := 'ABCDEF'O, + template (value) SGP32_CancelSessionResponse cancelSessionResponse := ts_SGP32_cancelSessionResponse) := { cancelSessionRequestEsipa := { - transactionId := 'AABBCC'O, - cancelSessionResponse := { - cancelSessionResponseOk := ts_cancelSessionResponseOk - } + transactionId := transactionId, + cancelSessionResponse := cancelSessionResponse } }
@@ -700,40 +735,48 @@ }
/* GSMA SGP.32, section 6.3.2.3 */ +template (present) SGP32_PrepareDownloadResponse +tr_SGP32_prepareDownloadResponse := { + downloadResponseOk := tr_prepareDownloadResponseOk +} +template (value) SGP32_PrepareDownloadResponse +ts_SGP32_prepareDownloadResponse := { + downloadResponseOk := ts_prepareDownloadResponseOk +} template (present) EsipaMessageFromIpaToEim -tr_getBoundProfilePackageRequestEsipa := { +tr_getBoundProfilePackageRequestEsipa(template (present) octetstring transactionId := 'ABCDEF'O, + template (present) SGP32_PrepareDownloadResponse prepareDownloadResponse := tr_SGP32_prepareDownloadResponse) := { getBoundProfilePackageRequestEsipa := { transactionId := ?, - prepareDownloadResponse := { - downloadResponseOk := tr_prepareDownloadResponseOk - } + prepareDownloadResponse := prepareDownloadResponse } } template (value) EsipaMessageFromIpaToEim -ts_getBoundProfilePackageRequestEsipa := { +ts_getBoundProfilePackageRequestEsipa(template (value) octetstring transactionId := 'ABCDEF'O, + template (value) SGP32_PrepareDownloadResponse prepareDownloadResponse := ts_SGP32_prepareDownloadResponse) := { getBoundProfilePackageRequestEsipa := { transactionId := 'ABCDEF'O, - prepareDownloadResponse := { - downloadResponseOk := ts_prepareDownloadResponseOk - } + prepareDownloadResponse := prepareDownloadResponse } }
/* GSMA SGP.32, section 6.3.2.3 */ template (present) EsipaMessageFromEimToIpa -tr_getBoundProfilePackageResponseEsipa := { +tr_getBoundProfilePackageResponseEsipa(template octetstring transactionId := *, + template (present) BoundProfilePackage boundProfilePackage := ?) := { getBoundProfilePackageResponseEsipa := { getBoundProfilePackageOkEsipa := { - transactionId := *, + transactionId := transactionId, boundProfilePackage := tr_boundProfilePackage } } } template (value) EsipaMessageFromEimToIpa -ts_getBoundProfilePackageResponseEsipa := { +ts_getBoundProfilePackageResponseEsipa(template (omit) octetstring transactionId := omit, + template (value) BoundProfilePackage boundProfilePackage := ts_boundProfilePackage) := { getBoundProfilePackageResponseEsipa := { getBoundProfilePackageOkEsipa := { - transactionId := omit, + transactionId := transactionId, boundProfilePackage := ts_boundProfilePackage } } @@ -773,27 +816,53 @@ }
/* GSMA SGP.32, section 6.3.2.4 */ +template (present) SGP32_PendingNotification tr_SGP32_pendingNotification_prfleInstRslt := { + profileInstallationResult := { + profileInstallationResultData := tr_profileInstallationResultData, + euiccSignPIR := ? + } +} +template (value) SGP32_PendingNotification ts_SGP32_pendingNotification_prfleInstRslt(template (value) charstring notificationAddress := "smdp.example.com") := { + profileInstallationResult := { + profileInstallationResultData := ts_profileInstallationResultData(notificationAddress), + euiccSignPIR := '5252525252525252525252525252525252525252525252525252525252525252 + 5353535353535353535353535353535353535353535353535353535353535353'O + } +} template (present) EsipaMessageFromIpaToEim -tr_handleNotificationEsipa_prfleInstRslt(template (present) charstring notificationAddress := ?) := { +tr_handleNotificationEsipa_pendingNotif(template (present) SGP32_PendingNotification pendingNotification := tr_SGP32_pendingNotification_prfleInstRslt) := { handleNotificationEsipa := { - pendingNotification := { - profileInstallationResult := { - profileInstallationResultData := tr_profileInstallationResultData, - euiccSignPIR := ? - } - } + pendingNotification := pendingNotification } } template (value) EsipaMessageFromIpaToEim -ts_handleNotificationEsipa_prfleInstRslt(template (value) charstring notificationAddress := "smdp.example.com") := { +ts_handleNotificationEsipa_pendingNotif(template (value) SGP32_PendingNotification pendingNotification := ts_SGP32_pendingNotification_prfleInstRslt) := { handleNotificationEsipa := { - pendingNotification := { - profileInstallationResult := { - profileInstallationResultData := ts_profileInstallationResultData(notificationAddress), - euiccSignPIR := '5252525252525252525252525252525252525252525252525252525252525252 - 5353535353535353535353535353535353535353535353535353535353535353'O - } - } + pendingNotification := pendingNotification + } +} +template (present) ProvideEimPackageResult +tr_handleNotif_provideEimPackageResult(template octetstring eidValue := *, + template (present) EimPackageResult eimPackageResult := tr_eimPackageResult_ePRAndNotif) := { + eidValue := eidValue, + eimPackageResult := eimPackageResult +} +template (value) ProvideEimPackageResult +ts_handleNotif_provideEimPackageResult(template (omit) octetstring eidValue := omit, + template (value) EimPackageResult eimPackageResult := ts_eimPackageResult_ePRAndNotif) := { + eidValue := eidValue, + eimPackageResult := eimPackageResult +} +template (present) EsipaMessageFromIpaToEim +tr_handleNotificationEsipa_prvdeEimPkgRslt(template (present) ProvideEimPackageResult provideEimPackageResult := tr_handleNotif_provideEimPackageResult) := { + handleNotificationEsipa := { + provideEimPackageResult := provideEimPackageResult + } +} +template (value) EsipaMessageFromIpaToEim +ts_handleNotificationEsipa_prvdeEimPkgRslt(template (value) ProvideEimPackageResult provideEimPackageResult := ts_handleNotif_provideEimPackageResult) := { + handleNotificationEsipa := { + provideEimPackageResult := provideEimPackageResult } }
@@ -1377,110 +1446,90 @@ } }
+template (present) EimPackageResult +tr_eimPackageResult_ePRAndNotif(template (present) EuiccPackageResult euiccPackageResult := tr_euiccPackageResultSigned_enablePsmo) := { + ePRAndNotifications := { + euiccPackageResult := euiccPackageResult, + notificationList := ? + } +} +template (value) EimPackageResult +ts_eimPackageResult_ePRAndNotif(template (value) EuiccPackageResult euiccPackageResult := ts_euiccPackageResultSigned_enablePsmo) := { + ePRAndNotifications := { + euiccPackageResult := euiccPackageResult, + notificationList := { } + } +} +template (present) EimPackageResult +tr_eimPackageResult_euiccDataResp := { + ipaEuiccDataResponse := { + ipaEuiccData := { + notificationsList := *, + defaultSmdpAddress := *, + euiccPackageResultList := *, + euiccInfo1 := *, + euiccInfo2 := *, + rootSmdsAddress := *, + associationToken := *, + eumCertificate := *, + euiccCertificate := *, + eimTransactionId := *, + ipaCapabilities := *, + deviceInfo := * + } + } +} +template (value) EimPackageResult +ts_eimPackageResult_euiccDataResp(template (omit) octetstring eimTransactionId := omit) := { + 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) EimPackageResult +tr_eimPackageResult_euiccDataResp_err := { + ipaEuiccDataResponse := { + ipaEuiccDataResponseError := { + eimTransactionId := *, + ipaEuiccDataErrorCode := ? + } + } +} +template (value) EimPackageResult +ts_eimPackageResult_euiccDataResp_err(template (omit) octetstring eimTransactionId := omit) := { + ipaEuiccDataResponse := { + ipaEuiccDataResponseError := { + eimTransactionId := eimTransactionId, + ipaEuiccDataErrorCode := 127 + } + } +} template (present) EsipaMessageFromIpaToEim -tr_provideEimPackageResult_ePRAndNotif(template octetstring eidValue := *, - template (present) EuiccPackageResult euiccPackageResult := tr_euiccPackageResultSigned_enablePsmo) := { +tr_provideEimPackageResult(template octetstring eidValue := *, + template (present) EimPackageResult eimPackageResult := ?) := { provideEimPackageResult := { eidValue := eidValue, - eimPackageResult := { - ePRAndNotifications := { - euiccPackageResult := euiccPackageResult, - notificationList := ? - } - } + eimPackageResult := eimPackageResult } } template (value) EsipaMessageFromIpaToEim -ts_provideEimPackageResult_ePRAndNotif(template (omit) octetstring eidValue := omit, - template (value) EuiccPackageResult euiccPackageResult := ts_euiccPackageResultSigned_enablePsmo) := { +ts_provideEimPackageResult(template (omit) octetstring eidValue := omit, + template (value) EimPackageResult eimPackageResult := ts_eimPackageResult_ePRAndNotif) := { provideEimPackageResult := { eidValue := eidValue, - eimPackageResult := { - ePRAndNotifications := { - euiccPackageResult := euiccPackageResult, - notificationList := { } - } - } - } -} - -template (present) EsipaMessageFromIpaToEim -tr_provideEimPackageResult_euiccDataResp(template octetstring eidValue := *) := { - provideEimPackageResult := { - eidValue := eidValue, - eimPackageResult := { - ipaEuiccDataResponse := { - ipaEuiccData := { - notificationsList := *, - defaultSmdpAddress := *, - euiccPackageResultList := *, - euiccInfo1 := *, - euiccInfo2 := *, - rootSmdsAddress := *, - associationToken := *, - eumCertificate := *, - euiccCertificate := *, - eimTransactionId := *, - ipaCapabilities := *, - deviceInfo := * - } - } - } - } -} -template (value) EsipaMessageFromIpaToEim -ts_provideEimPackageResult_euiccDataResp(template (omit) octetstring eidValue := omit, - template (omit) octetstring eimTransactionId := omit) := { - provideEimPackageResult := { - 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 - } - } - } + eimPackageResult := eimPackageResult } }