Loading ItsPki_TestCases.ttcn +16 −16 Original line number Diff line number Diff line Loading @@ -5209,7 +5209,7 @@ module ItsPki_TestCases { * @reference ETSI TS 103 097 [2], clause 6 * IEEE Std 1609.2 [3], clause 6.4.3 */ testcase TC_SECPKI_CA_CERTGEN_01_BV() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_01_BV() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -5281,7 +5281,7 @@ module ItsPki_TestCases { * @reference ETSI TS 103 097 [2], clause 6 * IEEE Std 1609.2 [3], clause 6.4.3 */ testcase TC_SECPKI_CA_CERTGEN_02_BV_01() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_02_BV_01() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -5353,7 +5353,7 @@ module ItsPki_TestCases { * @reference ETSI TS 103 097 [2], clause 6 * IEEE Std 1609.2 [3], clause 6.4.3 */ testcase TC_SECPKI_CA_CERTGEN_02_BV_02() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_02_BV_02() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -6117,7 +6117,7 @@ module ItsPki_TestCases { * @see ETSI TS 103 525-2 v1.1.4 SECPKI_CA_CERTGEN_10_BV * @reference IEEE Std 1609.2 [3], clause 6.3.29, 6.3.30, 6.3.31 */ testcase TC_SECPKI_CA_CERTGEN_10_BV() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_10_BV() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -6185,7 +6185,7 @@ module ItsPki_TestCases { * @see ETSI TS 103 525-2 v1.1.4 SECPKI_CA_CERTGEN_11_BV * @reference IEEE Std 1609.2 [3], clause 6.3.38 */ testcase TC_SECPKI_CA_CERTGEN_11_BV() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_11_BV() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -6254,7 +6254,7 @@ module ItsPki_TestCases { * @see ETSI TS 103 525-2 v1.1.4 SECPKI_CA_CERTGEN_12_BV * @reference IEEE Std 1609.2 [3], clause 6.3.38 */ testcase TC_SECPKI_CA_CERTGEN_12_BV() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_12_BV() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -6331,7 +6331,7 @@ module ItsPki_TestCases { * @see ETSI TS 103 525-2 v1.1.4 SECPKI_CA_CERTGEN_13_BV_01 * @reference ETSI TS 103 097 [1], clause 6 */ testcase TC_SECPKI_CA_CERTGEN_13_BV_01() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_13_BV_01() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -6408,7 +6408,7 @@ module ItsPki_TestCases { * @see ETSI TS 103 525-2 v1.1.4 SECPKI_CA_CERTGEN_13_BV_02 * @reference ETSI TS 103 097 [1], clause 6 */ testcase TC_SECPKI_CA_CERTGEN_13_BV_02() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_13_BV_02() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -6477,7 +6477,7 @@ module ItsPki_TestCases { * @see ETSI TS 103 525-2 v1.1.4 SECPKI_CA_CERTGEN_14_BV * @reference ETSI TS 103 097 [1], clauses 6.4.28, 5.1.2.4 */ testcase TC_SECPKI_CA_CERTGEN_14_BV() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_14_BV() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -6563,7 +6563,7 @@ module ItsPki_TestCases { * @see ETSI TS 103 525-2 v1.1.4 SECPKI_CA_CERTGEN_15_BV * @reference ETSI TS 103 097 [1], clauses 6.4.28, 5.1.2.4 */ testcase TC_SECPKI_CA_CERTGEN_15_BV() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_15_BV() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -6640,7 +6640,7 @@ module ItsPki_TestCases { * @see ETSI TS 103 525-2 v1.1.4 SECPKI_CA_CERTGEN_16_BV * @reference ETSI TS 103 097 [1], clauses 6.4.28, 5.1.2.4 */ testcase TC_SECPKI_CA_CERTGEN_16_BV() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_16_BV() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -6730,7 +6730,7 @@ module ItsPki_TestCases { * @see ETSI TS 103 525-2 v1.1.4 SECPKI_CA_CERTGEN_17_BV * @reference ETSI TS 103 097 [1], clauses 6.4.28, 5.1.2.4 */ testcase TC_SECPKI_CA_CERTGEN_17_BV() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_17_BV() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -6811,7 +6811,7 @@ module ItsPki_TestCases { * @see ETSI TS 103 525-2 v1.1.4 SECPKI_CA_CERTGEN_18_BV * @reference ETSI TS 103 097 [1], clauses 6.4.28, 5.1.2.4 */ testcase TC_SECPKI_CA_CERTGEN_18_BV() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_18_BV() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -10699,9 +10699,9 @@ module ItsPki_TestCases { } // End of group authorization_validation_response group ca_ceetificate_request { group ca_certificate_request { // TODO } // End of group ca_ceetificate_request } // End of group ca_certificate_request } // End of group ea_behavior Loading Loading @@ -13551,7 +13551,7 @@ module ItsPki_TestCases { mw_toBeSignedData( mw_signedDataPayload ), mw_signerIdentifier_digest ? ))))))) -> value v_response { var ToBeSignedRcaCtl v_to_be_signed_rca_ctl; lib/LibItsPki_Pics.ttcn +5 −5 Original line number Diff line number Diff line Loading @@ -184,12 +184,12 @@ module LibItsPki_Pics { /** * @desc Factory private key for verification Nist P256 */ modulepar octetstring PICS_ITS_S_SIGN_NITSP256_PRIVATE_KEY := '5C25F97607DFC62972A147FAD8B7A7C939569F0F95ECD4C641724A68B51836E5'O; modulepar octetstring PICS_ITS_S_SIGN_NITSP256_PRIVATE_KEY := 'FE95786F01D7E1666CCDFAB7BAEE9BF9B30BBEA15A838A58994E65E684A8BB34'O; /** * @desc Factory compressed public key for verification Nist P256 */ modulepar octetstring PICS_ITS_S_SIGN_NISTP256_PUBLIC_KEY := '020144E5174B0AFDA86BDB8B643B68D40030F5BDB9A9F090C64852CC3C20C9D5AD'O; modulepar octetstring PICS_ITS_S_SIGN_NISTP256_PUBLIC_KEY := '038038f5490cd5a58ff5465d3b577ee830047336ac5dac07036b798aaecae7273f'O; /** * @desc Factory private key for encryption Nist P256 Loading Loading @@ -247,12 +247,12 @@ module LibItsPki_Pics { modulepar octetstring PICS_INVALID_ITS_S_CANONICAL_ID := '455453492D4954532D30303145454545'O; /** * @desc Set to true if the IUT support CertificateId shall be set to the choice name * @desc Set to true if the IUT support CertificateId shall be set to the choice name, false if it shall be omitted * @see ETSI TS 103 097 Clause 7.2.2 Enrolment credential */ modulepar boolean PICS_EC_SUBJECT_ATTRIBUT_ID := false; modulepar boolean PICS_EC_SUBJECT_ATTRIBUT_ID := true; modulepar boolean PICS_SEC_IMPLICIT_CERTIFICATES := false; modulepar boolean PICS_SEC_IMPLICIT_CERTIFICATES := true; modulepar boolean PICS_SEC_EXPLICIT_CERTIFICATES := true; Loading asn1 @ 70b74d38 Compare 39a50de3 to 70b74d38 Original line number Diff line number Diff line Subproject commit 39a50de38ac029c554bb832609d1a3f128279bc4 Subproject commit 70b74d3806cd2b26ef294763e4610807b4e1d591 lib_system/LibItsPki_Functions.ttcn +57 −20 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ module LibItsPki_Functions { import from LibItsHttp_BinaryTemplates all; import from LibItsHttp_Functions all; import from LibItsHttp_TestSystem all; import from LibItsHttp_Pics all; // LibItsPki import from LibItsPki_TypesAndValues all; Loading Loading @@ -3305,13 +3306,24 @@ module LibItsPki_Functions { // 1. Verify signature log("f_verify_rca_ctl_response_message: p_etsi_ts_103097_signed_data.content.signedData.tbsData= ", p_etsi_ts_103097_signed_data.content.signedData.tbsData); v_tbs := encvalue(p_etsi_ts_103097_signed_data.content.signedData.tbsData); if (ispresent(p_etsi_ts_103097_signed_data.content.signedData.signer.digest)) { if (f_getCertificateFromDigest(p_etsi_ts_103097_signed_data.content.signedData.signer.digest, v_certificate, v_certificate_id) == false) { log("f_verify_rca_ctl_response_message: Failed to retrieve certificate from ", p_etsi_ts_103097_signed_data.content.signedData.signer.digest); if (p_check_security == true) { return false; } } log("===========================", v_certificate); f_getCertificateHash(v_certificate_id, v_issuer); } else { v_certificate := p_etsi_ts_103097_signed_data.content.signedData.signer.certificate[0]; log("+++++++++++++++++++++++++++", v_certificate); if (ispresent(v_certificate.issuer.sha256AndDigest)) { v_issuer := v_certificate.issuer.sha256AndDigest; } else { v_issuer := v_certificate.issuer.sha384AndDigest; } } if (f_verifyEcdsa(bit2oct(v_tbs), v_issuer, p_etsi_ts_103097_signed_data.content.signedData.signature_, v_certificate.toBeSigned.verifyKeyIndicator.verificationKey) == false) { log("f_verify_rca_ctl_response_message: Failed to verify signature"); if (p_check_security == true) { Loading Loading @@ -3552,34 +3564,59 @@ module LibItsPki_Functions { * @param p_certificate The root certificate * @return 0 on success, -1 otherwise */ external function fx_get_root_ca_certificate( in charstring p_iut_certificate := "CERT_IUT_A_RCA",//"CERT_IUT_A_CA", in boolean p_explicit_type := false, out octetstring p_certificate ) return integer; function f_get_root_ca_certificate( in charstring p_iut_certificate := "CERT_IUT_A_CA", in boolean p_explicit_type := false, out Certificate p_certificate ) return integer { ) runs on ItsPkiHttp return integer { var Headers v_headers; var HttpMessage v_response; var octetstring v_os; var bitstring v_msg_bit; log(">>> f_get_root_ca_certificate"); // Get root certificate if (fx_get_root_ca_certificate(p_iut_certificate, p_explicit_type, v_os) != 0) { log("f_get_root_ca_certificate: fail to get certificate"); return -1; f_cfHttpUp_ca(); f_init_default_headers_list(PICS_HEADER_CTL_CONTENT_TYPE, "ca_request", v_headers); // Test Body f_http_send( v_headers, m_http_request( m_http_request_get( PICS_HTTP_GET_URI_CA, v_headers ))); tc_ac.start; alt { [not(PICS_MULTIPLE_END_POINT)] httpPort.receive( mw_http_response( mw_http_response_ok( mw_http_message_body_binary( mw_binary_body_ieee1609dot2_certificate )))) -> value v_response { tc_ac.stop; } log("f_get_root_ca_certificate: v_os=", v_os); // Decode it v_msg_bit := oct2bit(v_os); if (decvalue(v_msg_bit, p_certificate) != 0) { log("f_get_root_ca_certificate: fail to decode certificate"); [PICS_MULTIPLE_END_POINT] httpCaPort.receive( mw_http_response( mw_http_response_ok( mw_http_message_body_binary( mw_binary_body_ieee1609dot2_certificate )))) -> value v_response { tc_ac.stop; } [] tc_ac.timeout { } } // End of 'alt' statement f_cfHttpDown_ca(); if (not(isvalue(v_response))) { log("f_get_root_ca_certificate: fail to get certificate"); return -1; } log("v_response.response.body.binary_body.ieee1609dot2_certificate: ", v_response.response.body.binary_body.ieee1609dot2_certificate); p_certificate := v_response.response.body.binary_body.ieee1609dot2_certificate; log("<<< f_get_root_ca_certificate: ", p_certificate); return 0; } Loading module.mk +1 −0 Original line number Diff line number Diff line Loading @@ -40,5 +40,6 @@ modules := lib \ /ccsrc/Protocols/Http \ /ccsrc/Protocols/Security \ /ccsrc/Protocols/Pki \ /ccsrc/Protocols/Tcp \ ../modules/titan.TestPorts.Common_Components.Abstract_Socket \ Loading
ItsPki_TestCases.ttcn +16 −16 Original line number Diff line number Diff line Loading @@ -5209,7 +5209,7 @@ module ItsPki_TestCases { * @reference ETSI TS 103 097 [2], clause 6 * IEEE Std 1609.2 [3], clause 6.4.3 */ testcase TC_SECPKI_CA_CERTGEN_01_BV() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_01_BV() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -5281,7 +5281,7 @@ module ItsPki_TestCases { * @reference ETSI TS 103 097 [2], clause 6 * IEEE Std 1609.2 [3], clause 6.4.3 */ testcase TC_SECPKI_CA_CERTGEN_02_BV_01() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_02_BV_01() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -5353,7 +5353,7 @@ module ItsPki_TestCases { * @reference ETSI TS 103 097 [2], clause 6 * IEEE Std 1609.2 [3], clause 6.4.3 */ testcase TC_SECPKI_CA_CERTGEN_02_BV_02() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_02_BV_02() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -6117,7 +6117,7 @@ module ItsPki_TestCases { * @see ETSI TS 103 525-2 v1.1.4 SECPKI_CA_CERTGEN_10_BV * @reference IEEE Std 1609.2 [3], clause 6.3.29, 6.3.30, 6.3.31 */ testcase TC_SECPKI_CA_CERTGEN_10_BV() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_10_BV() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -6185,7 +6185,7 @@ module ItsPki_TestCases { * @see ETSI TS 103 525-2 v1.1.4 SECPKI_CA_CERTGEN_11_BV * @reference IEEE Std 1609.2 [3], clause 6.3.38 */ testcase TC_SECPKI_CA_CERTGEN_11_BV() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_11_BV() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -6254,7 +6254,7 @@ module ItsPki_TestCases { * @see ETSI TS 103 525-2 v1.1.4 SECPKI_CA_CERTGEN_12_BV * @reference IEEE Std 1609.2 [3], clause 6.3.38 */ testcase TC_SECPKI_CA_CERTGEN_12_BV() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_12_BV() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -6331,7 +6331,7 @@ module ItsPki_TestCases { * @see ETSI TS 103 525-2 v1.1.4 SECPKI_CA_CERTGEN_13_BV_01 * @reference ETSI TS 103 097 [1], clause 6 */ testcase TC_SECPKI_CA_CERTGEN_13_BV_01() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_13_BV_01() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -6408,7 +6408,7 @@ module ItsPki_TestCases { * @see ETSI TS 103 525-2 v1.1.4 SECPKI_CA_CERTGEN_13_BV_02 * @reference ETSI TS 103 097 [1], clause 6 */ testcase TC_SECPKI_CA_CERTGEN_13_BV_02() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_13_BV_02() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -6477,7 +6477,7 @@ module ItsPki_TestCases { * @see ETSI TS 103 525-2 v1.1.4 SECPKI_CA_CERTGEN_14_BV * @reference ETSI TS 103 097 [1], clauses 6.4.28, 5.1.2.4 */ testcase TC_SECPKI_CA_CERTGEN_14_BV() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_14_BV() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -6563,7 +6563,7 @@ module ItsPki_TestCases { * @see ETSI TS 103 525-2 v1.1.4 SECPKI_CA_CERTGEN_15_BV * @reference ETSI TS 103 097 [1], clauses 6.4.28, 5.1.2.4 */ testcase TC_SECPKI_CA_CERTGEN_15_BV() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_15_BV() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -6640,7 +6640,7 @@ module ItsPki_TestCases { * @see ETSI TS 103 525-2 v1.1.4 SECPKI_CA_CERTGEN_16_BV * @reference ETSI TS 103 097 [1], clauses 6.4.28, 5.1.2.4 */ testcase TC_SECPKI_CA_CERTGEN_16_BV() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_16_BV() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -6730,7 +6730,7 @@ module ItsPki_TestCases { * @see ETSI TS 103 525-2 v1.1.4 SECPKI_CA_CERTGEN_17_BV * @reference ETSI TS 103 097 [1], clauses 6.4.28, 5.1.2.4 */ testcase TC_SECPKI_CA_CERTGEN_17_BV() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_17_BV() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -6811,7 +6811,7 @@ module ItsPki_TestCases { * @see ETSI TS 103 525-2 v1.1.4 SECPKI_CA_CERTGEN_18_BV * @reference ETSI TS 103 097 [1], clauses 6.4.28, 5.1.2.4 */ testcase TC_SECPKI_CA_CERTGEN_18_BV() runs on ItsMtc system ItsPkiHttpSystem { testcase TC_SECPKI_CA_CERTGEN_18_BV() runs on ItsPkiHttp system ItsPkiHttpSystem { // Local variables var integer v_result; var Certificate v_root_certificate; Loading Loading @@ -10699,9 +10699,9 @@ module ItsPki_TestCases { } // End of group authorization_validation_response group ca_ceetificate_request { group ca_certificate_request { // TODO } // End of group ca_ceetificate_request } // End of group ca_certificate_request } // End of group ea_behavior Loading Loading @@ -13551,7 +13551,7 @@ module ItsPki_TestCases { mw_toBeSignedData( mw_signedDataPayload ), mw_signerIdentifier_digest ? ))))))) -> value v_response { var ToBeSignedRcaCtl v_to_be_signed_rca_ctl;
lib/LibItsPki_Pics.ttcn +5 −5 Original line number Diff line number Diff line Loading @@ -184,12 +184,12 @@ module LibItsPki_Pics { /** * @desc Factory private key for verification Nist P256 */ modulepar octetstring PICS_ITS_S_SIGN_NITSP256_PRIVATE_KEY := '5C25F97607DFC62972A147FAD8B7A7C939569F0F95ECD4C641724A68B51836E5'O; modulepar octetstring PICS_ITS_S_SIGN_NITSP256_PRIVATE_KEY := 'FE95786F01D7E1666CCDFAB7BAEE9BF9B30BBEA15A838A58994E65E684A8BB34'O; /** * @desc Factory compressed public key for verification Nist P256 */ modulepar octetstring PICS_ITS_S_SIGN_NISTP256_PUBLIC_KEY := '020144E5174B0AFDA86BDB8B643B68D40030F5BDB9A9F090C64852CC3C20C9D5AD'O; modulepar octetstring PICS_ITS_S_SIGN_NISTP256_PUBLIC_KEY := '038038f5490cd5a58ff5465d3b577ee830047336ac5dac07036b798aaecae7273f'O; /** * @desc Factory private key for encryption Nist P256 Loading Loading @@ -247,12 +247,12 @@ module LibItsPki_Pics { modulepar octetstring PICS_INVALID_ITS_S_CANONICAL_ID := '455453492D4954532D30303145454545'O; /** * @desc Set to true if the IUT support CertificateId shall be set to the choice name * @desc Set to true if the IUT support CertificateId shall be set to the choice name, false if it shall be omitted * @see ETSI TS 103 097 Clause 7.2.2 Enrolment credential */ modulepar boolean PICS_EC_SUBJECT_ATTRIBUT_ID := false; modulepar boolean PICS_EC_SUBJECT_ATTRIBUT_ID := true; modulepar boolean PICS_SEC_IMPLICIT_CERTIFICATES := false; modulepar boolean PICS_SEC_IMPLICIT_CERTIFICATES := true; modulepar boolean PICS_SEC_EXPLICIT_CERTIFICATES := true; Loading
asn1 @ 70b74d38 Compare 39a50de3 to 70b74d38 Original line number Diff line number Diff line Subproject commit 39a50de38ac029c554bb832609d1a3f128279bc4 Subproject commit 70b74d3806cd2b26ef294763e4610807b4e1d591
lib_system/LibItsPki_Functions.ttcn +57 −20 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ module LibItsPki_Functions { import from LibItsHttp_BinaryTemplates all; import from LibItsHttp_Functions all; import from LibItsHttp_TestSystem all; import from LibItsHttp_Pics all; // LibItsPki import from LibItsPki_TypesAndValues all; Loading Loading @@ -3305,13 +3306,24 @@ module LibItsPki_Functions { // 1. Verify signature log("f_verify_rca_ctl_response_message: p_etsi_ts_103097_signed_data.content.signedData.tbsData= ", p_etsi_ts_103097_signed_data.content.signedData.tbsData); v_tbs := encvalue(p_etsi_ts_103097_signed_data.content.signedData.tbsData); if (ispresent(p_etsi_ts_103097_signed_data.content.signedData.signer.digest)) { if (f_getCertificateFromDigest(p_etsi_ts_103097_signed_data.content.signedData.signer.digest, v_certificate, v_certificate_id) == false) { log("f_verify_rca_ctl_response_message: Failed to retrieve certificate from ", p_etsi_ts_103097_signed_data.content.signedData.signer.digest); if (p_check_security == true) { return false; } } log("===========================", v_certificate); f_getCertificateHash(v_certificate_id, v_issuer); } else { v_certificate := p_etsi_ts_103097_signed_data.content.signedData.signer.certificate[0]; log("+++++++++++++++++++++++++++", v_certificate); if (ispresent(v_certificate.issuer.sha256AndDigest)) { v_issuer := v_certificate.issuer.sha256AndDigest; } else { v_issuer := v_certificate.issuer.sha384AndDigest; } } if (f_verifyEcdsa(bit2oct(v_tbs), v_issuer, p_etsi_ts_103097_signed_data.content.signedData.signature_, v_certificate.toBeSigned.verifyKeyIndicator.verificationKey) == false) { log("f_verify_rca_ctl_response_message: Failed to verify signature"); if (p_check_security == true) { Loading Loading @@ -3552,34 +3564,59 @@ module LibItsPki_Functions { * @param p_certificate The root certificate * @return 0 on success, -1 otherwise */ external function fx_get_root_ca_certificate( in charstring p_iut_certificate := "CERT_IUT_A_RCA",//"CERT_IUT_A_CA", in boolean p_explicit_type := false, out octetstring p_certificate ) return integer; function f_get_root_ca_certificate( in charstring p_iut_certificate := "CERT_IUT_A_CA", in boolean p_explicit_type := false, out Certificate p_certificate ) return integer { ) runs on ItsPkiHttp return integer { var Headers v_headers; var HttpMessage v_response; var octetstring v_os; var bitstring v_msg_bit; log(">>> f_get_root_ca_certificate"); // Get root certificate if (fx_get_root_ca_certificate(p_iut_certificate, p_explicit_type, v_os) != 0) { log("f_get_root_ca_certificate: fail to get certificate"); return -1; f_cfHttpUp_ca(); f_init_default_headers_list(PICS_HEADER_CTL_CONTENT_TYPE, "ca_request", v_headers); // Test Body f_http_send( v_headers, m_http_request( m_http_request_get( PICS_HTTP_GET_URI_CA, v_headers ))); tc_ac.start; alt { [not(PICS_MULTIPLE_END_POINT)] httpPort.receive( mw_http_response( mw_http_response_ok( mw_http_message_body_binary( mw_binary_body_ieee1609dot2_certificate )))) -> value v_response { tc_ac.stop; } log("f_get_root_ca_certificate: v_os=", v_os); // Decode it v_msg_bit := oct2bit(v_os); if (decvalue(v_msg_bit, p_certificate) != 0) { log("f_get_root_ca_certificate: fail to decode certificate"); [PICS_MULTIPLE_END_POINT] httpCaPort.receive( mw_http_response( mw_http_response_ok( mw_http_message_body_binary( mw_binary_body_ieee1609dot2_certificate )))) -> value v_response { tc_ac.stop; } [] tc_ac.timeout { } } // End of 'alt' statement f_cfHttpDown_ca(); if (not(isvalue(v_response))) { log("f_get_root_ca_certificate: fail to get certificate"); return -1; } log("v_response.response.body.binary_body.ieee1609dot2_certificate: ", v_response.response.body.binary_body.ieee1609dot2_certificate); p_certificate := v_response.response.body.binary_body.ieee1609dot2_certificate; log("<<< f_get_root_ca_certificate: ", p_certificate); return 0; } Loading
module.mk +1 −0 Original line number Diff line number Diff line Loading @@ -40,5 +40,6 @@ modules := lib \ /ccsrc/Protocols/Http \ /ccsrc/Protocols/Security \ /ccsrc/Protocols/Pki \ /ccsrc/Protocols/Tcp \ ../modules/titan.TestPorts.Common_Components.Abstract_Socket \