Commit ba3b34d0 authored by YannGarcia's avatar YannGarcia
Browse files

CV2X#3 Validation against PKIs (Remote)

parent ccf49d06
Loading
Loading
Loading
Loading
+202 −135
Original line number Diff line number Diff line
@@ -3341,7 +3341,7 @@ module ItsPki_TestCases {
            [] a_await_cpoc_http_request_from_iut(
                                                  mw_http_request(
                                                                  mw_http_request_get(
                                                                                      PICS_HTTP_GET_URI_ECTL
                                                                                      PICS_HTTP_GET_URI_TLM
                                                                                      )),
                                                  v_response
                                                  ) {
@@ -3637,7 +3637,7 @@ module ItsPki_TestCases {
            [] a_await_dc_http_request_from_iut(
                                                mw_http_request(
                                                                mw_http_request_get(
                                                                                    PICS_HTTP_GET_URI_CA
                                                                                    PICS_HTTP_GET_URI_DC
                                                                                    )),
                                                v_response
                                                ) {
@@ -3841,7 +3841,7 @@ module ItsPki_TestCases {
            [] a_await_cpoc_http_request_from_iut(
                                                  mw_http_request(
                                                                  mw_http_request_get(
                                                                                      PICS_HTTP_GET_URI_ECTL
                                                                                      PICS_HTTP_GET_URI_TLM
                                                                                      )),
                                                  v_response
                                                  ) {
@@ -3930,7 +3930,7 @@ module ItsPki_TestCases {
            [] a_await_cpoc_http_request_from_iut(
                                                  mw_http_request(
                                                                  mw_http_request_get(
                                                                                      PICS_HTTP_GET_URI_ECTL
                                                                                      PICS_HTTP_GET_URI_TLM
                                                                                      )),
                                                  v_response
                                                  ) {
@@ -4065,7 +4065,7 @@ module ItsPki_TestCases {
            [] a_await_dc_http_request_from_iut(
                                                mw_http_request(
                                                                mw_http_request_get(
                                                                                    PICS_HTTP_GET_URI_CA
                                                                                    PICS_HTTP_GET_URI_DC
                                                                                    )),
                                                v_response
                                                ) {
@@ -4155,7 +4155,7 @@ module ItsPki_TestCases {
            [] a_await_cpoc_http_request_from_iut(
                                                  mw_http_request(
                                                                  mw_http_request_get(
                                                                                      PICS_HTTP_GET_URI_ECTL
                                                                                      PICS_HTTP_GET_URI_TLM
                                                                                      )),
                                                  v_response
                                                  ) {
@@ -4489,7 +4489,7 @@ module ItsPki_TestCases {
            [] a_await_cpoc_http_request_from_iut(
                                                  mw_http_request(
                                                                  mw_http_request_get(
                                                                                      PICS_HTTP_GET_URI_ECTL
                                                                                      PICS_HTTP_GET_URI_TLM
                                                                                      )),
                                                  v_response
                                                  ) {
@@ -4712,7 +4712,7 @@ module ItsPki_TestCases {
            [] a_await_cpoc_http_request_from_iut(
                                                  mw_http_request(
                                                                  mw_http_request_get(
                                                                                      PICS_HTTP_GET_URI_ECTL
                                                                                      PICS_HTTP_GET_URI_TLM
                                                                                      )),
                                                  v_response
                                                  ) {
@@ -4940,7 +4940,7 @@ module ItsPki_TestCases {
            [] a_await_cpoc_http_request_from_iut(
                                                  mw_http_request(
                                                                  mw_http_request_get(
                                                                                      PICS_HTTP_GET_URI_ECTL
                                                                                      PICS_HTTP_GET_URI_TLM
                                                                                      )),
                                                  v_response
                                                  ) {
@@ -5224,7 +5224,7 @@ module ItsPki_TestCases {
            [] a_await_cpoc_http_request_from_iut(
                                                  mw_http_request(
                                                                  mw_http_request_get(
                                                                                      PICS_HTTP_GET_URI_ECTL
                                                                                      PICS_HTTP_GET_URI_TLM
                                                                                      )),
                                                  v_response
                                                  ) {
@@ -14104,129 +14104,6 @@ module ItsPki_TestCases {
      } // End of testcase TC_RCA_CTLGEN_01_BV
      /**
       * @desc Await for DC/CTL/CRL request and provides "CERT_IUT_A_RCA", "CERT_TS_A_AA", "CERT_TS_A_EA" certificates
       *       It simulates the ETSI point of certificates distribution
       *       Usage: curl 'http://192.168.1.43/ctl' --header 'Content-Type: application/x-its-ctl' --header 'Content-Text: ca_request' --output ctl.oer
       */
      testcase TC_RCA_CTLGEN_xx_BV() runs on ItsPkiHttp system ItsPkiHttpSystem {
        // Local variables
        var charstring v_rca_certificate_id := "CERT_IUT_A_RCA";
        var charstring v_aa_certificate_id := "CERT_TS_A_AA";
        var charstring v_ea_certificate_id := "CERT_TS_A_EA";
        var Oct32 v_hash;
        var Oct8 v_rca_hashed_id8;
        var HttpMessage v_request;
        var boolean v_result := false;
        var ToBeSignedRcaCtl v_ctl;
        var Headers v_headers;
        var template (value) HttpMessage v_response;
        
        // Test component configuration
        f_cfHttpUp_ca();
        
        // Test control
        if (not PICS_IUT_CA_ROLE) {
          log("*** " & testcasename() & ": PICS_IUT_CA_ROLE required for executing the TC ***");
          setverdict(inconc);
          stop;
        }
        
        // Test component configuration
        f_cfHttpUp_ca();
        // Preamble
        f_getCertificateHash256(v_rca_certificate_id, v_hash);
        v_rca_hashed_id8 := f_hashedId8FromSha256(v_hash);
        log("*** " & testcasename() & ": DEBUG: v_rca_hashed_id8= ", v_rca_hashed_id8);
        f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
        
        // Test Body
        tc_wait.start;
        alt {
          [] a_await_dc_http_request_from_iut( // Await for DC request
                                              mw_http_request(
                                                              mw_http_request_post(
                                                                                  PICS_HTTP_POST_URI_DC & "/" & oct2str(v_rca_hashed_id8)
                                                                                  )),
                                              v_request
                                              ) {
            var EtsiTs103097Certificate v_rca_certificate;
            tc_wait.stop;
            
            f_init_default_headers_list(-, "ca_response", v_headers);
            // Send message
            f_build_dc(
                        v_rca_certificate_id,
                        v_rca_certificate
                        );
            log("*** " & testcasename() & ": INFO: v_rca_certificate: ", v_rca_certificate);
            v_response := m_http_response(m_http_response_ok(m_http_message_body_binary(m_binary_body_ieee1609dot2_certificate(v_rca_certificate)), v_headers));
            f_http_send(v_headers, v_response);
            log("*** " & testcasename() & ": INFO: ToBeSignedRcaCtl sent ***");
           tc_wait.start;
            repeat;
          }
          [] a_await_dc_http_request_from_iut( // Await for CTL request
                                              mw_http_request(
                                                              mw_http_request_post(
                                                                                  PICS_HTTP_POST_URI_CTL
                                                                                  )),
                                              v_request
                                              ) {
            var Ieee1609Dot2Data v_ieee1609dot2_signed_and_encrypted_data;
            var ToBeSignedRcaCtl v_to_be_signed_rca_ctl;
            var EtsiTs102941Data v_etsi_ts_102941_data;
            var Oct16 v_request_hash;
            var Oct16 v_aes_enc_key;
            tc_wait.stop;
            
            f_init_default_headers_list(-, "ca_response", v_headers);
            
            // Send message
            f_build_ctl(
                        v_rca_certificate_id,
                        v_aa_certificate_id,
                        v_ea_certificate_id,
                        v_to_be_signed_rca_ctl
                        );
            log("*** " & testcasename() & ": INFO: v_to_be_signed_rca_ctl: ", v_to_be_signed_rca_ctl);
            f_sign_dc_ctl(v_rca_certificate_id, v_to_be_signed_rca_ctl, v_ieee1609dot2_signed_and_encrypted_data);
            log("*** " & testcasename() & ": INFO: v_to_be_signed_rca_ctl: ", v_to_be_signed_rca_ctl);
            v_response := m_http_response(m_http_response_ok(m_http_message_body_binary(m_binary_body_ieee1609dot2_data(v_ieee1609dot2_signed_and_encrypted_data)), v_headers));
            f_http_send(v_headers, v_response);
            log("*** " & testcasename() & ": INFO: ToBeSignedRcaCtl sent ***");
            tc_wait.start;
            repeat;
          }
          [] a_await_dc_http_request_from_iut( // Await for CTL request
                                              mw_http_request(
                                                              mw_http_request_post(
                                                                                  PICS_HTTP_POST_URI_CRL
                                                                                  )),
                                              v_request
                                              ) {
            tc_wait.stop;
            // TODO Process CRL request
            log("*** " & testcasename() & ": FAIL: CRL request not suppoerted yet ***");
            f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error);
           }
          [] tc_wait.timeout {
            log("*** " & testcasename() & ": PASS: Terminate Generation/Distrbution server ***");
            f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
          }
        } // End of 'alt' statement
        // Postamble
        f_cfHttpDown_ca();
      } // End of testcase TC_RCA_CTLGEN_xx_BV
    } // End of group ctl
    group crl {
@@ -14416,7 +14293,7 @@ module ItsPki_TestCases {
                    v_headers,
                    m_http_request(
                                   m_http_request_get(
                                                      PICS_HTTP_GET_URI_ECTL,
                                                      PICS_HTTP_GET_URI_TLM,
                                                      v_headers
                                                      )));
        tc_ac.start;
@@ -14533,7 +14410,7 @@ module ItsPki_TestCases {
                  v_headers,
                  m_http_request(
                                 m_http_request_get(
                                                    PICS_HTTP_GET_URI_ECTL,
                                                    PICS_HTTP_GET_URI_TLM,
                                                    v_headers
                                                    )));
      f_selfOrClientSyncAndVerdict(c_prDone, e_success);
@@ -14613,4 +14490,194 @@ module ItsPki_TestCases {
    
  }  // End of group cpoc_behavior
  group pki_platform_simu {
      /**
       * @desc Await for DC/CTL/CRL request and provides "CERT_IUT_A_RCA", "CERT_TS_A_AA", "CERT_TS_A_EA" certificates
       *       It simulates the ETSI point of certificates distribution
       *       Usage: curl 'http://192.168.1.43/ctl' --header 'Content-Type: application/x-its-ctl' --header 'Content-Text: ca_request' --output ctl.oer
       */
      testcase TC_PKI_PLTF_RCV_BV_01() runs on ItsPkiHttp system ItsPkiHttpSystem {
        // Local variables
        var charstring v_rca_certificate_id := "CERT_IUT_A_RCA";
        var charstring v_tlm_certificate_id := "CERT_IUT_A_RCA"; // TODO Need CERT_IUT_A_TLM certificate
        var charstring v_aa_certificate_id := "CERT_TS_A_AA";
        var charstring v_ea_certificate_id := "CERT_TS_A_EA";
        var Oct32 v_hash;
        var Oct8 v_rca_hashed_id8;
        var HttpMessage v_request;
        var boolean v_result := false;
        var ToBeSignedRcaCtl v_ctl;
        var Headers v_headers;
        var template (value) HttpMessage v_response;
        var Ieee1609Dot2Data v_ieee1609dot2_signed_and_encrypted_data;
        var EtsiTs102941Data v_etsi_ts_102941_data;
        var Oct16 v_request_hash;
        var Oct16 v_aes_enc_key;
        
        // Test component configuration
        f_cfHttpUp_ca();
        
        // Test control
        if (not PICS_IUT_CA_ROLE) {
          log("*** " & testcasename() & ": PICS_IUT_CA_ROLE required for executing the TC ***");
          setverdict(inconc);
          stop;
        }
        
        // Test component configuration
        f_cfHttpUp_ca();
        // Preamble
        f_getCertificateHash256(v_rca_certificate_id, v_hash);
        v_rca_hashed_id8 := f_hashedId8FromSha256(v_hash);
        log("*** " & testcasename() & ": DEBUG: v_rca_hashed_id8= ", v_rca_hashed_id8);
        f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
        
        // Test Body
        tc_wait.start;
        alt {
          [] a_await_dc_http_request_from_iut( // Await for DC request
                                              mw_http_request(
                                                              mw_http_request_get(
                                                                                  PICS_HTTP_GET_URI_DC & "/" & oct2str(v_rca_hashed_id8)
                                                                                  )),
                                              v_request
                                              ) {
            var EtsiTs103097Certificate v_rca_certificate;
            tc_wait.stop;
            
            f_init_default_headers_list(-, "ca_response", v_headers);
            // Send message
            f_build_dc(
                        v_rca_certificate_id,
                        v_rca_certificate
                        );
            log("*** " & testcasename() & ": INFO: v_rca_certificate: ", v_rca_certificate);
            v_response := m_http_response(m_http_response_ok(m_http_message_body_binary(m_binary_body_ieee1609dot2_certificate(v_rca_certificate)), v_headers));
            f_http_send(v_headers, v_response);
            log("*** " & testcasename() & ": INFO: ToBeSignedRcaCtl sent ***");
           tc_wait.start;
            repeat;
          }
          [] a_await_ctl_http_request_from_iut( // Await for CTL request
                                               mw_http_request(
                                                               mw_http_request_get(
                                                                                   PICS_HTTP_GET_URI_CTL & "/" & oct2str(v_rca_hashed_id8)
                                                                                   )),
                                               v_request
                                               ) {
            var ToBeSignedRcaCtl v_to_be_signed_rca_ctl;
            tc_wait.stop;
            
            f_init_default_headers_list(-, "ca_response", v_headers);
            
            // Send message
            f_build_ctl(
                        v_ea_certificate_id,
                        v_aa_certificate_id,
                        v_rca_certificate_id,
                        v_to_be_signed_rca_ctl
                        );
            log("*** " & testcasename() & ": INFO: v_to_be_signed_rca_ctl: ", v_to_be_signed_rca_ctl);
            f_sign_dc_ctl(v_rca_certificate_id, v_to_be_signed_rca_ctl, v_ieee1609dot2_signed_and_encrypted_data);
            log("*** " & testcasename() & ": INFO: v_ieee1609dot2_signed_and_encrypted_data: ", v_ieee1609dot2_signed_and_encrypted_data);
            v_response := m_http_response(m_http_response_ok(m_http_message_body_binary(m_binary_body_ieee1609dot2_data(v_ieee1609dot2_signed_and_encrypted_data)), v_headers));
            f_http_send(v_headers, v_response);
            log("*** " & testcasename() & ": INFO: ToBeSignedRcaCtl sent ***");
            tc_wait.start;
            repeat;
          }
          [] a_await_crl_http_request_from_iut( // Await for CTL request
                                               mw_http_request(
                                                               mw_http_request_get(
                                                                                   PICS_HTTP_GET_URI_CRL & "/" & oct2str(v_rca_hashed_id8)
                                                                                   )),
                                               v_request
                                               ) {
            var ToBeSignedCrl v_to_be_signed_crl;
            tc_wait.stop;
            
            f_init_default_headers_list(-, "ca_response", v_headers);
            
            // Send message
            f_build_crl(
                        -,
                        -,
                        v_to_be_signed_crl
                        );
            log("*** " & testcasename() & ": INFO: v_to_be_signed_crl: ", v_to_be_signed_crl);
            f_sign_dc_crl(v_rca_certificate_id, v_to_be_signed_crl, v_ieee1609dot2_signed_and_encrypted_data);
            log("*** " & testcasename() & ": INFO: v_ieee1609dot2_signed_and_encrypted_data: ", v_ieee1609dot2_signed_and_encrypted_data);
            v_response := m_http_response(m_http_response_ok(m_http_message_body_binary(m_binary_body_ieee1609dot2_data(v_ieee1609dot2_signed_and_encrypted_data)), v_headers));
            f_http_send(v_headers, v_response);
            log("*** " & testcasename() & ": INFO: ToBeSignedCRl sent ***");
            tc_wait.start;
            repeat;
          }
          [] a_await_cpoc_http_request_from_iut( // Await for TLM request (E-CPOC)
                                                mw_http_request(
                                                                mw_http_request_get(
                                                                                    PICS_HTTP_GET_URI_TLM & "/" & oct2str(v_rca_hashed_id8)
                                                                                    )),
                                                v_request
                                                ) {
            var ToBeSignedTlmCtl v_to_be_signed_tlm_ctl;
            tc_wait.stop;
            
            f_init_default_headers_list(-, "ca_response", v_headers);
            
            // Send message
            f_build_tlm(
                        v_tlm_certificate_id,
                        v_rca_certificate_id,
                        v_to_be_signed_tlm_ctl
                        );
            log("*** " & testcasename() & ": INFO: v_to_be_signed_tlm_ctl: ", v_to_be_signed_tlm_ctl);
            f_sign_dc_ctl(v_rca_certificate_id, v_to_be_signed_tlm_ctl, v_ieee1609dot2_signed_and_encrypted_data);
            log("*** " & testcasename() & ": INFO: v_ieee1609dot2_signed_and_encrypted_data: ", v_ieee1609dot2_signed_and_encrypted_data);
            v_response := m_http_response(m_http_response_ok(m_http_message_body_binary(m_binary_body_ieee1609dot2_data(v_ieee1609dot2_signed_and_encrypted_data)), v_headers));
            f_http_send(v_headers, v_response);
            log("*** " & testcasename() & ": INFO: ToBeSignedTlmCtl sent ***");
            tc_wait.start;
            repeat;
          }
          [] a_await_any_http_request_from_iut(
                                               mw_http_request,
                                               v_request
                                               ) {
            tc_wait.stop;
            
            log("*** " & testcasename() & ": INFO: Invalid request received ***"); log(v_request);
            f_init_default_headers_list(-, "ca_response", v_headers);
            f_http_send(v_headers, m_http_response(m_http_response_ko_no_body(v_headers)));
            tc_wait.start;
            repeat;
          }
          [] tc_wait.timeout {
            //log("*** " & testcasename() & ": PASS: Terminate Generation/Distrbution server ***");
            //f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
            tc_wait.start;
            repeat;
          }
        } // End of 'alt' statement
        f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
        // Postamble
        f_cfHttpDown_ca();
      } // End of testcase TC_PKI_PLTF_RCV_BV_01
  } // End of group pki_platform_simu
} // End of module ItsPki_TestCases
+6 −19
Original line number Diff line number Diff line
@@ -120,21 +120,6 @@ module LibItsPki_Pics {
   */
  modulepar charstring PICS_HEADER_HOST_TLM := "www.its.tlm.org";

  /**
   * @desc 
   */
  modulepar charstring PICS_HTTP_POST_URI_DC := "/dc";
  
  /**
   * @desc 
   */
  modulepar charstring PICS_HTTP_POST_URI_CTL := "/ctl";
  
  /**
   * @desc 
   */
  modulepar charstring PICS_HTTP_POST_URI_CRL := "/crl";
  
  /**
   * @desc Certificate used by the Test System
   */
@@ -174,22 +159,22 @@ module LibItsPki_Pics {
  /**
   * @desc HTTP GET URI for Certificate Trusted List
   */
  modulepar charstring PICS_HTTP_GET_URI_CA := "/dc/getctl";
  modulepar charstring PICS_HTTP_GET_URI_DC := "/getcacerts";

  /**
   * @desc HTTP GET URI for Certificate Trusted List
   */
  modulepar charstring PICS_HTTP_GET_URI_CTL := "/dc/getctl";
  modulepar charstring PICS_HTTP_GET_URI_CTL := "/getctl";

  /**
   * @desc HTTP GET URI for Certificate Trusted List
   */
  modulepar charstring PICS_HTTP_GET_URI_CRL := "/dc/getcrl";
  modulepar charstring PICS_HTTP_GET_URI_CRL := "/getcrl";
  
  /**
   * @desc HTTP GET URI for Certificate Trusted List
   */
  modulepar charstring PICS_HTTP_GET_URI_ECTL := "/tlm/getectl";
  modulepar charstring PICS_HTTP_GET_URI_TLM := "/getectl";
  
  /**
   * @desc Factory private key for verification Nist P256
@@ -276,6 +261,8 @@ module LibItsPki_Pics {

  modulepar charstring PICS_DC_ENDPOINT := "http://www.etsi.org"

  modulepar charstring PICS_TLM_ENDPOINT := "http://www.etsi.org"

  modulepar charstring PICS_AA_ENDPOINT := "http://www.etsi.org"

  modulepar charstring PICS_EA_ENDPOINT := "http://www.etsi.org"
+22 −12

File changed.

Preview size limit exceeded, changes collapsed.

+653 −525

File changed.

Preview size limit exceeded, changes collapsed.