Loading ttcn/AtsGenCert/ItsGenCert_Functions.ttcn +170 −149 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ module ItsGenCert_Functions { in certificate_params p_certificate_params, inout certificate_details p_certificate_details ) return integer { if (p_certificate_params.curve == e_nist_p256) { f_generate_key_pair_nistp256(p_certificate_details.private_key, p_certificate_details.public_key_x, p_certificate_details.public_key_y); } else if (p_certificate_params.curve == e_brainpool_p256) { Loading Loading @@ -129,13 +128,12 @@ module ItsGenCert_Functions { inout certificate_details p_certificate_details ) return integer { // Set the issuer if (p_certificate_params.certificate_id == p_certificate_params.signed_by) { // Root certificate // Nothing to do, isuuer is already set to self } else { // Other certificate if (p_certificate_params.certificate_id != p_certificate_params.signed_by) { // Find the issuer in the list var integer v_counter; for (v_counter := 0; v_counter < lengthof(p_certificate_details_list); v_counter := v_counter + 1) { var boolean v_found := false; for (var integer v_counter := 0; v_counter < lengthof(p_certificate_details_list); v_counter := v_counter + 1) { if (p_certificate_details_list[v_counter].certificate_id == p_certificate_params.signed_by) { v_found := true; p_certificate_details.issuer := p_certificate_details_list[v_counter].hashid8; if (p_certificate_params.hash_algorithm == sha256) { p_certificate_details.certificate.issuer.sha256AndDigest := p_certificate_details_list[v_counter].hashid8; Loading @@ -145,9 +143,10 @@ module ItsGenCert_Functions { log("f_finalyse_certificate: Unsupported hash algorithm"); return -1; } break; } } // End of 'for' statement if (v_counter == lengthof(p_certificate_details_list)) { if (v_found == false) { log("f_finalyse_certificate: issuer not found"); return -1; } Loading @@ -160,10 +159,32 @@ module ItsGenCert_Functions { } else { p_certificate_details.hashid8 := f_HashedId8FromSha384(f_hashWithSha384(p_certificate_details.enc_cert)); } if (p_certificate_params.certificate_id == p_certificate_params.signed_by) { // Root certificate log("f_finalyse_certificate: Root certificate"); p_certificate_details.issuer := p_certificate_details.hashid8 } log("f_finalyse_certificate: p_certificate_details = ", p_certificate_details); return 0; } // End of function f_finalyse_certificate function f_store_certificates( in certificate_details_list p_certificate_details_list ) return integer { fx_loadCertificates(PX_CERTIFICATE_POOL_PATH, "certificates"); for (var integer v_counter := 0; v_counter < lengthof(p_certificate_details_list); v_counter := v_counter + 1) { fx_store_certificate( p_certificate_details_list[v_counter].certificate_id, p_certificate_details_list[v_counter].enc_cert, p_certificate_details_list[v_counter].private_key, p_certificate_details_list[v_counter].public_key_x, p_certificate_details_list[v_counter].public_key_y, p_certificate_details_list[v_counter].hashid8, p_certificate_details_list[v_counter].issuer); } // End of 'for' statement return 0; } // End of function f_store_certificates } // End of module ItsGenCert_Functions ttcn/AtsGenCert/ItsGenCert_TestCases.ttcn +97 −71 Original line number Diff line number Diff line Loading @@ -27,19 +27,20 @@ module ItsGencert_TestCases { import from ItsGenCert_TestSystem all; import from ItsGenCert_Pics all; testcase TC_GEN_CERT_BV() runs on TCType system TCType { testcase TC_GEN_CERT() runs on TCType system TCType { var certificate_details_list v_certificate_details_list; var integer v_idx := 0; for (var integer v_counter := 0; v_counter < lengthof(PICS_CERTFICATES); v_counter := v_counter + 1) { var certificate_details v_details := {}; var certificate_details v_details; var template (value) EtsiTs103097Certificate v_certificate; var certificate_params v_certificate_params := PICS_CERTFICATES[v_counter]; var certificate_params v_certificate_params; // Setup v_certificate_params := PICS_CERTFICATES[v_counter]; v_details := { "", {}, ''O, ''O, ''O, ''O, '0000000000000000'O, '0000000000000000'O }; v_certificate_details_list[v_idx] := v_details; v_details.certificate_id := v_certificate_params.certificate_id; log("v_certificate_details_list[", v_idx, "] = ", v_certificate_details_list[v_idx]); // Generate Private/Public keys for the certificate if (f_generate_signing_keys(v_certificate_params, v_details) == -1) { Loading @@ -58,21 +59,46 @@ module ItsGencert_TestCases { setverdict(fail, "Failed to generate the certificate"); stop; } v_certificate_details_list[v_idx] := v_details; // Fianlyse certificate if (f_finalyse_certificate(v_certificate_params, v_certificate_details_list, v_details) == -1) { setverdict(fail, "Failed to finalyse the certificate"); stop; } log("v_certificate_details_list[", v_idx, "] = ", v_certificate_details_list[v_idx]); v_idx := v_idx + 1; } // End of 'for' statement log("v_certificate_details_list = ", v_certificate_details_list); // Store them if (f_store_certificates(v_certificate_details_list) == -1) { setverdict(fail, "Failed to finalyse the certificate"); stop; } else { setverdict(pass); } } // End of testcase TC_GEN_CERT testcase TC_VALIDATE_CERT() runs on TCType system TCType { for (var integer v_counter := 0; v_counter < lengthof(PICS_CERTFICATES); v_counter := v_counter + 1) { var EtsiTs103097Certificate v_certificate; fx_loadCertificates(PX_CERTIFICATE_POOL_PATH, "certificates"); if (f_readCertificate(PICS_CERTFICATES[v_counter].certificate_id, v_certificate) == false) { setverdict(fail, "Failed to read certificate ", PICS_CERTFICATES[v_counter].certificate_id); stop; } } // End of 'for' statement setverdict(pass); } // End of testcase TC_GEN_CERT_BV } // End of testcase TC_VALIDATE_CERT control { execute(TC_GEN_CERT_BV()); execute(TC_GEN_CERT(), 1.0); execute(TC_VALIDATE_CERT(), 1.0); } // End of 'control' statement } // End of module ItsGencert_TestCases ttcn/AtsGenCert/ItsGenCert_Pics.ttcn +29 −29 File changed.Contains only whitespace changes. Show changes ttcn/AtsGenCert/ItsGenCert_Templates.ttcn +31 −31 File changed.Contains only whitespace changes. Show changes Loading
ttcn/AtsGenCert/ItsGenCert_Functions.ttcn +170 −149 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ module ItsGenCert_Functions { in certificate_params p_certificate_params, inout certificate_details p_certificate_details ) return integer { if (p_certificate_params.curve == e_nist_p256) { f_generate_key_pair_nistp256(p_certificate_details.private_key, p_certificate_details.public_key_x, p_certificate_details.public_key_y); } else if (p_certificate_params.curve == e_brainpool_p256) { Loading Loading @@ -129,13 +128,12 @@ module ItsGenCert_Functions { inout certificate_details p_certificate_details ) return integer { // Set the issuer if (p_certificate_params.certificate_id == p_certificate_params.signed_by) { // Root certificate // Nothing to do, isuuer is already set to self } else { // Other certificate if (p_certificate_params.certificate_id != p_certificate_params.signed_by) { // Find the issuer in the list var integer v_counter; for (v_counter := 0; v_counter < lengthof(p_certificate_details_list); v_counter := v_counter + 1) { var boolean v_found := false; for (var integer v_counter := 0; v_counter < lengthof(p_certificate_details_list); v_counter := v_counter + 1) { if (p_certificate_details_list[v_counter].certificate_id == p_certificate_params.signed_by) { v_found := true; p_certificate_details.issuer := p_certificate_details_list[v_counter].hashid8; if (p_certificate_params.hash_algorithm == sha256) { p_certificate_details.certificate.issuer.sha256AndDigest := p_certificate_details_list[v_counter].hashid8; Loading @@ -145,9 +143,10 @@ module ItsGenCert_Functions { log("f_finalyse_certificate: Unsupported hash algorithm"); return -1; } break; } } // End of 'for' statement if (v_counter == lengthof(p_certificate_details_list)) { if (v_found == false) { log("f_finalyse_certificate: issuer not found"); return -1; } Loading @@ -160,10 +159,32 @@ module ItsGenCert_Functions { } else { p_certificate_details.hashid8 := f_HashedId8FromSha384(f_hashWithSha384(p_certificate_details.enc_cert)); } if (p_certificate_params.certificate_id == p_certificate_params.signed_by) { // Root certificate log("f_finalyse_certificate: Root certificate"); p_certificate_details.issuer := p_certificate_details.hashid8 } log("f_finalyse_certificate: p_certificate_details = ", p_certificate_details); return 0; } // End of function f_finalyse_certificate function f_store_certificates( in certificate_details_list p_certificate_details_list ) return integer { fx_loadCertificates(PX_CERTIFICATE_POOL_PATH, "certificates"); for (var integer v_counter := 0; v_counter < lengthof(p_certificate_details_list); v_counter := v_counter + 1) { fx_store_certificate( p_certificate_details_list[v_counter].certificate_id, p_certificate_details_list[v_counter].enc_cert, p_certificate_details_list[v_counter].private_key, p_certificate_details_list[v_counter].public_key_x, p_certificate_details_list[v_counter].public_key_y, p_certificate_details_list[v_counter].hashid8, p_certificate_details_list[v_counter].issuer); } // End of 'for' statement return 0; } // End of function f_store_certificates } // End of module ItsGenCert_Functions
ttcn/AtsGenCert/ItsGenCert_TestCases.ttcn +97 −71 Original line number Diff line number Diff line Loading @@ -27,19 +27,20 @@ module ItsGencert_TestCases { import from ItsGenCert_TestSystem all; import from ItsGenCert_Pics all; testcase TC_GEN_CERT_BV() runs on TCType system TCType { testcase TC_GEN_CERT() runs on TCType system TCType { var certificate_details_list v_certificate_details_list; var integer v_idx := 0; for (var integer v_counter := 0; v_counter < lengthof(PICS_CERTFICATES); v_counter := v_counter + 1) { var certificate_details v_details := {}; var certificate_details v_details; var template (value) EtsiTs103097Certificate v_certificate; var certificate_params v_certificate_params := PICS_CERTFICATES[v_counter]; var certificate_params v_certificate_params; // Setup v_certificate_params := PICS_CERTFICATES[v_counter]; v_details := { "", {}, ''O, ''O, ''O, ''O, '0000000000000000'O, '0000000000000000'O }; v_certificate_details_list[v_idx] := v_details; v_details.certificate_id := v_certificate_params.certificate_id; log("v_certificate_details_list[", v_idx, "] = ", v_certificate_details_list[v_idx]); // Generate Private/Public keys for the certificate if (f_generate_signing_keys(v_certificate_params, v_details) == -1) { Loading @@ -58,21 +59,46 @@ module ItsGencert_TestCases { setverdict(fail, "Failed to generate the certificate"); stop; } v_certificate_details_list[v_idx] := v_details; // Fianlyse certificate if (f_finalyse_certificate(v_certificate_params, v_certificate_details_list, v_details) == -1) { setverdict(fail, "Failed to finalyse the certificate"); stop; } log("v_certificate_details_list[", v_idx, "] = ", v_certificate_details_list[v_idx]); v_idx := v_idx + 1; } // End of 'for' statement log("v_certificate_details_list = ", v_certificate_details_list); // Store them if (f_store_certificates(v_certificate_details_list) == -1) { setverdict(fail, "Failed to finalyse the certificate"); stop; } else { setverdict(pass); } } // End of testcase TC_GEN_CERT testcase TC_VALIDATE_CERT() runs on TCType system TCType { for (var integer v_counter := 0; v_counter < lengthof(PICS_CERTFICATES); v_counter := v_counter + 1) { var EtsiTs103097Certificate v_certificate; fx_loadCertificates(PX_CERTIFICATE_POOL_PATH, "certificates"); if (f_readCertificate(PICS_CERTFICATES[v_counter].certificate_id, v_certificate) == false) { setverdict(fail, "Failed to read certificate ", PICS_CERTFICATES[v_counter].certificate_id); stop; } } // End of 'for' statement setverdict(pass); } // End of testcase TC_GEN_CERT_BV } // End of testcase TC_VALIDATE_CERT control { execute(TC_GEN_CERT_BV()); execute(TC_GEN_CERT(), 1.0); execute(TC_VALIDATE_CERT(), 1.0); } // End of 'control' statement } // End of module ItsGencert_TestCases
ttcn/AtsGenCert/ItsGenCert_Pics.ttcn +29 −29 File changed.Contains only whitespace changes. Show changes
ttcn/AtsGenCert/ItsGenCert_Templates.ttcn +31 −31 File changed.Contains only whitespace changes. Show changes