Commit a97fdd95 authored by Denis Filatov's avatar Denis Filatov
Browse files

(*) fix TC_SECPKI_ITSS_ENR_REP_01_BV

parent 534a3920
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -14,4 +14,5 @@ module ItsPki_Pixits {
  
  modulepar float PX_CERT_EXPIRATION_DELAY := 10.0;

  modulepar float PX_EC_REPETITION_TIMEOUT := 120.0;
} // End of module ItsPki_Pixits
+30 −115
Original line number Diff line number Diff line
@@ -2276,7 +2276,9 @@ module ItsPki_TestCases {
          var boolean                 v_iut_state_ok := false;
          // Test component configuration
          vc_hashedId8ToBeUsed := PX_IUT_DEFAULT_CERTIFICATE;
          // vc_hashedId8ToBeUsed := PX_IUT_DEFAULT_CERTIFICATE;
          vc_hashedId8ToBeUsed := ""; // No certificates //PX_IUT_DEFAULT_CERTIFICATE
          f_cfUp_itss();
          // Test adapter configuration
@@ -2456,7 +2458,7 @@ module ItsPki_TestCases {
          var boolean                 v_iut_state_ok := false;
          // Test component configuration
          vc_hashedId8ToBeUsed := PX_IUT_DEFAULT_CERTIFICATE;
          vc_hashedId8ToBeUsed := ""; // No certificates //PX_IUT_DEFAULT_CERTIFICATE
          f_cfUp_itss();
          // Test adapter configuration
@@ -2620,7 +2622,7 @@ module ItsPki_TestCases {
        f_cfMtcUp01(v_itss, v_ea);
        // Start component
        v_itss.start(f_TC_SECPKI_ITSS_ENR_REP_01_BV_itss());
        v_itss.start(f_TC_SECPKI_ITSS_ENR_01_BV_itss()); // reuse from ENR group
        v_ea.start(f_TC_SECPKI_ITSS_ENR_REP_01_BV_pki());
        // Synchronization
@@ -2633,67 +2635,11 @@ module ItsPki_TestCases {
      group f_TC_SECPKI_ITSS_ENR_REP_01_BV {
        function f_TC_SECPKI_ITSS_ENR_REP_01_BV_itss() runs on ItsPkiItss system ItsPkiItssSystem {
          // Local variables
          var HashedId8               v_certificate_digest;
          var EtsiTs103097Certificate v_certificate;
          // 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 {
              log("*** " & testcasename() & ": INFO: No CA message received ***");
              f_selfOrClientSyncAndVerdict(c_prDone, e_success);
              }
            } // End of 'alt' statement
          // 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 {
              log("No CA message expected");
              f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
            }
            [] tc_noac.timeout {
              log("*** " & testcasename() & ": PASS: Enrolment trigger sent successfully ***");
              f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
            }
          } // End of 'alt' statement
          // Postamble
          f_cfDown_itss();
        } // End of function f_TC_SECPKI_ITSS_ENR_REP_01_BV_itss
        function f_TC_SECPKI_ITSS_ENR_REP_01_BV_pki() runs on ItsPkiHttp system ItsPkiItssSystem {
          // Local variable
          var Headers v_headers;
          var HttpMessage v_initial_request;
          var HttpMessage v_request;
          var InnerEcResponse v_inner_ec_response;
          var InnerEcRequest v_inner_ec_request;
          // Test component configuration
          f_cfHttpUp(PICS_TS_EA_CERTIFICATE_ID, PICS_TS_AA_CERTIFICATE_ID);
@@ -2702,66 +2648,35 @@ module ItsPki_TestCases {
          // Preamble
          f_init_default_headers_list(-, "inner_ec_response", v_headers);
          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(
                                                  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_recipientInfo_certRecipInfo(mw_pKRecipientInfo(vc_eaHashedId8)), * },
                                                                                                                                                                                              mw_symmetricCiphertext_aes128ccm
                                                                                                                                                                                              )))))),
                                                  v_request
                                                  ) {
                var HttpMessage v_response;
                var integer v_result;
                var InnerEcRequest v_inner_ec_request;
            [] a_await_ec_http_request_from_iut(mw_http_ec_request_generic, v_request) {
              log("*** " & testcasename() & ": INFO: First enrolment request received ***");
              tc_ac.stop;
                // Verify IUT response
                f_verify_http_ec_request_from_iut_itss(v_request.request, v_headers, v_inner_ec_request, v_inner_ec_response, v_response, v_result);
                // Send response
                if (isvalue(v_response)) {
                  httpPort.send(v_response);
                } else { // Send HTTP error 500
                  f_send_500_Internal_Error(v_headers);
                }
                // Set verdict
                if (v_result == 0) {
                  log("*** " & testcasename() & ": PASS: InnerEcRequest received ***");
                  f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                } else {
                  log("*** " & testcasename() & ": FAIL: Failed to verify EA an EnrolmentRequestMessage ***");
                  f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                }
              f_http_restart("inner_ec_request");
            }
            [] tc_ac.timeout {
                log("*** " & testcasename() & ": INCONC: Response received on the IUT ***");
                 v_loop := false;
                f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                //break;
              log("*** " & testcasename() & ": INCONC: First enrolment request not received received ***");
              f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout);
            }
          } // End of 'alt' statement
            if (v_loop == false){
              break;
            }
          } // End of 'loop' statement
          f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
  
          // Test Body
          tc_wait.start(PX_EC_REPETITION_TIMEOUT);
          alt {
            [] a_await_ec_http_request_from_iut(mw_http_ec_request_generic, v_request) {
              log("*** " & testcasename() & ": PASS: EC repetition has been received after a ", tc_wait.read, " ***");
              tc_wait.stop;
              f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
            }
            [] tc_wait.timeout {
              log("*** " & testcasename() & ": FAIL: EC repetition was not received ***");
              f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
            }
          }
          // Postamble
          f_cfHttpDown();
        } // End of function f_TC_SECPKI_ITSS_ENR_REP_01_BV_pki
