Commit 32aba41f authored by garciay's avatar garciay
Browse files

Bug fixed in scripts

parent db1d6a2d
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -311,8 +311,8 @@ system.utPort.params := "UT_GN/UDP(dst_ip=192.168.56.1,dst_port=12346,src_ip=192
#TestCodec_SecuredMessages.tc_secured_message_signed_and_encrypted_1
#TestCodec_SecuredMessages.tc_secured_message_signed_and_encrypted_2
# Chain of certificates
TestCodec_ChainOfCertificates.tc_full_check_certificate_1
TestCodec_ChainOfCertificates.tc_full_check_certificate_2
#TestCodec_ChainOfCertificates.tc_full_check_certificate_1
#TestCodec_ChainOfCertificates.tc_full_check_certificate_2
# Encryption
#TestCodec_SignedAndEncryptedMessages.tc_test_hmac_sha256_test1
#TestCodec_SignedAndEncryptedMessages.tc_test_hmac_sha256_test2
@@ -325,6 +325,10 @@ TestCodec_ChainOfCertificates.tc_full_check_certificate_2
#TestCodec_SignedAndEncryptedMessages.tc_decrypted_signed_message_3
#TestCodec_SignedAndEncryptedMessages.tc_decrypted_signed_message_4
#TestCodec_SignedAndEncryptedMessages.tc_decrypted_signed_message_5
# Pki
TestCodec_Pki.tc_inner_ec_request_1
TestCodec_Pki.tc_inner_ec_request_2
TestCodec_Pki.tc_inner_ec_response_1

