Commit 4dee8682 authored by Yann Garcia's avatar Yann Garcia
Browse files

Merging with ts_validation branch

parent 9660432f
Loading
Loading
Loading
Loading
+93 −32
Original line number Diff line number Diff line
@@ -808,11 +808,11 @@ module ItsPki_TestCases {
          tc_noac.start;
          alt {
            [] geoNetworkingPort.receive {
              log("No CA message expected");
              log("*** " & testcasename() & "itss: FAIL: Unexpected GeoNet message received ***");
              f_selfOrClientSyncAndVerdict(c_prDone, e_error);
            }
            [] tc_noac.timeout {
              log("*** " & testcasename() & ": INFO: No CA message received ***");
              log("*** " & testcasename() & "itss: INFO: No GeoNet message received. Continue ***");
              f_selfOrClientSyncAndVerdict(c_prDone, e_success);
              }
          } // End of 'alt' statement
@@ -826,18 +826,18 @@ module ItsPki_TestCases {
              log("*** " & testcasename() & "itss: INFO: IUT is in enrolment state ***");
            }
            [] tc_ac.timeout {
              log("*** " & testcasename() & ": DBG: IUT state update not recieved ***");
              log("*** " & testcasename() & "itss: DBG: IUT state update not recieved. Assuming it was OK... ***");
              //f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
            }
          } // End of 'alt' statement
          tc_noac.start;
          alt {
            [] geoNetworkingPort.receive {
              log("No CA message expected");
              log("*** " & testcasename() & "itss: FAIL: Unexpected GeoNet message received ***");
              f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
            }
            [] tc_noac.timeout {
              log("*** " & testcasename() & ": PASS: Enrolment trigger sent succesfully ***");
              log("*** " & testcasename() & "itss: PASS: Enrolment trigger sent succesfully ***");
              f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
            }
          } // End of 'alt' statement
@@ -1136,13 +1136,13 @@ module ItsPki_TestCases {
          tc_noac.start;
          alt {
            [] geoNetworkingPort.receive {
              log("No CA message expected");
              log("*** " & testcasename() & "_itss: ERROR: Unexpected GeoNet message received ***");
              f_selfOrClientSyncAndVerdict(c_prDone, e_error);
              }
            [] tc_noac.timeout {
              // Trigger the first enrolment
              log("*** " & testcasename() & "_itss: INFO: No GeoNet message received. Continue ***");
              f_sendUtTriggerEnrolmentRequestPrimitive();
              log("*** " & testcasename() & "_itss: INFO: No CA message received ***");
              f_selfOrClientSyncAndVerdict(c_prDone, e_success);
              } 
            } // End of 'alt' statement
@@ -1156,7 +1156,7 @@ module ItsPki_TestCases {
              log("*** " & testcasename() & "_itss: INFO: IUT is in enrolment state ***");
            }
            [] tc_ac.timeout {
              log("*** " & testcasename() & "_itss: DBG: IUT state update not recieved ***");
              log("*** " & testcasename() & "_itss: DBG: IUT state update not recieved. Assuming it was OK... ***");
              //f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
            }
          } // End of 'alt' statement
