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

Add unit tests

parent c3a580e8
......@@ -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
......
Subproject commit 866e58fea050293a73c48bd69ad1130c9ed48b4e
Subproject commit b31f565ae97899e5bf9f80e65130b0ba177fbcc4
......@@ -24,6 +24,8 @@ module TestCodec_Pki {
import from IEEE1609dot2 language "ASN.1:1997" all;
import from EtsiTs102941BaseTypes language "ASN.1:1997" all;
import from EtsiTs102941TypesEnrolment language "ASN.1:1997" all;
import from EtsiTs102941TypesAuthorization language "ASN.1:1997" all;
import from EtsiTs102941TypesAuthorizationValidation language "ASN.1:1997" all;
import from EtsiTs102941MessagesItss language "ASN.1:1997" all;
import from EtsiTs103097Module language "ASN.1:1997" all;
......@@ -141,7 +143,7 @@ module TestCodec_Pki {
}
// Generate InnerEcRequest
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) {
setverdict(fail, "Failed to generate InnerEcRequest message");
stop;
}
......@@ -245,7 +247,7 @@ module TestCodec_Pki {
LibItsPki_Functions.f_cfUp();
// Create PKI InnerEcRequest request
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) {
setverdict(fail, "Failed to setup InnerEcRequest message");
stop;
}
......@@ -571,6 +573,28 @@ module TestCodec_Pki {
} // End of testcase tc_inner_ec_response_2
testcase tc_inner_ec_functions_1() runs on TCType system TCType {
var Oct32 v_private_key;
var Oct32 v_publicKeyCompressed;
var integer v_compressedMode;
var InnerEcRequest v_inner_ec_request;
var boolean v_ret := false;
if (not(PICS_SEC_FIXED_KEYS)) {
setverdict(inconc, "Please set PICS_SEC_FIXED_KEYS to true");
stop;
}
f_loadCertificates(PX_IUT_SEC_CONFIG_NAME);
v_ret := f_generate_inner_ec_request(v_private_key, v_publicKeyCompressed, v_compressedMode, v_inner_ec_request);
if (v_ret == true) {
setverdict(pass);
} else {
setverdict(fail);
}
} // End of testcase tc_inner_ec_functions_1
testcase tc_inner_ec_functions_2() runs on TCType system TCType {
var Oct32 v_private_key;
var Oct32 v_publicKeyX;
var Oct32 v_publicKeyY;
......@@ -581,7 +605,19 @@ module TestCodec_Pki {
valueof(m_appPermissions(36, { bitmapSsp := '830001'O })),
valueof(m_appPermissions(37, { bitmapSsp := '830001'O }))
};
var template (value) EtsiTs103097Certificate v_cert;
var EtsiTs103097Certificate v_cert_ts_a_ea;
var EtsiTs103097Certificate v_cert_iut_a_ea;
var Oct32 v_private_key_cert_ts_a_ea;
var Oct32 v_private_key_cert_iut_a_ea;
var Oct32 v_private_enc_key_cert_ts_a_ea;
var Oct32 v_private_enc_key_cert_iut_a_ea;
var Oct8 v_hashed_id8_cert_ts_a_ea;
var Oct8 v_hashed_id8_cert_iut_a_ea;
var Oct32 v_whole_hash_cert_ts_a_ea;
var Oct32 v_whole_hash_cert_iut_a_ea;
var InnerEcRequest v_inner_ec_request;
var Certificate v_ec_certificate;
var boolean v_ret := false;
if (not(PICS_SEC_FIXED_KEYS)) {
......@@ -590,20 +626,40 @@ module TestCodec_Pki {
}
f_loadCertificates(PX_IUT_SEC_CONFIG_NAME);
f_readCertificate("CERT_TS_A_EA", v_cert_ts_a_ea);
f_readCertificate("CERT_IUT_A_EA", v_cert_iut_a_ea);
f_readSigningKey("CERT_TS_A_EA", v_private_key_cert_ts_a_ea);
f_readSigningKey("CERT_IUT_A_EA", v_private_key_cert_iut_a_ea);
f_readEncryptingKey("CERT_TS_A_EA", v_private_enc_key_cert_ts_a_ea);
f_readEncryptingKey("CERT_IUT_A_EA", v_private_enc_key_cert_iut_a_ea);
f_getCertificateDigest("CERT_TS_A_EA", v_hashed_id8_cert_ts_a_ea);
f_getCertificateDigest("CERT_IUT_A_EA", v_hashed_id8_cert_iut_a_ea);
f_getCertificateHash("CERT_TS_A_EA", v_whole_hash_cert_ts_a_ea);
f_getCertificateHash("CERT_IUT_A_EA", v_whole_hash_cert_iut_a_ea);
v_ret := f_generate_inner_ec_request(v_private_key, v_publicKeyX, v_publicKeyY, v_publicKeyCompressed, v_compressedMode, v_inner_ec_request);
v_ret := f_generate_inner_ec_request(v_private_key, v_publicKeyCompressed, v_compressedMode, v_inner_ec_request);
if (v_ret == true) {
setverdict(pass);
} else {
setverdict(fail);
setverdict(fail, "f_generate_inner_ec_request");
stop;
}
} // End of testcase tc_inner_ec_functions_1
v_ret := f_generate_ec_certificate(v_private_key, v_inner_ec_request, v_ec_certificate);
if (v_ret == true) {
setverdict(pass);
} else {
setverdict(fail, "f_generate_ec_certificate");
stop;
}
} // End of testcase tc_inner_ec_functions_2
testcase tc_inner_ec_functions_2() runs on TCType system TCType {
testcase tc_inner_ec_functions_3() runs on TCType system TCType {
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_publicEncKeyCompressed;
var integer v_compressedMode;
var EccP256CurvePoint v_eccPoint;
var SequenceOfPsidSsp v_appPermissions := { // ETSI TS 102 965 Table A.1: ETSI ITS standardized ITS-AIDs
......@@ -621,19 +677,11 @@ module TestCodec_Pki {
var Oct8 v_hashed_id8_cert_iut_a_ea;
var Oct32 v_whole_hash_cert_ts_a_ea;
var Oct32 v_whole_hash_cert_iut_a_ea;
var bitstring v_tbs;
var Oct32 v_sig;
var bitstring v_enc_msg;
var HashedId8 v_hashedid8_ea_certificate;
var InnerEcRequest v_inner_ec_request;
var Ieee1609Dot2Data v_ieee1609dot2_signed_and_encrypted_data;
var bitstring v_ieee1609dot2_signed_and_encrypted_data_msg;
var Ieee1609Dot2Data v_dec_ieee1609dot2_encrypted_and_signed_data;
var Ieee1609Dot2Data v_dec_ieee1609dot2_signed_data;
var bitstring v_dec_inner_ec_response_msg;
var EtsiTs102941Data v_dec_inner_ec_response;
var Certificate v_ec_certificate;
var InnerAtRequest v_inner_at_request;
var Ieee1609Dot2Data v_inner_at_request_data;
var boolean v_ret := false;
var integer v_result;
if (not(PICS_SEC_FIXED_KEYS)) {
setverdict(inconc, "Please set PICS_SEC_FIXED_KEYS to true");
......@@ -652,13 +700,106 @@ module TestCodec_Pki {
f_getCertificateHash("CERT_TS_A_EA", v_whole_hash_cert_ts_a_ea);
f_getCertificateHash("CERT_IUT_A_EA", v_whole_hash_cert_iut_a_ea);
v_ret := f_generate_inner_ec_request(v_private_key, v_publicKeyX, v_publicKeyY, v_publicKeyCompressed, v_compressedMode, v_inner_ec_request);
v_ret := f_generate_inner_ec_request(v_private_key, v_publicKeyCompressed, v_compressedMode, v_inner_ec_request);
if (v_ret == true) {
setverdict(pass);
} else {
setverdict(fail);
setverdict(fail, "f_generate_inner_ec_request");
stop;
}
} // End of testcase tc_inner_ec_functions_2
v_ret := f_generate_ec_certificate(v_private_key, v_inner_ec_request, v_ec_certificate);
if (v_ret == true) {
setverdict(pass);
} else {
setverdict(fail, "f_generate_ec_certificate");
stop;
}
v_ret := f_generate_inner_at_request(v_ec_certificate, v_private_key, v_cert_iut_a_ea, v_hashed_id8_cert_iut_a_ea, true, v_private_enc_key, v_publicEncKeyCompressed, v_compressedMode, v_inner_at_request, v_inner_at_request_data);
if (v_ret == true) {
setverdict(pass);
} else {
setverdict(fail, "f_generate_inner_at_request");
stop;
}
} // End of testcase tc_inner_ec_functions_3
testcase tc_inner_ec_functions_4() runs on TCType system TCType {
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_publicEncKeyCompressed;
var integer v_compressedMode;
var EccP256CurvePoint v_eccPoint;
var SequenceOfPsidSsp v_appPermissions := { // ETSI TS 102 965 Table A.1: ETSI ITS standardized ITS-AIDs
valueof(m_appPermissions(36, { bitmapSsp := '830001'O })),
valueof(m_appPermissions(37, { bitmapSsp := '830001'O }))
};
var template (value) EtsiTs103097Certificate v_cert;
var EtsiTs103097Certificate v_cert_ts_a_ea;
var EtsiTs103097Certificate v_cert_iut_a_ea;
var Oct32 v_private_key_cert_ts_a_ea;
var Oct32 v_private_key_cert_iut_a_ea;
var Oct32 v_private_enc_key_cert_ts_a_ea;
var Oct32 v_private_enc_key_cert_iut_a_ea;
var Oct8 v_hashed_id8_cert_ts_a_ea;
var Oct8 v_hashed_id8_cert_iut_a_ea;
var Oct32 v_whole_hash_cert_ts_a_ea;
var Oct32 v_whole_hash_cert_iut_a_ea;
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 boolean v_ret := false;
if (not(PICS_SEC_FIXED_KEYS)) {
setverdict(inconc, "Please set PICS_SEC_FIXED_KEYS to true");
stop;
}
f_loadCertificates(PX_IUT_SEC_CONFIG_NAME);
f_readCertificate("CERT_TS_A_EA", v_cert_ts_a_ea);
f_readCertificate("CERT_IUT_A_EA", v_cert_iut_a_ea);
f_readSigningKey("CERT_TS_A_EA", v_private_key_cert_ts_a_ea);
f_readSigningKey("CERT_IUT_A_EA", v_private_key_cert_iut_a_ea);
f_readEncryptingKey("CERT_TS_A_EA", v_private_enc_key_cert_ts_a_ea);
f_readEncryptingKey("CERT_IUT_A_EA", v_private_enc_key_cert_iut_a_ea);
f_getCertificateDigest("CERT_TS_A_EA", v_hashed_id8_cert_ts_a_ea);
f_getCertificateDigest("CERT_IUT_A_EA", v_hashed_id8_cert_iut_a_ea);
f_getCertificateHash("CERT_TS_A_EA", v_whole_hash_cert_ts_a_ea);
f_getCertificateHash("CERT_IUT_A_EA", v_whole_hash_cert_iut_a_ea);
v_ret := f_generate_inner_ec_request(v_private_key, v_publicKeyCompressed, v_compressedMode, v_inner_ec_request);
if (v_ret == true) {
setverdict(pass);
} else {
setverdict(fail, "f_generate_inner_ec_request");
stop;
}
v_ret := f_generate_ec_certificate(v_private_key, v_inner_ec_request, v_ec_certificate);
if (v_ret == true) {
setverdict(pass);
} else {
setverdict(fail, "f_generate_ec_certificate");
stop;
}
v_ret := f_generate_inner_at_request(v_ec_certificate, v_private_key, v_cert_iut_a_ea, v_hashed_id8_cert_iut_a_ea, true, v_private_enc_key, v_publicEncKeyCompressed, v_compressedMode, v_inner_at_request, v_inner_at_request_data);
if (v_ret == true) {
setverdict(pass);
} else {
setverdict(fail, "f_generate_inner_at_request");
stop;
}
v_ret := f_generate_authorization_validation_request(v_inner_at_request, v_ec_certificate, v_authorization_validation_request);
if (v_ret == true) {
setverdict(pass);
} else {
setverdict(fail, "f_generate_authorization_validation_request");
stop;
}
} // End of testcase tc_inner_ec_functions_4
control {
execute(tc_inner_ec_request_1());
......@@ -667,6 +808,9 @@ module TestCodec_Pki {
execute(tc_inner_ec_response_1());
execute(tc_inner_ec_response_2());
execute(tc_inner_ec_functions_1());
execute(tc_inner_ec_functions_2());
execute(tc_inner_ec_functions_3());
execute(tc_inner_ec_functions_4());
}