Loading ttcn/AtsGenCert/ItsGenCert_Functions.ttcn +5 −4 Original line number Original line Diff line number Diff line Loading @@ -61,6 +61,7 @@ module ItsGenCert_Functions { function f_generate_certificate( function f_generate_certificate( in certificate_params p_certificate_params, in certificate_params p_certificate_params, in certificate_details p_issuer_certificate_details, inout certificate_details p_certificate_details inout certificate_details p_certificate_details ) return integer { ) return integer { var bitstring v_enc_msg; var bitstring v_enc_msg; Loading @@ -71,7 +72,7 @@ module ItsGenCert_Functions { // Sign the certificate using ECDSA/SHA-256 (NIST p-256) // Sign the certificate using ECDSA/SHA-256 (NIST p-256) if (p_certificate_params.curve == e_nist_p256) { if (p_certificate_params.curve == e_nist_p256) { v_signature := f_signWithEcdsaNistp256WithSha256(bit2oct(v_enc_msg), p_certificate_details.private_key); v_signature := f_signWithEcdsaNistp256WithSha256(bit2oct(v_enc_msg), p_issuer_certificate_details.private_key); p_certificate_details.certificate.signature_ := valueof( p_certificate_details.certificate.signature_ := valueof( m_signature_ecdsaNistP256( m_signature_ecdsaNistP256( m_ecdsaP256Signature( m_ecdsaP256Signature( Loading @@ -82,7 +83,7 @@ module ItsGenCert_Functions { ) ) )); )); } else if (p_certificate_params.curve == e_brainpool_p256) { } else if (p_certificate_params.curve == e_brainpool_p256) { v_signature := f_signWithEcdsaBrainpoolp256WithSha256(bit2oct(v_enc_msg), p_certificate_details.private_key); v_signature := f_signWithEcdsaBrainpoolp256WithSha256(bit2oct(v_enc_msg), p_issuer_certificate_details.private_key); p_certificate_details.certificate.signature_ := valueof( p_certificate_details.certificate.signature_ := valueof( m_signature_ecdsaBrainpoolP256r1( m_signature_ecdsaBrainpoolP256r1( m_ecdsaP256Signature( m_ecdsaP256Signature( Loading @@ -93,7 +94,7 @@ module ItsGenCert_Functions { ) ) )); )); } else if (p_certificate_params.curve == e_brainpool_p256) { } else if (p_certificate_params.curve == e_brainpool_p256) { v_signature := f_signWithEcdsaBrainpoolp384WithSha384(bit2oct(v_enc_msg), p_certificate_details.private_key); v_signature := f_signWithEcdsaBrainpoolp384WithSha384(bit2oct(v_enc_msg), p_issuer_certificate_details.private_key); p_certificate_details.certificate.signature_ := valueof(m_signature_ecdsaBrainpoolP384r1( p_certificate_details.certificate.signature_ := valueof(m_signature_ecdsaBrainpoolP384r1( m_ecdsaP384Signature( m_ecdsaP384Signature( m_eccP384CurvePoint_x_only( m_eccP384CurvePoint_x_only( Loading ttcn/AtsGenCert/ItsGenCert_TestCases.ttcn +16 −2 Original line number Original line Diff line number Diff line Loading @@ -30,13 +30,15 @@ module ItsGencert_TestCases { modulepar boolean PX_VALIDATE_CERTIFICATES_ONLY := false; modulepar boolean PX_VALIDATE_CERTIFICATES_ONLY := false; testcase TC_GEN_CERT() runs on TCType system TCType { testcase TC_GEN_CERT() runs on TCType system TCType { var certificate_details_list v_certificate_details_list; var certificate_details_list v_certificate_details_list := {}; var integer v_idx := 0; var integer v_idx := 0; for (var integer v_counter := 0; v_counter < lengthof(PICS_CERTFICATES); v_counter := v_counter + 1) { 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 template (value) EtsiTs103097Certificate v_certificate; var certificate_params v_certificate_params; var certificate_params v_certificate_params; var certificate_details v_issuer_certificate_details; var integer v_counter1; // Setup // Setup v_certificate_params := PICS_CERTFICATES[v_counter]; v_certificate_params := PICS_CERTFICATES[v_counter]; Loading @@ -55,7 +57,19 @@ module ItsGencert_TestCases { } } // Generate the certificate // Generate the certificate if (f_generate_certificate(v_certificate_params, v_details) == -1) { // 1. Find the issuer for (v_counter1 := 0; v_counter1 < lengthof(v_certificate_details_list); v_counter1 := v_counter1 + 1) { if (v_certificate_params.signed_by == v_certificate_details_list[v_counter1].certificate_id) { log("Issuer for ", v_certificate_params.certificate_id, " is ", v_certificate_details_list[v_counter1].certificate_id); v_issuer_certificate_details := v_certificate_details_list[v_counter1]; break; } } // End of 'for' statement if (v_counter1 == lengthof(v_certificate_details_list)) { v_issuer_certificate_details := v_details; } // 2. Generate the certificate, including the signature if (f_generate_certificate(v_certificate_params, v_issuer_certificate_details, v_details) == -1) { setverdict(fail, "Failed to generate the certificate"); setverdict(fail, "Failed to generate the certificate"); stop; stop; } } Loading ttcn/TestCodec/TestCodec_ChainOfCertificates.ttcn +0 −6 Original line number Original line Diff line number Diff line Loading @@ -295,7 +295,6 @@ module TestCodec_ChainOfCertificates { // Generate Private/Public keys // Generate Private/Public keys f_generate_key_pair_nistp256(p_ca_sec_info.private_key, p_ca_sec_info.public_key_x, p_ca_sec_info.public_key_y); f_generate_key_pair_nistp256(p_ca_sec_info.private_key, p_ca_sec_info.public_key_x, p_ca_sec_info.public_key_y); // Store Private key in binary format // Fill Certificate template with the public key // Fill Certificate template with the public key v_cert := m_etsiTs103097Certificate( v_cert := m_etsiTs103097Certificate( m_issuerIdentifier_self(v_self), m_issuerIdentifier_self(v_self), Loading Loading @@ -362,7 +361,6 @@ module TestCodec_ChainOfCertificates { // Generate Private/Public keys // Generate Private/Public keys f_generate_key_pair_brainpoolp256(p_ca_sec_info.private_key, p_ca_sec_info.public_key_x, p_ca_sec_info.public_key_y); f_generate_key_pair_brainpoolp256(p_ca_sec_info.private_key, p_ca_sec_info.public_key_x, p_ca_sec_info.public_key_y); // Store Private key in binary format // Fill Certificate template with the public key // Fill Certificate template with the public key v_cert := m_etsiTs103097Certificate( v_cert := m_etsiTs103097Certificate( m_issuerIdentifier_self(v_self), m_issuerIdentifier_self(v_self), Loading Loading @@ -425,7 +423,6 @@ module TestCodec_ChainOfCertificates { // Generate Private/Public keys // Generate Private/Public keys f_generate_key_pair_nistp256(p_aa_sec_info.private_key, p_aa_sec_info.public_key_x, p_aa_sec_info.public_key_y); f_generate_key_pair_nistp256(p_aa_sec_info.private_key, p_aa_sec_info.public_key_x, p_aa_sec_info.public_key_y); // Store Private key in binary format // Fill Certificate template with the public key // Fill Certificate template with the public key v_cert := m_etsiTs103097Certificate( v_cert := m_etsiTs103097Certificate( m_issuerIdentifier_sha256AndDigest(p_ca_sec_info.hashid8), m_issuerIdentifier_sha256AndDigest(p_ca_sec_info.hashid8), Loading Loading @@ -488,7 +485,6 @@ module TestCodec_ChainOfCertificates { // Generate Private/Public keys // Generate Private/Public keys f_generate_key_pair_brainpoolp256(p_aa_sec_info.private_key, p_aa_sec_info.public_key_x, p_aa_sec_info.public_key_y); f_generate_key_pair_brainpoolp256(p_aa_sec_info.private_key, p_aa_sec_info.public_key_x, p_aa_sec_info.public_key_y); // Store Private key in binary format // Fill Certificate template with the public key // Fill Certificate template with the public key v_cert := m_etsiTs103097Certificate( v_cert := m_etsiTs103097Certificate( m_issuerIdentifier_sha256AndDigest(p_ca_sec_info.hashid8), m_issuerIdentifier_sha256AndDigest(p_ca_sec_info.hashid8), Loading Loading @@ -551,7 +547,6 @@ module TestCodec_ChainOfCertificates { // Generate Private/Public keys // Generate Private/Public keys f_generate_key_pair_nistp256(p_at_sec_info.private_key, p_at_sec_info.public_key_x, p_at_sec_info.public_key_y); f_generate_key_pair_nistp256(p_at_sec_info.private_key, p_at_sec_info.public_key_x, p_at_sec_info.public_key_y); // Store Private key in binary format // Fill Certificate template with the public key // Fill Certificate template with the public key v_cert := m_etsiTs103097Certificate( v_cert := m_etsiTs103097Certificate( m_issuerIdentifier_sha256AndDigest(p_aa_sec_info.hashid8), m_issuerIdentifier_sha256AndDigest(p_aa_sec_info.hashid8), Loading Loading @@ -615,7 +610,6 @@ module TestCodec_ChainOfCertificates { // Generate Private/Public keys // Generate Private/Public keys f_generate_key_pair_brainpoolp256(p_at_sec_info.private_key, p_at_sec_info.public_key_x, p_at_sec_info.public_key_y); f_generate_key_pair_brainpoolp256(p_at_sec_info.private_key, p_at_sec_info.public_key_x, p_at_sec_info.public_key_y); // Store Private key in binary format // Fill Certificate template with the public key // Fill Certificate template with the public key v_cert := m_etsiTs103097Certificate( v_cert := m_etsiTs103097Certificate( m_issuerIdentifier_sha256AndDigest(p_aa_sec_info.hashid8), m_issuerIdentifier_sha256AndDigest(p_aa_sec_info.hashid8), Loading Loading
ttcn/AtsGenCert/ItsGenCert_Functions.ttcn +5 −4 Original line number Original line Diff line number Diff line Loading @@ -61,6 +61,7 @@ module ItsGenCert_Functions { function f_generate_certificate( function f_generate_certificate( in certificate_params p_certificate_params, in certificate_params p_certificate_params, in certificate_details p_issuer_certificate_details, inout certificate_details p_certificate_details inout certificate_details p_certificate_details ) return integer { ) return integer { var bitstring v_enc_msg; var bitstring v_enc_msg; Loading @@ -71,7 +72,7 @@ module ItsGenCert_Functions { // Sign the certificate using ECDSA/SHA-256 (NIST p-256) // Sign the certificate using ECDSA/SHA-256 (NIST p-256) if (p_certificate_params.curve == e_nist_p256) { if (p_certificate_params.curve == e_nist_p256) { v_signature := f_signWithEcdsaNistp256WithSha256(bit2oct(v_enc_msg), p_certificate_details.private_key); v_signature := f_signWithEcdsaNistp256WithSha256(bit2oct(v_enc_msg), p_issuer_certificate_details.private_key); p_certificate_details.certificate.signature_ := valueof( p_certificate_details.certificate.signature_ := valueof( m_signature_ecdsaNistP256( m_signature_ecdsaNistP256( m_ecdsaP256Signature( m_ecdsaP256Signature( Loading @@ -82,7 +83,7 @@ module ItsGenCert_Functions { ) ) )); )); } else if (p_certificate_params.curve == e_brainpool_p256) { } else if (p_certificate_params.curve == e_brainpool_p256) { v_signature := f_signWithEcdsaBrainpoolp256WithSha256(bit2oct(v_enc_msg), p_certificate_details.private_key); v_signature := f_signWithEcdsaBrainpoolp256WithSha256(bit2oct(v_enc_msg), p_issuer_certificate_details.private_key); p_certificate_details.certificate.signature_ := valueof( p_certificate_details.certificate.signature_ := valueof( m_signature_ecdsaBrainpoolP256r1( m_signature_ecdsaBrainpoolP256r1( m_ecdsaP256Signature( m_ecdsaP256Signature( Loading @@ -93,7 +94,7 @@ module ItsGenCert_Functions { ) ) )); )); } else if (p_certificate_params.curve == e_brainpool_p256) { } else if (p_certificate_params.curve == e_brainpool_p256) { v_signature := f_signWithEcdsaBrainpoolp384WithSha384(bit2oct(v_enc_msg), p_certificate_details.private_key); v_signature := f_signWithEcdsaBrainpoolp384WithSha384(bit2oct(v_enc_msg), p_issuer_certificate_details.private_key); p_certificate_details.certificate.signature_ := valueof(m_signature_ecdsaBrainpoolP384r1( p_certificate_details.certificate.signature_ := valueof(m_signature_ecdsaBrainpoolP384r1( m_ecdsaP384Signature( m_ecdsaP384Signature( m_eccP384CurvePoint_x_only( m_eccP384CurvePoint_x_only( Loading
ttcn/AtsGenCert/ItsGenCert_TestCases.ttcn +16 −2 Original line number Original line Diff line number Diff line Loading @@ -30,13 +30,15 @@ module ItsGencert_TestCases { modulepar boolean PX_VALIDATE_CERTIFICATES_ONLY := false; modulepar boolean PX_VALIDATE_CERTIFICATES_ONLY := false; testcase TC_GEN_CERT() runs on TCType system TCType { testcase TC_GEN_CERT() runs on TCType system TCType { var certificate_details_list v_certificate_details_list; var certificate_details_list v_certificate_details_list := {}; var integer v_idx := 0; var integer v_idx := 0; for (var integer v_counter := 0; v_counter < lengthof(PICS_CERTFICATES); v_counter := v_counter + 1) { 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 template (value) EtsiTs103097Certificate v_certificate; var certificate_params v_certificate_params; var certificate_params v_certificate_params; var certificate_details v_issuer_certificate_details; var integer v_counter1; // Setup // Setup v_certificate_params := PICS_CERTFICATES[v_counter]; v_certificate_params := PICS_CERTFICATES[v_counter]; Loading @@ -55,7 +57,19 @@ module ItsGencert_TestCases { } } // Generate the certificate // Generate the certificate if (f_generate_certificate(v_certificate_params, v_details) == -1) { // 1. Find the issuer for (v_counter1 := 0; v_counter1 < lengthof(v_certificate_details_list); v_counter1 := v_counter1 + 1) { if (v_certificate_params.signed_by == v_certificate_details_list[v_counter1].certificate_id) { log("Issuer for ", v_certificate_params.certificate_id, " is ", v_certificate_details_list[v_counter1].certificate_id); v_issuer_certificate_details := v_certificate_details_list[v_counter1]; break; } } // End of 'for' statement if (v_counter1 == lengthof(v_certificate_details_list)) { v_issuer_certificate_details := v_details; } // 2. Generate the certificate, including the signature if (f_generate_certificate(v_certificate_params, v_issuer_certificate_details, v_details) == -1) { setverdict(fail, "Failed to generate the certificate"); setverdict(fail, "Failed to generate the certificate"); stop; stop; } } Loading
ttcn/TestCodec/TestCodec_ChainOfCertificates.ttcn +0 −6 Original line number Original line Diff line number Diff line Loading @@ -295,7 +295,6 @@ module TestCodec_ChainOfCertificates { // Generate Private/Public keys // Generate Private/Public keys f_generate_key_pair_nistp256(p_ca_sec_info.private_key, p_ca_sec_info.public_key_x, p_ca_sec_info.public_key_y); f_generate_key_pair_nistp256(p_ca_sec_info.private_key, p_ca_sec_info.public_key_x, p_ca_sec_info.public_key_y); // Store Private key in binary format // Fill Certificate template with the public key // Fill Certificate template with the public key v_cert := m_etsiTs103097Certificate( v_cert := m_etsiTs103097Certificate( m_issuerIdentifier_self(v_self), m_issuerIdentifier_self(v_self), Loading Loading @@ -362,7 +361,6 @@ module TestCodec_ChainOfCertificates { // Generate Private/Public keys // Generate Private/Public keys f_generate_key_pair_brainpoolp256(p_ca_sec_info.private_key, p_ca_sec_info.public_key_x, p_ca_sec_info.public_key_y); f_generate_key_pair_brainpoolp256(p_ca_sec_info.private_key, p_ca_sec_info.public_key_x, p_ca_sec_info.public_key_y); // Store Private key in binary format // Fill Certificate template with the public key // Fill Certificate template with the public key v_cert := m_etsiTs103097Certificate( v_cert := m_etsiTs103097Certificate( m_issuerIdentifier_self(v_self), m_issuerIdentifier_self(v_self), Loading Loading @@ -425,7 +423,6 @@ module TestCodec_ChainOfCertificates { // Generate Private/Public keys // Generate Private/Public keys f_generate_key_pair_nistp256(p_aa_sec_info.private_key, p_aa_sec_info.public_key_x, p_aa_sec_info.public_key_y); f_generate_key_pair_nistp256(p_aa_sec_info.private_key, p_aa_sec_info.public_key_x, p_aa_sec_info.public_key_y); // Store Private key in binary format // Fill Certificate template with the public key // Fill Certificate template with the public key v_cert := m_etsiTs103097Certificate( v_cert := m_etsiTs103097Certificate( m_issuerIdentifier_sha256AndDigest(p_ca_sec_info.hashid8), m_issuerIdentifier_sha256AndDigest(p_ca_sec_info.hashid8), Loading Loading @@ -488,7 +485,6 @@ module TestCodec_ChainOfCertificates { // Generate Private/Public keys // Generate Private/Public keys f_generate_key_pair_brainpoolp256(p_aa_sec_info.private_key, p_aa_sec_info.public_key_x, p_aa_sec_info.public_key_y); f_generate_key_pair_brainpoolp256(p_aa_sec_info.private_key, p_aa_sec_info.public_key_x, p_aa_sec_info.public_key_y); // Store Private key in binary format // Fill Certificate template with the public key // Fill Certificate template with the public key v_cert := m_etsiTs103097Certificate( v_cert := m_etsiTs103097Certificate( m_issuerIdentifier_sha256AndDigest(p_ca_sec_info.hashid8), m_issuerIdentifier_sha256AndDigest(p_ca_sec_info.hashid8), Loading Loading @@ -551,7 +547,6 @@ module TestCodec_ChainOfCertificates { // Generate Private/Public keys // Generate Private/Public keys f_generate_key_pair_nistp256(p_at_sec_info.private_key, p_at_sec_info.public_key_x, p_at_sec_info.public_key_y); f_generate_key_pair_nistp256(p_at_sec_info.private_key, p_at_sec_info.public_key_x, p_at_sec_info.public_key_y); // Store Private key in binary format // Fill Certificate template with the public key // Fill Certificate template with the public key v_cert := m_etsiTs103097Certificate( v_cert := m_etsiTs103097Certificate( m_issuerIdentifier_sha256AndDigest(p_aa_sec_info.hashid8), m_issuerIdentifier_sha256AndDigest(p_aa_sec_info.hashid8), Loading Loading @@ -615,7 +610,6 @@ module TestCodec_ChainOfCertificates { // Generate Private/Public keys // Generate Private/Public keys f_generate_key_pair_brainpoolp256(p_at_sec_info.private_key, p_at_sec_info.public_key_x, p_at_sec_info.public_key_y); f_generate_key_pair_brainpoolp256(p_at_sec_info.private_key, p_at_sec_info.public_key_x, p_at_sec_info.public_key_y); // Store Private key in binary format // Fill Certificate template with the public key // Fill Certificate template with the public key v_cert := m_etsiTs103097Certificate( v_cert := m_etsiTs103097Certificate( m_issuerIdentifier_sha256AndDigest(p_aa_sec_info.hashid8), m_issuerIdentifier_sha256AndDigest(p_aa_sec_info.hashid8), Loading