Commit d0757f86 authored by garciay's avatar garciay
Browse files

STF538: Start Encryption TPs implementation

        Start Certificate generation script
parent f3846dfb
Loading
Loading
Loading
Loading
+91 −40
Original line number Diff line number Diff line
@@ -25,13 +25,24 @@ module ItsGenCert_Functions {
      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) {
      f_generate_key_pair_brainpoolp256(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) {
    } else if (p_certificate_params.curve == e_brainpool_p384) {
      f_generate_key_pair_brainpoolp384(p_certificate_details.private_key, p_certificate_details.public_key_x, p_certificate_details.public_key_y);
    } else {
      log("f_generate_signing_keys: Unsupported curve");
      return -1;
    }
    
    if (p_certificate_params.encryption_key == true) {
      if (p_certificate_params.encryption_curve == e_nist_p256) {
        f_generate_key_pair_nistp256(p_certificate_details.private_enc_key, p_certificate_details.public_enc_key_x, p_certificate_details.public_enc_key_y);
      } else if (p_certificate_params.encryption_curve == e_brainpool_p256) {
        f_generate_key_pair_brainpoolp256(p_certificate_details.private_enc_key, p_certificate_details.public_enc_key_x, p_certificate_details.public_enc_key_y);
      } else {
        log("f_generate_signing_keys: Unsupported encryption curve");
        return -1;
      }
    }
    
    return 0;
  } // End of function f_generate_signing_keys
    
@@ -54,7 +65,30 @@ module ItsGenCert_Functions {
                                                                                                 p_certificate_params.region,
                                                                                                 p_certificate_params.app_permissions,
                                                                                                 p_certificate_params.issuing_permissions
                                                                                                 )));
                                                                               )
                                                                )
                                               );
    if (p_certificate_params.encryption_key == true) {
      if (p_certificate_params.encryption_curve == e_nist_p256) {
        p_certificate_details.certificate.toBeSigned.encryptionKey := valueof(m_encryptionKey(
                                                                                              aes128Ccm, 
                                                                                              m_publicEncryptionKey_ecdsaNistP256(
                                                                                                                                  m_eccP256CurvePoint_uncompressed(
                                                                                                                                                                   p_certificate_details.public_enc_key_x,
                                                                                                                                                                   p_certificate_details.public_enc_key_y
                                                                                                                                                                   )))
                                                                             );
      } else if (p_certificate_params.encryption_curve == e_brainpool_p256) {
        p_certificate_details.certificate.toBeSigned.encryptionKey := valueof(m_encryptionKey(
                                                                                              aes128Ccm, 
                                                                                              m_publicEncryptionKey_eciesBrainpoolP256r1(
                                                                                                                                         m_eccP256CurvePoint_uncompressed(
                                                                                                                                                                          p_certificate_details.public_enc_key_x,
                                                                                                                                                                          p_certificate_details.public_enc_key_y
                                                                                                                                                                          )))
                                                                             );
      }
    }
    
    return 0;
  } // End of function f_fill_certificate
