Commit 09a70883 authored by garciay's avatar garciay
Browse files

STF538: Finalise certificates generation ATS

parent 1f9880f9
Loading
Loading
Loading
Loading
+5 −4
Original line number Original line Diff line number Diff line
@@ -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;
@@ -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(
@@ -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(
@@ -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(
+16 −2
Original line number Original line Diff line number Diff line
@@ -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];
@@ -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;
      }
      }
+0 −6
Original line number Original line Diff line number Diff line
@@ -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),
@@ -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),
@@ -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),
@@ -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),
@@ -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),
@@ -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),