Commit c30d2e87 authored by Yann Garcia's avatar Yann Garcia
Browse files

Add unit tests

parent c3a580e8
Loading
Loading
Loading
Loading
+133 −41
Original line number Diff line number Diff line
@@ -613,8 +613,6 @@ module ItsPki_TestCases {
      testcase TC_SEC_PKI_SND_EA_BV_01() runs on ItsPki system ItsPkiSystem {
        // Local variables
        var Oct32 v_private_key;
        var Oct32 v_publicKeyX;
        var Oct32 v_publicKeyY;
        var Oct32 v_publicKeyCompressed;
        var integer v_compressedMode;
        var InnerEcRequest v_inner_ec_request;
@@ -632,12 +630,12 @@ module ItsPki_TestCases {
        // Test adapter configuration
        
        // Preamble
        if (f_generate_inner_ec_request(v_private_key, v_publicKeyX, v_publicKeyY, v_publicKeyCompressed, v_compressedMode, v_inner_ec_request) == false) {
        if (f_generate_inner_ec_request(v_private_key, v_publicKeyCompressed, v_compressedMode, v_inner_ec_request) == false) {
          log("*** " & testcasename() & ": FAIL: Failed to setup InnerEcRequest message ***")
          f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_error);
          stop;
        }
        f_sendAcPkiPrimitive(v_private_key, v_publicKeyCompressed, v_compressedMode);
        f_sendAcPkiPrimitive(PICS_TS_EA_CERTIFICATE_ID, v_private_key, v_publicKeyCompressed, v_compressedMode);
        f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
        
        // Test Body
@@ -695,8 +693,6 @@ module ItsPki_TestCases {
      testcase TC_SEC_PKI_SND_EA_BV_02() runs on ItsPkiHttp system ItsPkiHttpSystem {
        // Local variables
        var Oct32 v_private_key;
        var Oct32 v_publicKeyX;
        var Oct32 v_publicKeyY;
        var Oct32 v_publicKeyCompressed;
        var integer v_compressedMode;
        var Oct32 v_hash_inner_ec_request_signed_for_pop;
@@ -718,7 +714,7 @@ module ItsPki_TestCases {
        // Test adapter configuration
        
        // Preamble
        f_http_build_enrolment_request(v_private_key, v_publicKeyX, v_publicKeyY, v_publicKeyCompressed, v_compressedMode, v_ieee1609dot2_signed_and_encrypted_data, v_hash_inner_ec_request_signed_for_pop);
        f_http_build_inner_ec_request(v_private_key, v_publicKeyCompressed, v_compressedMode, v_ieee1609dot2_signed_and_encrypted_data, v_hash_inner_ec_request_signed_for_pop);
        f_init_default_headers_list(v_headers);
        f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
        
@@ -803,8 +799,6 @@ module ItsPki_TestCases {
      testcase TC_SEC_PKI_SND_EA_BV_03() runs on ItsPkiHttp system ItsPkiHttpSystem {
        // Local variables
        var Oct32 v_private_key;
        var Oct32 v_publicKeyX;
        var Oct32 v_publicKeyY;
        var Oct32 v_publicKeyCompressed;
        var integer v_compressedMode;
        var Oct32 v_hash_inner_ec_request_signed_for_pop;
@@ -826,7 +820,7 @@ module ItsPki_TestCases {
        // Test adapter configuration
        
        // Preamble
        f_http_build_enrolment_request(v_private_key, v_publicKeyX, v_publicKeyY, v_publicKeyCompressed, v_compressedMode, v_ieee1609dot2_signed_and_encrypted_data, v_hash_inner_ec_request_signed_for_pop);
        f_http_build_inner_ec_request(v_private_key, v_publicKeyCompressed, v_compressedMode, v_ieee1609dot2_signed_and_encrypted_data, v_hash_inner_ec_request_signed_for_pop);
        f_init_default_headers_list(v_headers);
        httpPort.send(
                      m_http_request(
@@ -916,8 +910,6 @@ module ItsPki_TestCases {
      testcase TC_SEC_PKI_SND_EA_BV_04() runs on ItsPkiHttp system ItsPkiHttpSystem {
        // Local variables
        var Oct32 v_private_key;
        var Oct32 v_publicKeyX;
        var Oct32 v_publicKeyY;
        var Oct32 v_publicKeyCompressed;
        var integer v_compressedMode;
        var Oct32 v_hash_inner_ec_request_signed_for_pop;
@@ -939,7 +931,7 @@ module ItsPki_TestCases {
        // Test adapter configuration
        
        // Preamble
        f_http_build_enrolment_request(v_private_key, v_publicKeyX, v_publicKeyY, v_publicKeyCompressed, v_compressedMode, v_ieee1609dot2_signed_and_encrypted_data, v_hash_inner_ec_request_signed_for_pop);
        f_http_build_inner_ec_request(v_private_key, v_publicKeyCompressed, v_compressedMode, v_ieee1609dot2_signed_and_encrypted_data, v_hash_inner_ec_request_signed_for_pop);
        f_init_default_headers_list(v_headers);
        httpPort.send(
                      m_http_request(
@@ -1026,8 +1018,6 @@ module ItsPki_TestCases {
      testcase TC_SEC_PKI_SND_EA_BV_05() runs on ItsPkiHttp system ItsPkiHttpSystem {
        // Local variables
        var Oct32 v_private_key;
        var Oct32 v_publicKeyX;
        var Oct32 v_publicKeyY;
        var Oct32 v_publicKeyCompressed;
        var integer v_compressedMode;
        var Oct32 v_hash_inner_ec_request_signed_for_pop;
@@ -1049,7 +1039,7 @@ module ItsPki_TestCases {
        // Test adapter configuration
        
        // Preamble
        f_http_build_enrolment_request(v_private_key, v_publicKeyX, v_publicKeyY, v_publicKeyCompressed, v_compressedMode, v_ieee1609dot2_signed_and_encrypted_data, v_hash_inner_ec_request_signed_for_pop);
        f_http_build_inner_ec_request(v_private_key, v_publicKeyCompressed, v_compressedMode, v_ieee1609dot2_signed_and_encrypted_data, v_hash_inner_ec_request_signed_for_pop);
        f_init_default_headers_list(v_headers);
        httpPort.send(
                      m_http_request(
@@ -1135,8 +1125,6 @@ module ItsPki_TestCases {
      testcase TC_SEC_PKI_SND_EA_BV_06() runs on ItsPkiHttp system ItsPkiHttpSystem {
        // Local variables
        var Oct32 v_private_key;
        var Oct32 v_publicKeyX;
        var Oct32 v_publicKeyY;
        var Oct32 v_publicKeyCompressed;
        var integer v_compressedMode;
        var Oct32 v_hash_inner_ec_request_signed_for_pop;
@@ -1158,7 +1146,7 @@ module ItsPki_TestCases {
        // Test adapter configuration
        
        // Preamble
        f_http_build_enrolment_request(v_private_key, v_publicKeyX, v_publicKeyY, v_publicKeyCompressed, v_compressedMode, v_ieee1609dot2_signed_and_encrypted_data, v_hash_inner_ec_request_signed_for_pop);
        f_http_build_inner_ec_request(v_private_key, v_publicKeyCompressed, v_compressedMode, v_ieee1609dot2_signed_and_encrypted_data, v_hash_inner_ec_request_signed_for_pop);
        f_init_default_headers_list(v_headers);
        httpPort.send(
                      m_http_request(
@@ -1244,8 +1232,6 @@ module ItsPki_TestCases {
      testcase TC_SEC_PKI_SND_EA_BV_07() runs on ItsPkiHttp system ItsPkiHttpSystem {
        // Local variables
        var Oct32 v_private_key;
        var Oct32 v_publicKeyX;
        var Oct32 v_publicKeyY;
        var Oct32 v_publicKeyCompressed;
        var integer v_compressedMode;
        var Oct32 v_hash_inner_ec_request_signed_for_pop;
@@ -1267,7 +1253,7 @@ module ItsPki_TestCases {
        // Test adapter configuration
        
        // Preamble
        f_http_build_enrolment_request(v_private_key, v_publicKeyX, v_publicKeyY, v_publicKeyCompressed, v_compressedMode, v_ieee1609dot2_signed_and_encrypted_data, v_hash_inner_ec_request_signed_for_pop);
        f_http_build_inner_ec_request(v_private_key, v_publicKeyCompressed, v_compressedMode, v_ieee1609dot2_signed_and_encrypted_data, v_hash_inner_ec_request_signed_for_pop);
        f_init_default_headers_list(v_headers);
        httpPort.send(
                      m_http_request(
@@ -1349,8 +1335,6 @@ module ItsPki_TestCases {
      testcase TC_SEC_PKI_SND_EA_BV_08() runs on ItsPkiHttp system ItsPkiHttpSystem {
        // Local variables
        var Oct32 v_private_key;
        var Oct32 v_publicKeyX;
        var Oct32 v_publicKeyY;
        var Oct32 v_publicKeyCompressed;
        var integer v_compressedMode;
        var Oct32 v_hash_inner_ec_request_signed_for_pop;
@@ -1372,7 +1356,7 @@ module ItsPki_TestCases {
        // Test adapter configuration
        
        // Preamble
        f_http_build_enrolment_request(v_private_key, v_publicKeyX, v_publicKeyY, v_publicKeyCompressed, v_compressedMode, v_ieee1609dot2_signed_and_encrypted_data, v_hash_inner_ec_request_signed_for_pop);
        f_http_build_inner_ec_request(v_private_key, v_publicKeyCompressed, v_compressedMode, v_ieee1609dot2_signed_and_encrypted_data, v_hash_inner_ec_request_signed_for_pop);
        f_init_default_headers_list(v_headers);
        httpPort.send(
                      m_http_request(
@@ -1452,8 +1436,6 @@ module ItsPki_TestCases {
      testcase TC_SEC_PKI_SND_EA_BV_09() runs on ItsPkiHttp system ItsPkiHttpSystem {
        // Local variables
        var Oct32 v_private_key;
        var Oct32 v_publicKeyX;
        var Oct32 v_publicKeyY;
        var Oct32 v_publicKeyCompressed;
        var integer v_compressedMode;
        var Oct32 v_hash_inner_ec_request_signed_for_pop;
@@ -1475,7 +1457,7 @@ module ItsPki_TestCases {
        // Test adapter configuration
        
        // Preamble
        f_http_build_enrolment_request(v_private_key, v_publicKeyX, v_publicKeyY, v_publicKeyCompressed, v_compressedMode, v_ieee1609dot2_signed_and_encrypted_data, v_hash_inner_ec_request_signed_for_pop);
        f_http_build_inner_ec_request(v_private_key, v_publicKeyCompressed, v_compressedMode, v_ieee1609dot2_signed_and_encrypted_data, v_hash_inner_ec_request_signed_for_pop);
        f_init_default_headers_list(v_headers);
        httpPort.send(
                      m_http_request(
@@ -1555,8 +1537,6 @@ module ItsPki_TestCases {
      testcase TC_SEC_PKI_SND_EA_BV_10() runs on ItsPkiHttp system ItsPkiHttpSystem {
        // Local variables
        var Oct32 v_private_key;
        var Oct32 v_publicKeyX;
        var Oct32 v_publicKeyY;
        var Oct32 v_publicKeyCompressed;
        var integer v_compressedMode;
        var Oct32 v_hash_inner_ec_request_signed_for_pop;
@@ -1578,7 +1558,7 @@ module ItsPki_TestCases {
        // Test adapter configuration
        
        // Preamble
        f_http_build_invalid_enrolment_request(v_private_key, v_publicKeyX, v_publicKeyY, v_publicKeyCompressed, v_compressedMode, v_ieee1609dot2_signed_and_encrypted_data, v_hash_inner_ec_request_signed_for_pop);
        f_http_build_invalid_enrolment_request(v_private_key, v_publicKeyCompressed, v_compressedMode, v_ieee1609dot2_signed_and_encrypted_data, v_hash_inner_ec_request_signed_for_pop);
        f_init_default_headers_list(v_headers);
        httpPort.send(
                      m_http_request(
@@ -1662,12 +1642,8 @@ module ItsPki_TestCases {
      testcase TC_SEC_PKI_SND_EA_BV_11() runs on ItsPki system ItsPkiSystem {
        // Local variables
        var Oct32 v_private_key;
        var Oct32 v_publicKeyX;
        var Oct32 v_publicKeyY;
        var Oct32 v_publicKeyCompressed;
        var Oct32 v_private_enc_key;
        var Oct32 v_publicEncKeyX;
        var Oct32 v_publicEncKeyY;
        var Oct32 v_publicEncKeyCompressed;
        var integer v_compressedMode;
        var InnerEcRequest v_inner_ec_request;
@@ -1689,18 +1665,19 @@ module ItsPki_TestCases {
        // Test adapter configuration
        
        // Preamble
        f_generate_inner_ec_request(v_private_key, v_publicKeyX, v_publicKeyY, v_publicKeyCompressed, v_compressedMode, v_inner_ec_request);
        /*if (f_generate_inner_ec_request(v_private_key, v_publicKeyX, v_publicKeyY, v_publicKeyCompressed, v_compressedMode, v_inner_ec_request) == false) {
        // Prepare AuthorizationValidationRequest message
        // TODO Regroup all into f_generate_authorization_validation_request
        if (f_generate_inner_ec_request(v_private_key, v_publicKeyCompressed, v_compressedMode, v_inner_ec_request) == false) {
          log("*** " & testcasename() & ": FAIL: Failed to setup InnerEcRequest message ***")
          f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_error);
          stop;
          }*/
        }
        if (f_generate_ec_certificate(v_private_key, v_inner_ec_request, v_ec_certificate) == false) {
          log("*** " & testcasename() & ": FAIL: Failed to generate EC certificate ***")
          f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_error);
          stop;
        }
        if (f_generate_inner_at_request(v_ec_certificate, v_private_key, vc_eaCertificate, vc_eaHashedId8, true, v_private_enc_key, v_publicEncKeyX, v_publicEncKeyY, v_publicEncKeyCompressed, v_compressedMode, v_inner_at_request, v_inner_at_request_data) == false) {
        if (f_generate_inner_at_request(v_ec_certificate, v_private_key, vc_eaCertificate, vc_eaHashedId8, true, v_private_enc_key, v_publicEncKeyCompressed, v_compressedMode, v_inner_at_request, v_inner_at_request_data) == false) {
          log("*** " & testcasename() & ": FAIL: Failed to setup InnerAtRequest message ***")
          f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_error);
          stop;
@@ -1710,7 +1687,7 @@ module ItsPki_TestCases {
          f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_error);
          stop;
        }
        f_sendAcPkiPrimitive(v_private_key, v_publicKeyCompressed, v_compressedMode);
        f_sendAcPkiPrimitive(PICS_TS_AA_CERTIFICATE_ID, v_private_key, v_publicKeyCompressed, v_compressedMode);
        f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
        
        // Test Body
@@ -1735,6 +1712,121 @@ module ItsPki_TestCases {
        
      } // End of testcase TC_SEC_PKI_SND_EA_BV_11
      
      /**
       * @desc The AuthorizationValidationResponse message shall be sent by the EA to the AA across the interface 
       *       at reference point S4 in response to a received AuthorizationValidationRequest message
       * <pre>
       * Pics Selection: 
       * Initial conditions: 
       *     with {
       *         the IUT being in the "operational state"
       *     }
       * Expected behaviour:
       *     ensure that {
       *         when {
       *            the IUT receives a AuthorizationValidationRequest  message
       *         }
       *         then {
       *            the IUT sends a AuthorizationValidationResponse message
       *                across the reference point S4 to the AA
       *         }
       *     }
       * </pre>
       * 
       * @see       ETSI TS ITS-00546v006 TP AuthValRes_1_EA
       * @reference ETSI TS 102 941, clause 6.2.3.4
       */
      testcase TC_SEC_PKI_SND_EA_BV_12() runs on ItsPkiHttp system ItsPkiHttpSystem {
        // Local variables
        var Oct32 v_private_key;
        var Oct32 v_publicKeyCompressed;
        var Oct32 v_private_enc_key;
        var Oct32 v_publicEncKeyCompressed;
        var integer v_compressedMode;
        var InnerEcRequest v_inner_ec_request;
        var Certificate v_ec_certificate;
        var InnerAtRequest v_inner_at_request;
        var Ieee1609Dot2Data v_inner_at_request_data;
        var AuthorizationValidationRequest v_authorization_validation_request;
        var HeaderLines v_headers;
        var HttpMessage v_response;
        var Ieee1609Dot2Data v_ieee1609dot2_signed_and_encrypted_data;
        var EtsiTs102941Data v_etsi_ts_102941_data;
        
        // Test control
        if (not PICS_IUT_EA_ROLE) {
          log("*** " & testcasename() & ": PICS_IUT_EA_ROLE required for executing the TC ***");
          setverdict(inconc);
          stop;
        }
        
        // Test component configuration
        f_cfHttpUp(); // Default value: CERT_TS_A_EA
        
        // Test adapter configuration
        
        // Preamble
        if (f_generate_inner_ec_request(v_private_key, v_publicKeyCompressed, v_compressedMode, v_inner_ec_request) == false) {
          log("*** " & testcasename() & ": FAIL: Failed to setup InnerEcRequest message ***")
          f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_error);
          stop;
        }
        if (f_generate_ec_certificate(v_private_key, v_inner_ec_request, v_ec_certificate) == false) {
          log("*** " & testcasename() & ": FAIL: Failed to generate EC certificate ***")
          f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_error);
          stop;
        }
        if (f_generate_inner_at_request(v_ec_certificate, v_private_key, vc_eaCertificate, vc_eaHashedId8, true, v_private_enc_key, v_publicEncKeyCompressed, v_compressedMode, v_inner_at_request, v_inner_at_request_data) == false) {
          log("*** " & testcasename() & ": FAIL: Failed to setup InnerAtRequest message ***")
          f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_error);
          stop;
        }
        if (f_generate_authorization_validation_request(v_inner_at_request, v_ec_certificate, v_authorization_validation_request) == false) {
          log("*** " & testcasename() & ": FAIL: Failed to setup AuthorisationValidationRequest message ***")
          f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_error);
          stop;
        }
        f_http_build_authorization_validation_request(v_private_key, v_publicKeyCompressed, v_compressedMode, v_ieee1609dot2_signed_and_encrypted_data);
        f_init_default_headers_list(v_headers);
        httpPort.send(
                      m_http_request(
                                     m_http_request_get(
                                                        PICS_HTTP_GET_URI,
                                                        v_headers,
                                                        m_http_message_body_binary(
                                                                                   m_binary_body_ieee1609dot2_data(
                                                                                                                   v_ieee1609dot2_signed_and_encrypted_data
                                                                                                                   )))));
        f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
        
        // Test Body
        tc_ac.start;
        alt {
          [] httpPort.receive(
                              mw_http_response(
                                               mw_http_response_ok(
                                                                   mw_http_message_body_binary(
                                                                                               mw_binary_body_ieee1609dot2_data(
                                                                                                                                mw_authorizationValidationResponseMessage(
                                                                                                                                                                         mw_encryptedData(
                                                                                                                                                                                          -,
                                                                                                                                                                                          mw_SymmetricCiphertext_aes128ccm
                                                                                                                                                                                          ))))))) -> value v_response {
            tc_ac.stop;
            log("*** " & testcasename() & ": PASS: AuthorizationValidationResponse received ***");
            f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
          }
          [] tc_ac.timeout {
            log("*** " & testcasename() & ": INCONC: Expected message not received ***");
            f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout);
          }
        } // End of 'alt' statement
        
        // Postamble
        f_cfHttpDown();
        
      } // End of testcase TC_SEC_PKI_SND_EA_BV_12
      
    } // End of group authorization_vaidation_response
    
  } // End of group ea_behavior
Compare 866e58fe to b31f565a
Original line number Diff line number Diff line
Subproject commit 866e58fea050293a73c48bd69ad1130c9ed48b4e
Subproject commit b31f565ae97899e5bf9f80e65130b0ba177fbcc4
+164 −20

File changed.

Preview size limit exceeded, changes collapsed.