Loading ItsPki_TestCases.ttcn +65 −247 Original line number Diff line number Diff line Loading @@ -239,8 +239,8 @@ module ItsPki_TestCases { // Do not verify the signature now because ATRequest is required to verify the POP signature ==> false if (f_verify_pki_request_message(vc_aaPrivateEncKey, vc_aaWholeHash/*salt*/, ''O, p_request.body.binary_body.ieee1609dot2_data, false, v_request_hash, v_bfk_hashed_id8, v_etsi_ts_102941_data, v_aes_enc_key) == false) { // Only decryption // Send error message, unable to decypt it v_response := m_http_response(m_http_response_ko_no_body(p_headers, 400, "Bad request")); // Initialize v_reponse with an error message // Send error message, unable to decrypt it v_response := m_http_response(m_http_response_ko_no_body(p_headers, 400, "Bad request")); // Initialize v_response with an error message // Set verdict p_result := -1; } else { Loading Loading @@ -2051,6 +2051,16 @@ module ItsPki_TestCases { // Test Body f_sendUtTriggerEnrolmentRequestPrimitive(); tc_ac.start; alt { [] utPort.receive(UtPkiTriggerInd: { state := 1 }) { tc_ac.stop; log("*** " & testcasename() & ": INFO: IUT is in enrolment state ***"); } [] tc_ac.timeout { log("*** " & testcasename() & ": DBG: IUT state update not recieved ***"); } } // End of 'alt' statement tc_noac.start; alt { [] geoNetworkingPort.receive { Loading Loading @@ -2081,15 +2091,14 @@ module ItsPki_TestCases { // Preamble f_init_default_headers_list(-, "inner_ec_response", v_headers); if (f_await_ec_request_send_response(v_inner_ec_response, v_initial_request) == true) { log("*** " & testcasename() & ": INFO: EnrolmentRequest Response Received ***"); f_selfOrClientSyncAndVerdict(c_prDone, e_error); } else { log("*** " & testcasename() & ": INCONC: EnrolmentRequest Response failed ***"); f_await_ec_request_send_no_response(v_initial_request); log("*** " & testcasename() & ": INFO: Reply with no response error message ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); } // Test Body var integer i; var boolean v_loop := true; for (i := 0; i < PX_ENR_MAX_N1; i := i + 1) { tc_ac.start; alt { [] a_await_ec_http_request_from_iut( Loading Loading @@ -2130,10 +2139,17 @@ module ItsPki_TestCases { } } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); log("*** " & testcasename() & ": INCONC: Response received on the IUT ***"); v_loop := false; f_selfOrClientSyncAndVerdict(c_tbDone, e_success); //break; } } // End of 'alt' statement if (v_loop == false){ break; } } // End of 'loop' statement // Postamble f_cfHttpDown(); Loading Loading @@ -3750,7 +3766,7 @@ module ItsPki_TestCases { log("*** " & testcasename() & ": FAIL: Repeatition request are different ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: Repeatition request are same ***"); log("*** " & testcasename() & ": PASS: Repeatition request are different ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } // Postamble Loading Loading @@ -4160,204 +4176,6 @@ module ItsPki_TestCases { } // End of group f_TC_SECPKI_ITSS_AUTH_REP_04_BV /** * @desc Check that IUT stops sending the Authorization Request message if timeout has been reached * <pre> * Pics Selection: PICS_SECPKI_AUTHORIZATION_RETRY * Initial conditions: { * the IUT being in the 'enrolled' state * and the IUT has started sending the Authorization Request at the time T1 * } * Expected behaviour: * ensure that { * when { * the IUT local time is reached the T1 + PIXIT_AUTH_TIMEOUT_TH2 * } * then { * the IUT stops sending an Authorization Request messages * } * } * </pre> * * @see ETSI TS 103 525-2 TP SECPKI_ITSS_AUTH_REP_05_BV * @reference ETSI TS 103 601, clause 5.1.2 */ testcase TC_SECPKI_ITSS_AUTH_REP_05_BV() runs on ItsMtc system ItsPkiItssSystem { // Local variables var ItsPkiItss v_itss; var ItsPkiHttp v_ea; // Test control if (not PICS_IUT_ITS_S_ROLE or not PICS_SECPKI_AUTHORIZATION) { log("*** " & testcasename() & ": PICS_IUT_ITS_S_ROLE and PICS_SECPKI_AUTHORIZATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfMtcUp01(v_itss, v_ea); // Start component v_itss.start(f_TC_SECPKI_ITSS_AUTH_REP_05_BV_itss()); v_ea.start(f_TC_SECPKI_ITSS_AUTH_REP_05_BV_pki()); // Synchronization f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Cleanup f_cfMtcDown01(v_itss, v_ea); } group f_TC_SECPKI_ITSS_AUTH_REP_05_BV { function f_TC_SECPKI_ITSS_AUTH_REP_05_BV_itss() runs on ItsPkiItss system ItsPkiItssSystem { // Local variables var HashedId8 v_certificate_digest; var EtsiTs103097Certificate v_certificate; var InfoPortData v_info_port_data; var boolean v_start_awaiting := false; // Test component configuration vc_hashedId8ToBeUsed := PX_IUT_DEFAULT_CERTIFICATE; f_cfUp_itss(); // Test adapter configuration // Preamble // Initial state: No CAM shall be emitted geoNetworkingPort.clear; tc_noac.start; alt { [] geoNetworkingPort.receive { log("No CA message expected"); f_selfOrClientSyncAndVerdict(c_prDone, e_error); } [] tc_noac.timeout { f_sendUtTriggerEnrolmentRequestPrimitive(); log("*** " & testcasename() & "_itss: : INFO: No CA message received ***"); f_selfOrClientSyncAndVerdict(c_prDone, e_success); } } // End of 'alt' statement // Test Body f_sendUtTriggerAuthorizationRequestPrimitive(); tc_ac.start; alt { [v_start_awaiting == true] a_await_cam_with_current_cert( v_info_port_data.at_certificate ) { log("*** " & testcasename() & ": PASS: IUT started to send CA message using new AT certificate ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] geoNetworkingPort.receive { log("*** " & testcasename() & ": FAIL: IUT started to send CA message using wrong AT certificate ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] infoPort.receive(InfoPortData:?) -> value v_info_port_data { log("*** " & testcasename() & ": INFO: Received new AT certificate ***"); v_start_awaiting := true; repeat; } [] tc_ac.timeout { log("*** " & testcasename() & "_itss: : PASS: No CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cfDown_itss(); } // End of function f_TC_SECPKI_ITSS_AUTH_REP_05_BV_itss function f_TC_SECPKI_ITSS_AUTH_REP_05_BV_pki() runs on ItsPkiHttp system ItsPkiItssSystem { // Local variable var Headers v_headers; var HttpMessage v_request; var InnerEcResponse v_inner_ec_response; // Test component configuration f_cfHttpUp(PICS_TS_EA_CERTIFICATE_ID, PICS_TS_AA_CERTIFICATE_ID); // Test adapter configuration // Preamble f_init_default_headers_list(-, "inner_at_response", v_headers); if (PX_TRIGGER_EC_BEFORE_AT) { f_await_ec_request_send_error_response(v_request); log("*** " & testcasename() & ": INFO: Reply with 400 Bad Request error message ***"); } else { f_selfOrClientSyncAndVerdict(c_prDone, e_success); } // Do not expect any repetition if (PX_TRIGGER_EC_BEFORE_AT) { if (f_await_ec_request_send_response(v_inner_ec_response, v_request) == true) { log("*** " & testcasename() & ": INFO: Enrolment succeed ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": INCONC: Enrolment failed ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // Test Body tc_ac.start(PX_TAC * 1.1); // for different timer PIXIT_AUTH_TIMEOUT_TH2 alt { [] a_await_at_http_request_from_iut( mw_http_request( mw_http_request_post( PICS_HTTP_POST_URI_AT, -, mw_http_message_body_binary( mw_binary_body_ieee1609dot2_data( mw_authorizationRequestMessage( mw_encryptedData( { *, mw_recipientInfo_pskRecipInfo(vc_aaHashedId8), * }, mw_symmetricCiphertext_aes128ccm )))))), v_request ) { var HttpMessage v_response; var integer v_result; var InnerAtRequest v_inner_at_request; var InnerAtResponse v_inner_at_response; tc_ac.stop; // Verify IUT response f_verify_http_at_request_from_iut_itss(v_request.request, v_headers, v_inner_ec_response.certificate, v_inner_at_request, v_inner_at_response, v_response, v_result); // Send response if (isvalue(v_response)) { httpPort.send(v_response); } // Set verdict if (v_result == 0) { var octetstring v_msg; var octetstring v_hashed_id8; log("*** " & testcasename() & ": PASS: InnerAtRequest received ***"); v_msg := bit2oct(encvalue(v_inner_at_response.certificate)); if (ischosen(v_inner_at_response.certificate.toBeSigned.verifyKeyIndicator.verificationKey.ecdsaBrainpoolP384r1)) { v_hashed_id8 := f_hashedId8FromSha384(f_hashWithSha384(v_msg)); } else { v_hashed_id8 := f_hashedId8FromSha256(f_hashWithSha256(v_msg)); } infoPort.send(InfoPortData : { hashed_id8 := v_hashed_id8, at_certificate := v_inner_at_response.certificate }); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: Failed to verify AA an AuthorizationRequestMessage ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } [] tc_ac.timeout { log("*** " & testcasename() & ": PASS: Expected no AuthorizationRequestMessage ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cfHttpDown(); } // End of function f_TC_SECPKI_ITSS_AUTH_REP_05_BV_pki } } // End of group itss_authorization_request_repetition // ETSI TS 103 525-2 V2.0.2 (2023-07) Clause 5.2.3.4 Authorization using butterfly key expansion mechanism Loading lib/LibItsPki_Pixits.ttcn +2 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,8 @@ module LibItsPki_Pixits { modulepar integer PX_AUTH_MAX_N1 := 10; modulepar integer PX_ENR_MAX_N1 := 10; modulepar integer PX_CTL_SEQUENCE_NUMBER := 2; } // End of module LibItsPki_Pixits lib_system/LibItsPki_Functions.ttcn +38 −0 Original line number Diff line number Diff line Loading @@ -5262,6 +5262,44 @@ module LibItsPki_Functions { return v_result; } // End of function f_await_ec_request_send_response function f_await_ec_request_send_no_response( out HttpMessage p_request ) runs on ItsPkiHttp { var Ieee1609Dot2Data v_ieee1609dot2_signed_and_encrypted_data; log(">>> f_await_ec_request_send_no_response"); tc_ac.start; alt { [] a_await_ec_http_request_from_iut( mw_http_request( mw_http_request_post( PICS_HTTP_POST_URI_EC, -, mw_http_message_body_binary( mw_binary_body_ieee1609dot2_data( mw_enrolmentRequestMessage( mw_encryptedData( -, mw_symmetricCiphertext_aes128ccm )))))), p_request ) { var template (value) HttpMessage v_response; var Headers v_headers; tc_ac.stop; f_init_default_headers_list(-, "inner_ec_response", v_headers); log("f_await_ec_request_send_no_response: Failed to verify PKI message ***"); } [] tc_ac.timeout { log("f_await_ec_request_send_no_response: Expected message not received ***"); } } // End of 'alt' statement } // End of function f_await_ec_request_send_no_response function f_await_ec_request_send_error_response( out HttpMessage p_request ) runs on ItsPkiHttp { Loading Loading
ItsPki_TestCases.ttcn +65 −247 Original line number Diff line number Diff line Loading @@ -239,8 +239,8 @@ module ItsPki_TestCases { // Do not verify the signature now because ATRequest is required to verify the POP signature ==> false if (f_verify_pki_request_message(vc_aaPrivateEncKey, vc_aaWholeHash/*salt*/, ''O, p_request.body.binary_body.ieee1609dot2_data, false, v_request_hash, v_bfk_hashed_id8, v_etsi_ts_102941_data, v_aes_enc_key) == false) { // Only decryption // Send error message, unable to decypt it v_response := m_http_response(m_http_response_ko_no_body(p_headers, 400, "Bad request")); // Initialize v_reponse with an error message // Send error message, unable to decrypt it v_response := m_http_response(m_http_response_ko_no_body(p_headers, 400, "Bad request")); // Initialize v_response with an error message // Set verdict p_result := -1; } else { Loading Loading @@ -2051,6 +2051,16 @@ module ItsPki_TestCases { // Test Body f_sendUtTriggerEnrolmentRequestPrimitive(); tc_ac.start; alt { [] utPort.receive(UtPkiTriggerInd: { state := 1 }) { tc_ac.stop; log("*** " & testcasename() & ": INFO: IUT is in enrolment state ***"); } [] tc_ac.timeout { log("*** " & testcasename() & ": DBG: IUT state update not recieved ***"); } } // End of 'alt' statement tc_noac.start; alt { [] geoNetworkingPort.receive { Loading Loading @@ -2081,15 +2091,14 @@ module ItsPki_TestCases { // Preamble f_init_default_headers_list(-, "inner_ec_response", v_headers); if (f_await_ec_request_send_response(v_inner_ec_response, v_initial_request) == true) { log("*** " & testcasename() & ": INFO: EnrolmentRequest Response Received ***"); f_selfOrClientSyncAndVerdict(c_prDone, e_error); } else { log("*** " & testcasename() & ": INCONC: EnrolmentRequest Response failed ***"); f_await_ec_request_send_no_response(v_initial_request); log("*** " & testcasename() & ": INFO: Reply with no response error message ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); } // Test Body var integer i; var boolean v_loop := true; for (i := 0; i < PX_ENR_MAX_N1; i := i + 1) { tc_ac.start; alt { [] a_await_ec_http_request_from_iut( Loading Loading @@ -2130,10 +2139,17 @@ module ItsPki_TestCases { } } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); log("*** " & testcasename() & ": INCONC: Response received on the IUT ***"); v_loop := false; f_selfOrClientSyncAndVerdict(c_tbDone, e_success); //break; } } // End of 'alt' statement if (v_loop == false){ break; } } // End of 'loop' statement // Postamble f_cfHttpDown(); Loading Loading @@ -3750,7 +3766,7 @@ module ItsPki_TestCases { log("*** " & testcasename() & ": FAIL: Repeatition request are different ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { log("*** " & testcasename() & ": PASS: Repeatition request are same ***"); log("*** " & testcasename() & ": PASS: Repeatition request are different ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } // Postamble Loading Loading @@ -4160,204 +4176,6 @@ module ItsPki_TestCases { } // End of group f_TC_SECPKI_ITSS_AUTH_REP_04_BV /** * @desc Check that IUT stops sending the Authorization Request message if timeout has been reached * <pre> * Pics Selection: PICS_SECPKI_AUTHORIZATION_RETRY * Initial conditions: { * the IUT being in the 'enrolled' state * and the IUT has started sending the Authorization Request at the time T1 * } * Expected behaviour: * ensure that { * when { * the IUT local time is reached the T1 + PIXIT_AUTH_TIMEOUT_TH2 * } * then { * the IUT stops sending an Authorization Request messages * } * } * </pre> * * @see ETSI TS 103 525-2 TP SECPKI_ITSS_AUTH_REP_05_BV * @reference ETSI TS 103 601, clause 5.1.2 */ testcase TC_SECPKI_ITSS_AUTH_REP_05_BV() runs on ItsMtc system ItsPkiItssSystem { // Local variables var ItsPkiItss v_itss; var ItsPkiHttp v_ea; // Test control if (not PICS_IUT_ITS_S_ROLE or not PICS_SECPKI_AUTHORIZATION) { log("*** " & testcasename() & ": PICS_IUT_ITS_S_ROLE and PICS_SECPKI_AUTHORIZATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfMtcUp01(v_itss, v_ea); // Start component v_itss.start(f_TC_SECPKI_ITSS_AUTH_REP_05_BV_itss()); v_ea.start(f_TC_SECPKI_ITSS_AUTH_REP_05_BV_pki()); // Synchronization f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Cleanup f_cfMtcDown01(v_itss, v_ea); } group f_TC_SECPKI_ITSS_AUTH_REP_05_BV { function f_TC_SECPKI_ITSS_AUTH_REP_05_BV_itss() runs on ItsPkiItss system ItsPkiItssSystem { // Local variables var HashedId8 v_certificate_digest; var EtsiTs103097Certificate v_certificate; var InfoPortData v_info_port_data; var boolean v_start_awaiting := false; // Test component configuration vc_hashedId8ToBeUsed := PX_IUT_DEFAULT_CERTIFICATE; f_cfUp_itss(); // Test adapter configuration // Preamble // Initial state: No CAM shall be emitted geoNetworkingPort.clear; tc_noac.start; alt { [] geoNetworkingPort.receive { log("No CA message expected"); f_selfOrClientSyncAndVerdict(c_prDone, e_error); } [] tc_noac.timeout { f_sendUtTriggerEnrolmentRequestPrimitive(); log("*** " & testcasename() & "_itss: : INFO: No CA message received ***"); f_selfOrClientSyncAndVerdict(c_prDone, e_success); } } // End of 'alt' statement // Test Body f_sendUtTriggerAuthorizationRequestPrimitive(); tc_ac.start; alt { [v_start_awaiting == true] a_await_cam_with_current_cert( v_info_port_data.at_certificate ) { log("*** " & testcasename() & ": PASS: IUT started to send CA message using new AT certificate ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] geoNetworkingPort.receive { log("*** " & testcasename() & ": FAIL: IUT started to send CA message using wrong AT certificate ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] infoPort.receive(InfoPortData:?) -> value v_info_port_data { log("*** " & testcasename() & ": INFO: Received new AT certificate ***"); v_start_awaiting := true; repeat; } [] tc_ac.timeout { log("*** " & testcasename() & "_itss: : PASS: No CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cfDown_itss(); } // End of function f_TC_SECPKI_ITSS_AUTH_REP_05_BV_itss function f_TC_SECPKI_ITSS_AUTH_REP_05_BV_pki() runs on ItsPkiHttp system ItsPkiItssSystem { // Local variable var Headers v_headers; var HttpMessage v_request; var InnerEcResponse v_inner_ec_response; // Test component configuration f_cfHttpUp(PICS_TS_EA_CERTIFICATE_ID, PICS_TS_AA_CERTIFICATE_ID); // Test adapter configuration // Preamble f_init_default_headers_list(-, "inner_at_response", v_headers); if (PX_TRIGGER_EC_BEFORE_AT) { f_await_ec_request_send_error_response(v_request); log("*** " & testcasename() & ": INFO: Reply with 400 Bad Request error message ***"); } else { f_selfOrClientSyncAndVerdict(c_prDone, e_success); } // Do not expect any repetition if (PX_TRIGGER_EC_BEFORE_AT) { if (f_await_ec_request_send_response(v_inner_ec_response, v_request) == true) { log("*** " & testcasename() & ": INFO: Enrolment succeed ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": INCONC: Enrolment failed ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // Test Body tc_ac.start(PX_TAC * 1.1); // for different timer PIXIT_AUTH_TIMEOUT_TH2 alt { [] a_await_at_http_request_from_iut( mw_http_request( mw_http_request_post( PICS_HTTP_POST_URI_AT, -, mw_http_message_body_binary( mw_binary_body_ieee1609dot2_data( mw_authorizationRequestMessage( mw_encryptedData( { *, mw_recipientInfo_pskRecipInfo(vc_aaHashedId8), * }, mw_symmetricCiphertext_aes128ccm )))))), v_request ) { var HttpMessage v_response; var integer v_result; var InnerAtRequest v_inner_at_request; var InnerAtResponse v_inner_at_response; tc_ac.stop; // Verify IUT response f_verify_http_at_request_from_iut_itss(v_request.request, v_headers, v_inner_ec_response.certificate, v_inner_at_request, v_inner_at_response, v_response, v_result); // Send response if (isvalue(v_response)) { httpPort.send(v_response); } // Set verdict if (v_result == 0) { var octetstring v_msg; var octetstring v_hashed_id8; log("*** " & testcasename() & ": PASS: InnerAtRequest received ***"); v_msg := bit2oct(encvalue(v_inner_at_response.certificate)); if (ischosen(v_inner_at_response.certificate.toBeSigned.verifyKeyIndicator.verificationKey.ecdsaBrainpoolP384r1)) { v_hashed_id8 := f_hashedId8FromSha384(f_hashWithSha384(v_msg)); } else { v_hashed_id8 := f_hashedId8FromSha256(f_hashWithSha256(v_msg)); } infoPort.send(InfoPortData : { hashed_id8 := v_hashed_id8, at_certificate := v_inner_at_response.certificate }); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: Failed to verify AA an AuthorizationRequestMessage ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } [] tc_ac.timeout { log("*** " & testcasename() & ": PASS: Expected no AuthorizationRequestMessage ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cfHttpDown(); } // End of function f_TC_SECPKI_ITSS_AUTH_REP_05_BV_pki } } // End of group itss_authorization_request_repetition // ETSI TS 103 525-2 V2.0.2 (2023-07) Clause 5.2.3.4 Authorization using butterfly key expansion mechanism Loading
lib/LibItsPki_Pixits.ttcn +2 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,8 @@ module LibItsPki_Pixits { modulepar integer PX_AUTH_MAX_N1 := 10; modulepar integer PX_ENR_MAX_N1 := 10; modulepar integer PX_CTL_SEQUENCE_NUMBER := 2; } // End of module LibItsPki_Pixits
lib_system/LibItsPki_Functions.ttcn +38 −0 Original line number Diff line number Diff line Loading @@ -5262,6 +5262,44 @@ module LibItsPki_Functions { return v_result; } // End of function f_await_ec_request_send_response function f_await_ec_request_send_no_response( out HttpMessage p_request ) runs on ItsPkiHttp { var Ieee1609Dot2Data v_ieee1609dot2_signed_and_encrypted_data; log(">>> f_await_ec_request_send_no_response"); tc_ac.start; alt { [] a_await_ec_http_request_from_iut( mw_http_request( mw_http_request_post( PICS_HTTP_POST_URI_EC, -, mw_http_message_body_binary( mw_binary_body_ieee1609dot2_data( mw_enrolmentRequestMessage( mw_encryptedData( -, mw_symmetricCiphertext_aes128ccm )))))), p_request ) { var template (value) HttpMessage v_response; var Headers v_headers; tc_ac.stop; f_init_default_headers_list(-, "inner_ec_response", v_headers); log("f_await_ec_request_send_no_response: Failed to verify PKI message ***"); } [] tc_ac.timeout { log("f_await_ec_request_send_no_response: Expected message not received ***"); } } // End of 'alt' statement } // End of function f_await_ec_request_send_no_response function f_await_ec_request_send_error_response( out HttpMessage p_request ) runs on ItsPkiHttp { Loading