Newer
Older
mw_binary_body_ieee1609dot2_data(
mw_enrolmentResponseMessage(
mw_encryptedData(
-,
mw_SymmetricCiphertext_aes128ccm
))))))) -> value v_response {
v_t.stop;
log("f_trigger_authorization_request_await_response: v_response=", v_response);
if (f_verify_pki_response_message(v_private_key_at, v_aes_sym_key, v_authentication_vector, v_request_hash, v_response.response.body.binary_body.ieee1609dot2_data, false, -, v_etsi_ts_102941_data) == false) {
log("f_trigger_authorization_request_await_response: Failed to verify PKI message");
log("f_trigger_authorization_request_await_response: v_etsi_ts_102941_data=", v_etsi_ts_102941_data);
// Verify the received AT certificate
log(match(v_etsi_ts_102941_data.content, mw_authorizationResponse(mw_innerAtResponse_ok(substr(v_request_hash, 0, 16), mw_etsiTs103097Certificate(-, mw_toBeSignedCertificate_at, -))))); // TODO In TITAN, this is the only way to get the unmatching in log
if (match(v_etsi_ts_102941_data.content, mw_authorizationResponse(mw_innerAtResponse_ok(substr(v_request_hash, 0, 16), mw_etsiTs103097Certificate(-, mw_toBeSignedCertificate_at, -)))) == true) {
var InnerAtResponse v_inner_at_response := v_etsi_ts_102941_data.content.authorizationResponse;
var AtData v_at_data;
log("f_trigger_enrolment_request_await_response: p_inner_at_response= ", v_inner_at_response);
// Send the new certificate for storing
v_at_data.private_key := v_private_key_at;
v_at_data.aes_sym_key := v_aes_sym_key;
v_at_data.certificate := v_inner_at_response.certificate;
log("f_trigger_enrolment_request_await_response: send v_at_data=", v_at_data);
resultPort.send(v_at_data);
// TODO Provide the new certificate to the Test System
// TODO Start CAM emission
log("f_trigger_authorization_request_await_response: Cannot verify AT certificate signature ***");
log("*** " & testcasename() & ": INCONC: Expected message not received ***");
}
} // End of 'alt' statement
log("<<< f_trigger_authorization_request_await_response");
} // End of module ItsRSUsSimulator_Functions