dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/36671?usp=email )
Change subject: RSPDefinitions: add separate template for serverSigned1 ......................................................................
RSPDefinitions: add separate template for serverSigned1
The field serverSigned1 is used in many messages, so it might be helpful to add a separate template for it.
Change-Id: Ic50676ac2863173b72765afc44794a56d03413a5 Related: SYS#6824 --- M library/euicc/RSPDefinitions_EncDec.cc M library/euicc/RSPDefinitions_Templates.ttcn M library/euicc/RSPDefinitions_Types.ttcn M library/euicc/SGP32Definitions_Templates.ttcn 4 files changed, 75 insertions(+), 13 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/71/36671/1
diff --git a/library/euicc/RSPDefinitions_EncDec.cc b/library/euicc/RSPDefinitions_EncDec.cc index 6441201..b46a73c 100644 --- a/library/euicc/RSPDefinitions_EncDec.cc +++ b/library/euicc/RSPDefinitions_EncDec.cc @@ -278,4 +278,38 @@ return msg; }
+OCTETSTRING enc__RemoteProfileProvisioningResponse(const RemoteProfileProvisioningResponse &msg) { + TTCN_Buffer buf; + + buf.clear(); + msg.encode(RemoteProfileProvisioningResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER); + return OCTETSTRING(buf.get_len(), buf.get_data()); +} + +RemoteProfileProvisioningResponse dec__RemoteProfileProvisioningResponse(const OCTETSTRING &stream) { + TTCN_Buffer buf; + RemoteProfileProvisioningResponse msg; + buf.put_os(stream); + + msg.decode(RemoteProfileProvisioningResponse_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL); + return msg; +} + +OCTETSTRING enc__RemoteProfileProvisioningRequest(const RemoteProfileProvisioningRequest &msg) { + TTCN_Buffer buf; + + buf.clear(); + msg.encode(RemoteProfileProvisioningRequest_descr_, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER); + return OCTETSTRING(buf.get_len(), buf.get_data()); +} + +RemoteProfileProvisioningRequest dec__RemoteProfileProvisioningRequest(const OCTETSTRING &stream) { + TTCN_Buffer buf; + RemoteProfileProvisioningRequest msg; + buf.put_os(stream); + + msg.decode(RemoteProfileProvisioningRequest_descr_, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL); + return msg; +} + } diff --git a/library/euicc/RSPDefinitions_Templates.ttcn b/library/euicc/RSPDefinitions_Templates.ttcn index 86cdb0c..52e1788 100644 --- a/library/euicc/RSPDefinitions_Templates.ttcn +++ b/library/euicc/RSPDefinitions_Templates.ttcn @@ -74,6 +74,25 @@ '515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151'O} }
+template (present) ServerSigned1 tr_serverSigned1(template (present) octetstring transactionId := ?, + template (present) octetstring euiccChallenge := ?, + template (present) universal charstring serverAddress := ?, + template (present) octetstring serverChallenge := ?) := { + transactionId := transactionId, + euiccChallenge := euiccChallenge, + serverAddress := serverAddress, + serverChallenge := serverChallenge +} +template (value) ServerSigned1 ts_serverSigned1(template (value) octetstring transactionId := 'ABCDEF'O, + template (value) octetstring euiccChallenge := '00112233445566778899AABBCCDDEEFF'O, + template (value) universal charstring serverAddress := "smdp.example.com", + template (value) octetstring serverChallenge := '01020304050607080910111213141516'O) := { + transactionId := transactionId, + euiccChallenge := euiccChallenge, + serverAddress := serverAddress, + serverChallenge := serverChallenge +} + /* GSMA SGP.22, section 2.5.6 */ template (present) ProfileInstallationResult tr_profileInstallationResult := { @@ -576,4 +595,4 @@ eidValue := eidValue }
-} \ No newline at end of file +} diff --git a/library/euicc/RSPDefinitions_Types.ttcn b/library/euicc/RSPDefinitions_Types.ttcn index b031aa3..5bb3925 100644 --- a/library/euicc/RSPDefinitions_Types.ttcn +++ b/library/euicc/RSPDefinitions_Types.ttcn @@ -51,4 +51,10 @@ external function dec_SmdpSigned2(in octetstring stream) return SmdpSigned2; external function enc_SmdpSigned2(in SmdpSigned2 msg) return octetstring;
+external function dec_RemoteProfileProvisioningResponse(in octetstring stream) return RemoteProfileProvisioningResponse; +external function enc_RemoteProfileProvisioningResponse(in RemoteProfileProvisioningResponse msg) return octetstring; + +external function dec_RemoteProfileProvisioningRequest(in octetstring stream) return RemoteProfileProvisioningRequest; +external function enc_RemoteProfileProvisioningRequest(in RemoteProfileProvisioningRequest msg) return octetstring; + } diff --git a/library/euicc/SGP32Definitions_Templates.ttcn b/library/euicc/SGP32Definitions_Templates.ttcn index 86c2055..98a2bba 100644 --- a/library/euicc/SGP32Definitions_Templates.ttcn +++ b/library/euicc/SGP32Definitions_Templates.ttcn @@ -28,12 +28,7 @@ initiateAuthenticationResponseEsipa := { initiateAuthenticationOkEsipa := { transactionId := *, - serverSigned1 := { - transactionId := ?, - euiccChallenge := euiccChallenge, - serverAddress := serverAddress, - serverChallenge := ? - }, + serverSigned1 := tr_serverSigned1(euiccChallenge := euiccChallenge, serverAddress := serverAddress), serverSignature1 := ?, euiccCiPKIdToBeUsed := ?, serverCertificate := ?, @@ -49,12 +44,7 @@ initiateAuthenticationResponseEsipa := { initiateAuthenticationOkEsipa := { transactionId := omit, - serverSigned1 := { - transactionId := 'ABCDEF'O, - euiccChallenge := euiccChallenge, - serverAddress := "smdp.example.com", - serverChallenge := '01020304050607080910111213141516'O - }, + serverSigned1 := ts_serverSigned1(euiccChallenge := euiccChallenge, serverAddress := serverAddress), serverSignature1 := '01020304'O, euiccCiPKIdToBeUsed := 'F54172BDF98A95D65CBEB88A38A1C11D800A85C3'O, /* NIST */ serverCertificate := ts_cert_s_sm_dpauth_nist,