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
        }
 }


--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43181?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I69a29b30578b0280006c2655b20c2a4eb62f5e75
Gerrit-Change-Number: 43181
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <[email protected]>

Reply via email to