[MAIN_CONTROLLER]
# The options herein control the behavior of MC.
+91 −49
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ module TestCodec_Pki {
  import from LibCommon_VerdictControl all;
  import from LibCommon_Sync all;
  import from LibCommon_BasicTypesAndValues all;
  import from LibCommon_DataStrings all;
  
  // LibIts
  import from IEEE1609dot2BaseTypes language "ASN.1:1997" all;
@@ -43,19 +44,31 @@ module TestCodec_Pki {
  import from LibItsSecurity_Functions all;
  
  // LibItsPki
  import from LibItsPki_EncdecDeclarations all;
  import from LibItsPki_Templates all;
  
  // TestCodec
  import from TestCodec_TestAndSystem all;
  
  testcase tc_inner_ec_request_1() runs on TCType system TCType {
    var bitstring v_encMsg;
    var integer v_res := 0;
    var bitstring v_expEncMsg := oct2bit('340010'O);
    var EtsiTs103097Certificate v_certificate;
    var InnerEcRequest v_innerEcRequest;
    var InnerEcRequest v_exp_innerEcReq;
    var bitstring v_exp_enc_msg := oct2bit('0004544F444F010080823C5C40E2D3117A493E97ECA2EA7AE164A2E3EBC856EEC760428442076370ED837C831A5617008422388301018000FA60010380012481040301FFFF80012581050401FFFFFF8002008D81020100'O);
    var bitstring v_enc_msg := oct2bit('80030080db4f29fdf09200d2708300000000001a5617008422388301018000fa60010380012481040301ffff80012581050401ffffff80018d810201008080823c5c40e2d3117a493e97eca2ea7ae164a2e3ebc856eec760428442076370ed83808051aae5e5db859816de75db80112fba869e2704829b912d1be3b082f2e531c061c5699757849f335c816ddda1742e3e6c0c2a0930146d1e0697bf035b14655afd'O); // CERT_IUT_E_AT.oer
    var Oct32 v_private_key := '9e85f9242800761c6ee2889bb7bbad8942927caad8519729f8475ee50302e7f7'O; // CERT_IUT_E_AT.vkey

    f_readCertificate("CERT_IUT_F_AT", v_certificate);
    // Decode certificate
    v_res := decvalue(v_enc_msg, v_certificate);
    if (v_res == 0) {
      log("Decoded message: ", v_certificate);
      setverdict(pass, "Decoded succeed");
    } else {
      setverdict(fail, "Decoding failed");
    }

    // Create InnerEcRequest request
    v_innerEcRequest := valueof(m_innerEcRequest(
                                                 "TODO",
                                                 m_publicKeys(
@@ -68,51 +81,34 @@ module TestCodec_Pki {
                                                                                v_certificate.toBeSigned.region,
                                                                                v_certificate.toBeSigned.assuranceLevel
                                                 )));
    // Encode template
    // Encode InnerEcRequest template
    log("Encode template ", v_innerEcRequest);
    v_encMsg := encvalue(v_innerEcRequest);
    log("Encoded message:  ", bit2oct(v_encMsg));
    v_enc_msg := encvalue(v_innerEcRequest);
    log("Encoded message:  ", bit2oct(v_enc_msg));
    // Check result
    if (not isbound(v_encMsg)) {
      setverdict(fail, "Encoding failed!");
    if (not isbound(v_enc_msg)) {
      setverdict(fail, "Encoding InnerEcRequest failed!");
      stop;
    }
    if (not match(v_encMsg, v_expEncMsg)) {
      log("Expected message: ", bit2oct(valueof(v_expEncMsg)));
      setverdict(fail, "Encoding failed, not the expected result!");
    if (not match(v_enc_msg, v_exp_enc_msg)) {
      log("Expected message: ", bit2oct(valueof(v_exp_enc_msg)));
      setverdict(fail, "Encoding InnerEcRequest failed, not the expected result!");
      stop;
    }
    setverdict(pass, "Encoding passed.");
  } // End of testcase tc_inner_ec_request_1
  
  testcase tc_inner_ec_response_1() runs on TCType system TCType {
    var bitstring v_encMsg;
    var integer v_res := 0;
    var bitstring v_expEncMsg := oct2bit('340010'O);
    var EtsiTs103097Certificate v_certificate;
    var InnerEcResponse v_innerEcResponse;
    
    f_readCertificate("CERT_IUT_F_AT", v_certificate);
    v_innerEcResponse := valueof(m_innerEcResponse_ok(
                                                      int2oct(10, 16),
                                                      v_certificate
                                                   ));
    // Encode template
    log("Encode template ", v_innerEcResponse);
    v_encMsg := encvalue(v_innerEcResponse);
    log("Encoded message:  ", bit2oct(v_encMsg));
    // Check result
    if (not isbound(v_encMsg)) {
      setverdict(fail, "Encoding failed!");
      stop;
    }
    if (not match(v_encMsg, v_expEncMsg)) {
      log("Expected message: ", bit2oct(valueof(v_expEncMsg)));
    v_res := decvalue(v_exp_enc_msg, v_exp_innerEcReq);
    if (v_res == 0) {
      log("Decoded message: ", v_certificate);
      setverdict(pass, "Decoded succeed");
      if (not match(v_innerEcRequest, v_exp_innerEcReq)) {
        log("Expected message: ", bit2oct(valueof(v_exp_enc_msg)));
        setverdict(fail, "Encoding failed, not the expected result!");
        stop;
      }
    } else {
      setverdict(fail, "Decoding failed");
    }
    setverdict(pass, "Encoding passed.");
  } // End of testcase tc_inner_ec_response_1
  } // End of testcase tc_inner_ec_request_1
  
  testcase tc_inner_ec_request_2() runs on TCType system TCType {
    var template (value) EtsiTs103097Data v_signed_data;
@@ -121,9 +117,9 @@ module TestCodec_Pki {
    var EtsiTs103097Data v_encrypted_data_dec;
    var EtsiTs103097Certificate v_certificate;
    var InnerEcRequest v_innerEcRequest;
    var bitstring v_encMsg;
    var bitstring v_enc_msg;
    var integer v_res := 0;
    var bitstring v_expEncMsg := oct2bit('340010'O);
    var bitstring v_exp_enc_msg := oct2bit('340010'O);
    var octetstring v_raw_payload_to_be_signed;
    var HashedId8 v_digest := '0000000000000000'O;
    var HashedId8 v_encrypted_hashedId8 := '0000000000000000'O;
@@ -171,9 +167,9 @@ module TestCodec_Pki {
                                              );
      
    log("v_signed_data = ", v_signed_data);
    v_encMsg := encvalue(valueof(v_signed_data));
    v_enc_msg := encvalue(valueof(v_signed_data));
    setverdict(pass, "Encoding passed.");
    if (decvalue(v_encMsg, v_signed_data_dec) != 0) {
    if (decvalue(v_enc_msg, v_signed_data_dec) != 0) {
      setverdict(fail);
      stop;
    } else if (not(match(valueof(v_signed_data), v_signed_data_dec))) {
@@ -203,14 +199,14 @@ module TestCodec_Pki {
                                                                     m_SymmetricCiphertext_aes128ccm(
                                                                                                     m_aesCcmCiphertext(
                                                                                                                        '0102030405060708090a0b0c'O,
                                                                                                                        bit2oct(v_encMsg)
                                                                                                                        bit2oct(v_enc_msg)
                                                                                                     )
                                                                                                    )
                                                                    )
                                                    );
  v_encMsg := encvalue(valueof(v_encrypted_data));
  v_enc_msg := encvalue(valueof(v_encrypted_data));
    setverdict(pass, "Encoding passed.");
    if (decvalue(v_encMsg, v_encrypted_data_dec) != 0) {
    if (decvalue(v_enc_msg, v_encrypted_data_dec) != 0) {
      setverdict(fail);
      stop;
    } else if (not(match(valueof(v_encrypted_data), v_encrypted_data_dec))) {
@@ -220,4 +216,50 @@ module TestCodec_Pki {
    setverdict(pass, "Decoding passed.");
  } // End of testcase tc_inner_ec_request_2
  
  testcase tc_inner_ec_response_1() runs on TCType system TCType {
    var integer v_res := 0;
    var EtsiTs103097Certificate v_certificate;
    var InnerEcResponse v_innerEcResponse;
    var bitstring v_exp_enc_msg := oct2bit('400000000000000000000000000000000A0080030080DB4F29FDF09200D2708300000000001A5617008422388301018000FA60010380012481040301FFFF80012581050401FFFFFF8002008D810201008080823C5C40E2D3117A493E97ECA2EA7AE164A2E3EBC856EEC760428442076370ED83808051AAE5E5DB859816DE75DB80112FBA869E2704829B912D1BE3B082F2E531C061C5699757849F335C816DDDA1742E3E6C0C2A0930146D1E0697BF035B14655AFD'O);
    var bitstring v_enc_msg := oct2bit('80030080db4f29fdf09200d2708300000000001a5617008422388301018000fa60010380012481040301ffff80012581050401ffffff80018d810201008080823c5c40e2d3117a493e97eca2ea7ae164a2e3ebc856eec760428442076370ed83808051aae5e5db859816de75db80112fba869e2704829b912d1be3b082f2e531c061c5699757849f335c816ddda1742e3e6c0c2a0930146d1e0697bf035b14655afd'O); // CERT_IUT_E_AT.oer
    var Oct32 v_private_key := '9e85f9242800761c6ee2889bb7bbad8942927caad8519729f8475ee50302e7f7'O; // CERT_IUT_E_AT.vkey
    
    // Decode certificate
    v_res := decvalue(v_enc_msg, v_certificate);
    if (v_res == 0) {
      log("Decoded message: ", v_certificate);
      setverdict(pass, "Decoded succeed");
    } else {
      setverdict(fail, "Decoding failed");
    }

    // Create InnerEcResponse request
    v_innerEcResponse := valueof(m_innerEcResponse_ok(
                                                      int2oct(10, 16),
                                                      v_certificate
                                                   ));
    // Encode InnerEcResponse template
    log("Encode template ", v_innerEcResponse);
    v_enc_msg := encvalue(v_innerEcResponse);
    log("Encoded message:  ", bit2oct(v_enc_msg));
    // Check result
    if (not isbound(v_enc_msg)) {
      setverdict(fail, "Encoding failed!");
      stop;
    }

    if (not match(v_enc_msg, v_exp_enc_msg)) {
      log("Expected message: ", bit2oct(valueof(v_exp_enc_msg)));
      setverdict(fail, "Encoding failed, not the expected result!");
      stop;
    }
    setverdict(pass, "Encoding passed.");
  } // End of testcase tc_inner_ec_response_1
  
  control {
    execute(tc_inner_ec_request_1());
    execute(tc_inner_ec_request_2());
    execute(tc_inner_ec_response_1());
  }
  
} // End of module TestCodec_Pki