@@ -1879,9 +1879,9 @@ module ItsPki_TestCases {
          // Start components
          if(p_itss_state == c_stEnrolled) {
            v_itss.start(f_TC_SECPKI_ITSS_ENR_01_BV_itss());
          } else {
            v_itss.start(f_TC_SECPKI_ITSS_ENR_03_BV_itss());
          } else {
            v_itss.start(f_TC_SECPKI_ITSS_ENR_01_BV_itss());
          }
          v_ea.start(f_TC_SECPKI_ITSS_ENR_08_BV_pki(p_itss_state));
@@ -2944,7 +2944,7 @@ module ItsPki_TestCases {
          f_cfMtcUp01(v_itss, v_ea);
          // Start component
          v_itss.start(f_TC_SECPKI_ITSS_ENR_01_BV_itss()); // reuse from ENR group
          v_itss.start(f_TC_SECPKI_ITSS_ENR_REP_01_BV_itss());
          v_ea.start(f_TC_SECPKI_ITSS_ENR_REP_01_BV_pki());
          // Synchronization
@@ -2955,6 +2955,40 @@ module ItsPki_TestCases {
        } // End of testcase TC_SECPKI_ITSS_ENR_REP_01_BV
        function f_TC_SECPKI_ITSS_ENR_REP_01_BV_itss()
             runs on ItsPkiItss system ItsPkiItssSystem {
          // Test component configuration
          // vc_hashedId8ToBeUsed := PX_IUT_DEFAULT_CERTIFICATE;
          vc_hashedId8ToBeUsed := "";
          f_cfUp_itss();
          // Test adapter configuration
          // Preamble
          // Initial state: No CAM shall be emitted
          geoNetworkingPort.clear;
          tc_noac.start;
          alt {
            [] geoNetworkingPort.receive {
              log("*** " & testcasename() & "_itss: ERROR: Unexpected GeoNet message received ***");
              f_selfOrClientSyncAndVerdict(c_prDone, e_error);
              }
            [] tc_noac.timeout {
              // Trigger the first enrolment
              log("*** " & testcasename() & "_itss: INFO: No GeoNet message received. Continue ***");
              f_sendUtTriggerEnrolmentRequestPrimitive(-, -, -, -, -, false);
              f_selfOrClientSyncAndVerdict(c_prDone, e_success);
            }
          } // End of 'alt' statement
          // Test Body
          // Nothing to do in test body. Just wait for ENR repetition in PKI component          
          f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
          // 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;
@@ -2977,7 +3011,7 @@ module ItsPki_TestCases {
              f_http_restart("inner_ec_request");
            }
            [] tc_ac.timeout {
              log("*** " & testcasename() & ": INCONC: First enrolment request not received received ***");
              log("*** " & testcasename() & ": INCONC: First enrolment request not received ***");
              f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout);
            }
          } // End of 'alt' statement
@@ -3042,7 +3076,7 @@ module ItsPki_TestCases {
          f_cfMtcUp01(v_itss, v_ea);
          
          // Start component
          v_itss.start(f_TC_SECPKI_ITSS_ENR_01_BV_itss());
          v_itss.start(f_TC_SECPKI_ITSS_ENR_REP_01_BV_itss());
          v_ea.start(f_TC_SECPKI_ITSS_ENR_REP_02_BV_pki());
          
          // Synchronization
@@ -3154,7 +3188,7 @@ module ItsPki_TestCases {
        f_cfMtcUp01(v_itss, v_ea);
        // Start component
        v_itss.start(f_TC_SECPKI_ITSS_ENR_01_BV_itss()); // reused from ENR group
        v_itss.start(f_TC_SECPKI_ITSS_ENR_REP_01_BV_itss());
        v_ea.start(f_TC_SECPKI_ITSS_ENR_REP_03_BV_pki());
        // Synchronization
@@ -3172,6 +3206,8 @@ module ItsPki_TestCases {
          var Headers v_headers;
          var HttpMessage v_request;
          var HttpMessage v_initial_request;
          var integer v_rep_count := 0;
          var integer c_rep_answer := 2; // answer to the n-th request repetition
          // Test component configuration
          f_cfHttpUp(PICS_TS_EA_CERTIFICATE_ID, PICS_TS_AA_CERTIFICATE_ID);
@@ -3199,18 +3235,31 @@ module ItsPki_TestCases {
          // Test Body
          tc_ac.start;
          alt {
            [] a_await_ec_http_request_from_iut(mw_http_ec_request_generic, v_request) {
              log("*** " & testcasename() & ": EC repetition has been received ***");
              var HttpMessage v_response;
              var integer v_result;
            // match initial request
            [] a_await_ec_http_request_from_iut(
                                                mw_http_ec_request_generic(
                                                                            v_initial_request.request.body.binary_body.ieee1609dot2_data
                                                                          ), 
                                                v_request
                                                ) {
              v_rep_count := v_rep_count + 1;
              tc_ac.stop;
              if (v_rep_count < c_rep_answer) {
                // skip repetition
                log("*** " & testcasename() & ": ", v_rep_count, " EC repetition has been received. Continue ***");
                f_http_restart("inner_ec_request");
                tc_ac.start;
                repeat;
              }
              
              if(v_rep_count == c_rep_answer) {
                // answer this repetition
                log("*** " & testcasename() & ": ", v_rep_count, " EC repetition has been received. Respond ***");
                var InnerEcRequest v_inner_ec_request;
                var InnerEcResponse v_inner_ec_response;
                var HttpMessage v_response;
                var integer v_result;
              tc_ac.stop;
              // Verify IUT response
              // Generate response when requests are same
              if (match(v_request, v_initial_request)) {
                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)) {
@@ -3224,14 +3273,26 @@ module ItsPki_TestCases {
                } else {
                  log("*** " & testcasename() & ": FAIL: Failed to verify EA an EnrolmentRequestMessage ***");
                }  
              } else {
                log("*** " & testcasename() & ": FAIL: Repetition request is different ***");
                repeat;
              }
              // repetition request received after sending the response
              log("*** " & testcasename() & ": FAIL: Repetition request received after response ***");
              f_selfOrClientSyncAndVerdict(c_tbDone, e_error);  
            }                                     
              repeat;
            [] a_await_ec_http_request_from_iut( mw_http_ec_request_generic, v_request ) {
              tc_ac.stop;
              f_send_500_Internal_Error(v_headers);
              log("*** " & testcasename() & ": INCONC: New request received during repetition period ***");
              f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
            }
            [] tc_ac.timeout {
              log("*** " & testcasename() & ": PASS: EC repetition request was not received ***");
              if(v_rep_count < c_rep_answer) {
                log("*** " & testcasename() & ": INCONC: Timeout occured during the repetition period ***");
                f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
              }
              
              log("*** " & testcasename() & ": PASS: EC repetition request was not received after response ***");
              f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
            }
          } // End of alt statment
@@ -3280,7 +3341,7 @@ module ItsPki_TestCases {
        f_cfMtcUp01(v_itss, v_ea);
        // Start component
        v_itss.start(f_TC_SECPKI_ITSS_ENR_01_BV_itss()); // reused from ENR group
        v_itss.start(f_TC_SECPKI_ITSS_ENR_REP_01_BV_itss());
        v_ea.start(f_TC_SECPKI_ITSS_ENR_REP_04_BV_pki());
        // Synchronization
@@ -3376,7 +3437,7 @@ module ItsPki_TestCases {
        f_cfMtcUp01(v_itss, v_ea);
        // Start component
        v_itss.start(f_TC_SECPKI_ITSS_ENR_01_BV_itss()); // reused from ENR group
        v_itss.start(f_TC_SECPKI_ITSS_ENR_REP_01_BV_itss());
        v_ea.start(f_TC_SECPKI_ITSS_ENR_REP_05_BV_pki());
        // Synchronization
+22 −16
Original line number Diff line number Diff line
@@ -562,7 +562,8 @@ module LibItsPki_Functions {
                                                      in Oct1 p_enc_algorithm := '00'O,
                                                      in octetstring p_private_key := ''O,
                                                      in octetstring p_public_key_compressed := ''O,
                                                      in integer p_compressed_mode := 0
                                                      in integer p_compressed_mode := 0,
                                                      in boolean p_check_result := true
                                                      ) runs on ItsPkiItss {
      var TriggerEnrolmentRequest v_ut_trigger_enrolment_request;
      var octetstring v_compressed_public_key;
@@ -576,23 +577,27 @@ module LibItsPki_Functions {
      utPort.clear;
      v_ut_trigger_enrolment_request := { p_canonical_id, p_enc_algorithm, p_private_key, v_compressed_public_key };
      utPort.send(UtPkiTrigger: { triggerEnrolmentRequest := v_ut_trigger_enrolment_request });
      tc_ac.start;
      tc_ac.start(20.0);
      alt {
        [] utPort.receive(UtPkiResults: { utPkiTriggerResult := true }) {
          tc_ac.stop;
        }
        [] utPort.receive(UtPkiResults: { utPkiTriggerResult := false }) {
          tc_ac.stop;
          log("*** f_sendUtTriggerEnrolmentRequestPrimitive: ERROR: Received unexpected message ***");
          log("*** f_sendUtTriggerEnrolmentRequestPrimitive: ERROR: Unsuccessful trugger result received in UT port. Stop ***");
          f_selfOrClientSyncAndVerdict("error", e_error);
        }
        [] utPort.receive {
          log("*** f_sendUtTriggerEnrolmentRequestPrimitive: INFO: Some message received in UT Port ***");
          log("*** f_sendUtTriggerEnrolmentRequestPrimitive: INFO: Unexpected message received in UT Port. Keep waiting. ***");
          repeat;
        }
        [] tc_ac.timeout {
          if(p_check_result){
            log("*** f_sendAcPkiPrimitive: ERROR: Timeout while waiting for adapter control event result ***");
            f_selfOrClientSyncAndVerdict("error", e_timeout);
          }else{  
            log("*** f_sendAcPkiPrimitive: INFO: Timeout while waiting for adapter control event result. Assume OK. ***");
          }
        }
      } // End of 'alt' statement
    } // End of function f_sendUtTriggerEnrolmentRequestPrimitive
@@ -5352,16 +5357,17 @@ module LibItsPki_Functions {

    group PredefinedRequests {

      template (present) HttpMessage mw_http_ec_request_generic := 
      template (present) HttpMessage mw_http_ec_request_generic(
                                                                template (present) Ieee1609Dot2Data p_ieee1609dot2_data := mw_enrolmentRequestMessage(mw_encryptedData())
                                                                ) := 
        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()
      )))));
                                                                                                          p_ieee1609dot2_data
                        ))));
    } // End of predefined requests

    function f_await_ec_request_send_response(