@@ -93,7 +127,7 @@ module ItsGenCert_Functions {
                                                                                                                    substr(v_signature, 32, 32)
                                                                                                                    )
                                                                                               ));
    } else if (p_certificate_params.curve == e_brainpool_p256) {
    } else if (p_certificate_params.curve == e_brainpool_p384) {
      v_signature := f_signWithEcdsaBrainpoolp384WithSha384(bit2oct(v_enc_msg), p_issuer_certificate_details.private_key);
      p_certificate_details.certificate.signature_ := valueof(m_signature_ecdsaBrainpoolP384r1(
                                                                                               m_ecdsaP384Signature(
@@ -164,6 +198,7 @@ module ItsGenCert_Functions {
    fx_loadCertificates(PX_CERTIFICATE_POOL_PATH, PX_IUT_SEC_CONFIG_NAME);
    for (var integer v_counter := 0; v_counter < lengthof(p_certificate_details_list); v_counter := v_counter + 1) {
      log("f_store_certificates: ", p_certificate_details_list[v_counter]);
      if (ispresent(p_certificate_details_list[v_counter].private_enc_key)) {
        fx_store_certificate(
                             p_certificate_details_list[v_counter].certificate_id,
                             p_certificate_details_list[v_counter].enc_cert,
@@ -171,7 +206,23 @@ module ItsGenCert_Functions {
                             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);
                             p_certificate_details_list[v_counter].issuer,
                             p_certificate_details_list[v_counter].private_enc_key,
                             p_certificate_details_list[v_counter].public_enc_key_x,
                             p_certificate_details_list[v_counter].public_enc_key_y);
      } else {
        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,
                             ''O,
                             ''O,
                             ''O);
      }
    } // End of 'for' statement
    
    return 0;
+87 −20
Original line number Diff line number Diff line
@@ -30,7 +30,9 @@ module ItsGenCert_Pics {
      c_psidGroupPermissions_all,                                         // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_IUT_A_RCA"                                                    // signed_by
      "CERT_IUT_A_RCA",                                                   // signed_by
      false,                                                              // encryption_key
      omit                                                                // encryption_curve
    }, 
    { 
      "CERT_IUT_A_AA",                                                    // certificate_id
@@ -40,7 +42,9 @@ module ItsGenCert_Pics {
      c_psidGroupPermissions_all,                                         // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_IUT_A_RCA"                                                    // signed_by
      "CERT_IUT_A_RCA",                                                   // signed_by
      false,                                                              // encryption_key
      omit                                                                // encryption_curve
    }, 
    { 
      "CERT_IUT_A_AT",                                                    // certificate_id
@@ -50,7 +54,9 @@ module ItsGenCert_Pics {
      omit,                                                               // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_IUT_A_AA"                                                     // signed_by
      "CERT_IUT_A_AA",                                                    // signed_by
      false,                                                              // encryption_key
      omit                                                                // encryption_curve
    }, 
    { 
      "CERT_IUT_B_AT",                                                    // certificate_id
@@ -60,7 +66,9 @@ module ItsGenCert_Pics {
      omit,                                                               // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_IUT_A_AA"                                                     // signed_by
      "CERT_IUT_A_AA" ,                                                   // signed_by
      false,                                                              // encryption_key
      omit                                                                // encryption_curve
    },
    { 
      "CERT_IUT_C_AT",                                                    // certificate_id
@@ -70,7 +78,9 @@ module ItsGenCert_Pics {
      omit,                                                               // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_IUT_A_AA"                                                     // signed_by
      "CERT_IUT_A_AA",                                                    // signed_by
      false,                                                              // encryption_key
      omit                                                                // encryption_curve
    },
    { 
      "CERT_IUT_D_AT",                                                    // certificate_id
@@ -80,7 +90,9 @@ module ItsGenCert_Pics {
      omit,                                                               // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_IUT_A_AA"                                                     // signed_by
      "CERT_IUT_A_AA",                                                    // signed_by
      false,                                                              // encryption_key
      omit                                                                // encryption_curve
    },
    { 
      "CERT_IUT_E_AT",                                                    // certificate_id
@@ -90,7 +102,9 @@ module ItsGenCert_Pics {
      omit,                                                               // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_IUT_A_AA"                                                     // signed_by
      "CERT_IUT_A_AA",                                                    // signed_by
      false,                                                              // encryption_key
      omit                                                                // encryption_curve
    },
    { 
      "CERT_IUT_A1_AT",                                                   // certificate_id
@@ -100,7 +114,9 @@ module ItsGenCert_Pics {
      omit,                                                               // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_IUT_A_AA"                                                     // signed_by
      "CERT_IUT_A_AA",                                                    // signed_by
      false,                                                              // encryption_key
      omit                                                                // encryption_curve
    }, 
    { 
      "CERT_IUT_A2_AT",                                                   // certificate_id
@@ -110,7 +126,9 @@ module ItsGenCert_Pics {
      omit,                                                               // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_IUT_A_AA"                                                     // signed_by
      "CERT_IUT_A_AA",                                                    // signed_by
      false,                                                              // encryption_key
      omit                                                                // encryption_curve
    }, 
    { 
      "CERT_IUT_A3_AT",                                                   // certificate_id
@@ -120,7 +138,9 @@ module ItsGenCert_Pics {
      omit,                                                               // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_IUT_A_AA"                                                     // signed_by
      "CERT_IUT_A_AA",                                                    // signed_by
      false,                                                              // encryption_key
      omit                                                                // encryption_curve
    }, 
    { 
      "CERT_IUT_A4_AT",                                                   // certificate_id
@@ -130,7 +150,8 @@ module ItsGenCert_Pics {
      omit,                                                               // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_IUT_A_AA"                                                     // signed_by
      "CERT_IUT_A_AA",                                                    // signed_by
      false                                                               // encryption_key
    }, 
    { 
      "CERT_IUT_C_RCA",                                                   // certificate_id
@@ -140,7 +161,9 @@ module ItsGenCert_Pics {
      c_psidGroupPermissions_all,                                         // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_IUT_A_RCA"                                                    // signed_by
      "CERT_IUT_A_RCA",                                                   // signed_by
      false,                                                              // encryption_key
      omit                                                                // encryption_curve
    }, 
    { 
      "CERT_IUT_CA_AA",                                                   // certificate_id
@@ -150,7 +173,9 @@ module ItsGenCert_Pics {
      c_psidGroupPermissions_all,                                         // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_IUT_C_RCA"                                                    // signed_by
      "CERT_IUT_C_RCA",                                                   // signed_by
      false,                                                              // encryption_key
      omit                                                                // encryption_curve
    }, 
    { 
      "CERT_IUT_CC_AA",                                                   // certificate_id
@@ -160,7 +185,9 @@ module ItsGenCert_Pics {
      c_psidGroupPermissions_all,                                         // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_IUT_C_RCA"                                                    // signed_by
      "CERT_IUT_C_RCA",                                                   // signed_by
      false,                                                              // encryption_key
      omit                                                                // encryption_curve
    }, 
    { 
      "CERT_IUT_CA1_AT",                                                  // certificate_id
@@ -170,7 +197,9 @@ module ItsGenCert_Pics {
      omit,                                                               // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_IUT_CC_AA"                                                    // signed_by
      "CERT_IUT_CC_AA",                                                   // signed_by
      false,                                                              // encryption_key
      omit                                                                // encryption_curve
    }, 
    { 
      "CERT_IUT_CA2_AT",                                                  // certificate_id
@@ -180,11 +209,41 @@ module ItsGenCert_Pics {
      omit,                                                               // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_IUT_CA_AA"                                                    // signed_by
      "CERT_IUT_CA_AA",                                                   // signed_by
      false,                                                              // encryption_key
      omit                                                                // encryption_curve
    },
    
    
    
    { 
      "CERT_IUT_E_AA",                                                    // certificate_id
      omit,                                                               // region
      { start_ := c_2018_01_01_gmt_paris, duration := c_six_months },     // validity_period
      omit,                                                               // app_permissions
      c_psidGroupPermissions_all,                                         // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_IUT_A_RCA",                                                   // signed_by
      true,                                                               // encryption_key
      e_nist_p256                                                         // encryption_curve
    }, 
    { 
      "CERT_IUT_E_AT",                                                    // certificate_id
      omit,                                                               // region
      { start_ := c_2018_01_01_gmt_paris, duration := c_six_months },     // validity_period
      c_appPermissions_all,                                               // app_permissions
      omit,                                                               // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_IUT_E_AA",                                                    // signed_by
      true,                                                               // encryption_key
      e_nist_p256                                                         // encryption_curve
    }, 






    
@@ -197,7 +256,9 @@ module ItsGenCert_Pics {
      c_psidGroupPermissions_all,                                         // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_IUT_A_RCA"                                                     // signed_by
      "CERT_IUT_A_RCA",                                                   // signed_by
      false,                                                              // encryption_key
      omit                                                                // encryption_curve
    }, 
    { 
      "CERT_TS_A_AT",                                                     // certificate_id
@@ -207,7 +268,9 @@ module ItsGenCert_Pics {
      omit,                                                               // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_TS_A_AA"                                                      // signed_by
      "CERT_TS_A_AA",                                                     // signed_by
      false,                                                              // encryption_key
      omit                                                                // encryption_curve
    }, 
    { 
      "CERT_TS_B_AA",                                                     // certificate_id
@@ -217,7 +280,9 @@ module ItsGenCert_Pics {
      c_psidGroupPermissions_all,                                         // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_IUT_A_RCA"                                                     // signed_by
      "CERT_IUT_A_RCA",                                                   // signed_by
      false,                                                              // encryption_key
      omit                                                                // encryption_curve
    },
    {
      "CERT_TS_B_AT",                                                     // certificate_id
@@ -227,7 +292,9 @@ module ItsGenCert_Pics {
      omit,                                                               // issuing_permissions
      sha256,                                                             // hash_algorithm
      e_nist_p256,                                                        // curve
      "CERT_TS_B_AA"                                                      // signed_by
      "CERT_TS_B_AA",                                                     // signed_by
      false,                                                              // encryption_key
      omit                                                                // encryption_curve
    }
  } // End of PICS_CERTFICATES
    
+2 −2
Original line number Diff line number Diff line
@@ -42,9 +42,9 @@ module ItsGencert_TestCases {
      
      // Setup
      v_certificate_params := PICS_CERTFICATES[v_counter];
      v_details := { v_certificate_params.certificate_id, {}, ''O, ''O, ''O, ''O, '0000000000000000'O, '0000000000000000'O };
      v_details := { v_certificate_params.certificate_id, {}, ''O, ''O, ''O, ''O, '0000000000000000'O, '0000000000000000'O, omit, omit, omit };
      
      // Generate Private/Public keys for the certificate
      // Generate Private/Public signing and encryption keys for the certificate
      if (f_generate_signing_keys(v_certificate_params, v_details) == -1) {
        setverdict(fail, "Unsupported curve");
        stop;
+7 −2

File changed.

Preview size limit exceeded, changes collapsed.

+28 −14

File changed.

Preview size limit exceeded, changes collapsed.

Loading