+8 −4
Original line number Diff line number Diff line
@@ -14,7 +14,8 @@ module ItsPki_TestControl {
        execute(TC_SECPKI_ITSS_ENR_02_BV());
        if (PICS_SECPKI_REENROLMENT) {
          execute(TC_SECPKI_ITSS_ENR_03_BV());
          execute(TC_SECPKI_ITSS_ENR_06_BV());
          execute(TC_SECPKI_ITSS_ENR_06_BV_1());
          execute(TC_SECPKI_ITSS_ENR_06_BV_2());
          execute(TC_SECPKI_ITSS_ENR_12_BV());
        }
        if (PICS_SECPKI_CRL) {
@@ -29,9 +30,12 @@ module ItsPki_TestControl {
        }
        execute(TC_SECPKI_ITSS_ENR_05_BV());
        execute(TC_SECPKI_ITSS_ENR_07_BV());
        execute(TC_SECPKI_ITSS_ENR_08_BV());
        execute(TC_SECPKI_ITSS_ENR_09_BV());
        execute(TC_SECPKI_ITSS_ENR_10_BV());
        execute(TC_SECPKI_ITSS_ENR_08_BV_1());
        execute(TC_SECPKI_ITSS_ENR_08_BV_2());
        execute(TC_SECPKI_ITSS_ENR_09_BV_1());
        execute(TC_SECPKI_ITSS_ENR_09_BV_2());
        execute(TC_SECPKI_ITSS_ENR_10_BV_1());
        execute(TC_SECPKI_ITSS_ENR_10_BV_2());
        execute(TC_SECPKI_ITSS_ENR_11_BV());
        
        execute(TC_SECPKI_ITSS_ENR_RECV_01_BV());
+23 −19
Original line number Diff line number Diff line
@@ -821,6 +821,27 @@ module LibItsPki_Functions {

      return true;
    }
    function f_http_restart (
                              in charstring p_content_text
                            ) runs on ItsPkiHttp {
      if (not(PICS_MULTIPLE_END_POINT)) {
        log("f_http_restart: restart httpPort");
        httpPort.stop;
        httpPort.start;
      } else {
        log("f_http_restart: restart httpPort with contentType ", p_content_text);
        select(p_content_text){
          case ("inner_ec_request"){
            httpEcPort.stop;
            httpEcPort.start;
          }
          case ("inner_atv_request"){
            httpAtVPort.stop;
            httpAtVPort.start;
          }
        }
      }
    }

    function f_http_send(
                         in Headers p_headers,
@@ -5389,26 +5410,9 @@ module LibItsPki_Functions {

      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;

        [] a_await_ec_http_request_from_iut(mw_http_ec_request_generic, p_request) {
          tc_ac.stop;

          f_init_default_headers_list(-, "inner_ec_response", v_headers);
          f_http_restart("inner_ec_request");
          log("f_await_ec_request_send_no_response: Failed to verify PKI message ***");
        }
        [] tc_ac.timeout {