Commit 98c694df authored by garciay's avatar garciay
Browse files

STF545: Execute first EA tests

parent 0cd5a90b
Loading
Loading
Loading
Loading
+39 −5
Original line number Diff line number Diff line
@@ -123,7 +123,7 @@ module TestCodec_Pki {
    var InnerEcRequest v_inner_ec_request;
    var Ieee1609Dot2Data v_inner_ec_request_signed_for_pop;
    var bitstring v_inner_ec_request_signed_for_pop_msg;
    var Ieee1609Dot2Data v_dec_inner_ec_request_signed_for_pop;
    var EtsiTs102941Data v_dec_inner_ec_request_signed_for_pop;
    var InnerEcRequest v_dec_inner_ec_request;
    var bitstring v_dec_inner_ec_request_msg;
    var bitstring v_tbs;
@@ -207,7 +207,8 @@ module TestCodec_Pki {
      stop;
    }
    // Extract InnerEcRequest
    v_dec_inner_ec_request_msg := oct2bit(v_dec_inner_ec_request_signed_for_pop.content.signedData.tbsData.payload.data.content.unsecuredData);
    log("v_dec_inner_ec_request_signed_for_pop.content.enrolmentRequest= ", v_dec_inner_ec_request_signed_for_pop.content.enrolmentRequest);
    v_dec_inner_ec_request_msg := oct2bit(v_dec_inner_ec_request_signed_for_pop.content.enrolmentRequest.content.signedData.tbsData.payload.data.content.unsecuredData);
    v_result := decvalue(v_dec_inner_ec_request_msg, v_dec_inner_ec_request);
    if (v_result == 0) {
      log("Decode InnerEcRequest: ", v_dec_inner_ec_request);
@@ -369,6 +370,9 @@ module TestCodec_Pki {
    var bitstring v_ieee1609dot2_signed_and_encrypted_data_msg;
    var Ieee1609Dot2Data v_dec_ieee1609dot2_signed_and_encrypted_data;
    var Ieee1609Dot2Data v_dec_ieee1609dot2_signed_data;
    var bitstring v_dec_inner_ec_response_msg;
    var EtsiTs102941Data v_dec_inner_ec_response;

    var integer v_result;
    
    if (not(PICS_SEC_FIXED_KEYS)) {
@@ -427,7 +431,7 @@ module TestCodec_Pki {
    // Build secured PKI message
    v_enc_msg := encvalue(m_etsiTs102941Data_inner_ec_response(v_inner_ec_response));
    if (f_build_pki_secured_message(v_private_key, v_publicKeyCompressed, v_compressedMode, bit2oct(v_enc_msg), v_ieee1609dot2_signed_and_encrypted_data) == false) {
      setverdict(fail, "Failed to secure InnerEcRequest message");
      setverdict(fail, "Failed to secure InnerEcResponse message");
      stop;
    }
    // Encode it
@@ -436,7 +440,7 @@ module TestCodec_Pki {
    log("Encoded message: ", v_ieee1609dot2_signed_and_encrypted_data_msg);
    setverdict(pass, "Encoded succeed");
    
    // Decode encrypted InnerEcRequest
    // Decode encrypted InnerEcResponse
    v_result := decvalue(v_ieee1609dot2_signed_and_encrypted_data_msg, v_dec_ieee1609dot2_signed_and_encrypted_data);
    if (v_result == 0) {
      log("Decoded message: ", v_dec_ieee1609dot2_signed_and_encrypted_data);
@@ -452,10 +456,40 @@ module TestCodec_Pki {
      stop;
    }
    
    // Decrypt InnerEcRequest
    // Decrypt InnerEcResponse
    f_decrypt(v_private_key, v_dec_ieee1609dot2_signed_and_encrypted_data, v_dec_ieee1609dot2_signed_data);
    log("v_dec_ieee1609dot2_signed_data= ", v_dec_ieee1609dot2_signed_data);
    
    // Verify signature
    v_tbs := encvalue(v_dec_ieee1609dot2_signed_data.content.signedData.tbsData);
    if (fx_verifyWithEcdsaNistp256WithSha256(
                                             bit2oct(v_tbs),
                                             int2oct(0, 32),
                                             v_dec_ieee1609dot2_signed_data.content.signedData.signature_.ecdsaNistP256Signature.rSig.x_only & v_dec_ieee1609dot2_signed_data.content.signedData.signature_.ecdsaNistP256Signature.sSig,
                                             v_publicKeyCompressed,
                                             v_compressedMode) == true) {
      setverdict(pass, "Check signature succeed");
    } else {
      setverdict(fail, "Check signature failed");
      stop;
    }
    
    // Extract InnerEcResponse
    v_dec_inner_ec_response_msg := oct2bit(v_dec_ieee1609dot2_signed_data.content.signedData.tbsData.payload.data.content.unsecuredData);
    v_result := decvalue(v_dec_inner_ec_response_msg, v_dec_inner_ec_response);
    if (v_result == 0) {
      log("Decoded InnerEcResponse: ", v_dec_inner_ec_response);
      setverdict(pass, "Decoded succeed");
      if (match(v_dec_inner_ec_response.content.enrolmentResponse, v_inner_ec_response)) {
        setverdict(pass, "Decoded match succeed");
      } else {
        setverdict(fail, "Decoded match failed");
        stop;
      }
    } else {
      setverdict(fail, "Decoding failed");
      stop;
    }
  } // End of testcase tc_inner_ec_response_2
  
  control {