]> git.proxmox.com Git - mirror_edk2.git/commitdiff
CryptoPkg: Make EC source file config-able
authoryi1 li <yi1.li@intel.com>
Wed, 13 Apr 2022 07:02:02 +0000 (15:02 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Thu, 14 Apr 2022 03:16:59 +0000 (03:16 +0000)
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3679
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3828

Use PCD gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled to config-able
source files list in OpensslLib.inf and OpensslLibCrypto.inf.
If PcdEcEnabled equals to FALSE, this file will not be compiled.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Signed-off-by: yi1 li <yi1.li@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
CryptoPkg/CryptoPkg.dec
CryptoPkg/Library/Include/openssl/opensslconf.h
CryptoPkg/Library/OpensslLib/OpensslLib.inf
CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf

index 5888941bab4c4f101cf923eda62255c231ffa9d5..ebec64050b71fda6fc62d7571cdcfdeed69261c1 100644 (file)
@@ -81,5 +81,9 @@
   # @ValidList 0x80000001 | 0x00000001, 0x00000002, 0x00000004, 0x00000008, 0x00000010\r
   gEfiCryptoPkgTokenSpaceGuid.PcdHashApiLibPolicy|0x00000002|UINT32|0x00000001\r
 \r
+  ## Enable/Disable the ECC feature in openssl library. The default is disabled.\r
+  #  If ECC feature is disabled, all related source files will not be compiled.\r
+  gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled|FALSE|BOOLEAN|0x0000003\r
+\r
 [UserExtensions.TianoCore."ExtraFiles"]\r
   CryptoPkgExtra.uni\r
index 7ea976b2252ed5907c544b738097196c77087bed..1485b8c9f108df7e4916f417d22a52589839f768 100644 (file)
@@ -9,7 +9,7 @@
  * in the file LICENSE in the source distribution or at\r
  * https://www.openssl.org/source/license.html\r
  */\r
-\r
+#include <Library/PcdLib.h>\r
 #include <openssl/opensslv.h>\r
 \r
 #ifdef  __cplusplus\r
@@ -55,6 +55,11 @@ extern "C" {
 #ifndef OPENSSL_NO_DSA\r
 #define OPENSSL_NO_DSA\r
 #endif\r
+#if !FixedPcdGetBool (PcdEcEnabled)\r
+  #ifndef OPENSSL_NO_EC\r
+#define OPENSSL_NO_EC\r
+  #endif\r
+#endif\r
 #ifndef OPENSSL_NO_IDEA\r
 #define OPENSSL_NO_IDEA\r
 #endif\r
index 1d67ed55e1b1440b2116845cf5cb66c7a0fd663e..459ac4864a4ee4def139f231ec8efc416fde19af 100644 (file)
   $(OPENSSL_PATH)/crypto/dso/dso_vms.c\r
   $(OPENSSL_PATH)/crypto/dso/dso_win32.c\r
   $(OPENSSL_PATH)/crypto/ebcdic.c\r
-  $(OPENSSL_PATH)/crypto/ec/curve25519.c\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/arch_32/f_impl.c\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/curve448.c\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/curve448_tables.c\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/eddsa.c\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/f_generic.c\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/scalar.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec2_oct.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec2_smpl.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_ameth.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_asn1.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_check.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_curve.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_cvt.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_err.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_key.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_kmeth.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_lib.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_mult.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_oct.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_pmeth.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_print.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecdh_kdf.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecdh_ossl.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecdsa_ossl.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecdsa_sign.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecdsa_vrf.c\r
-  $(OPENSSL_PATH)/crypto/ec/eck_prn.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecp_mont.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecp_nist.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecp_nistp224.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecp_nistp256.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecp_nistp521.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecp_nistputil.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecp_oct.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecp_smpl.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecx_meth.c\r
+  $(OPENSSL_PATH)/crypto/ec/curve25519.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/arch_32/f_impl.c     |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/curve448.c     |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/curve448_tables.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/eddsa.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/f_generic.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/scalar.c     |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec2_oct.c     |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec2_smpl.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_ameth.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_asn1.c     |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_check.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_curve.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_cvt.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_err.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_key.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_kmeth.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_lib.c     |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_mult.c     |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_oct.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_pmeth.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_print.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecdh_kdf.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecdh_ossl.c     |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecdsa_ossl.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecdsa_sign.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecdsa_vrf.c     |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/eck_prn.c     |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecp_mont.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecp_nist.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecp_nistp224.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecp_nistp256.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecp_nistp521.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecp_nistputil.c     |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecp_oct.c     |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecp_smpl.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecx_meth.c      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
   $(OPENSSL_PATH)/crypto/err/err.c\r
   $(OPENSSL_PATH)/crypto/err/err_prn.c\r
   $(OPENSSL_PATH)/crypto/evp/bio_b64.c\r
   $(OPENSSL_PATH)/crypto/conf/conf_local.h\r
   $(OPENSSL_PATH)/crypto/dh/dh_local.h\r
   $(OPENSSL_PATH)/crypto/dso/dso_local.h\r
-  $(OPENSSL_PATH)/crypto/ec/ec_local.h\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/curve448_local.h\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/curve448utils.h\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/ed448.h\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/field.h\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/point_448.h\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/word.h\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/arch_32/arch_intrinsics.h\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/arch_32/f_impl.h\r
+  $(OPENSSL_PATH)/crypto/ec/ec_local.h      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/curve448_local.h     |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/curve448utils.h      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/ed448.h      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/field.h      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/point_448.h      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/word.h     |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/arch_32/arch_intrinsics.h      |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/arch_32/f_impl.h     |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
   $(OPENSSL_PATH)/crypto/evp/evp_local.h\r
   $(OPENSSL_PATH)/crypto/hmac/hmac_local.h\r
   $(OPENSSL_PATH)/crypto/lhash/lhash_local.h\r
 [LibraryClasses.ARM]\r
   ArmSoftFloatLib\r
 \r
+[Pcd]\r
+  gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled      ## CONSUMES\r
+\r
 [BuildOptions]\r
   #\r
   # Disables the following Visual Studio compiler warnings brought by openssl source,\r
index 66ca5b1250c13163f4f9c505d3021c9e88c4b75e..c9d69a368e3c7650361ba6d962eef742a1d8dc41 100644 (file)
   $(OPENSSL_PATH)/crypto/dso/dso_vms.c\r
   $(OPENSSL_PATH)/crypto/dso/dso_win32.c\r
   $(OPENSSL_PATH)/crypto/ebcdic.c\r
-  $(OPENSSL_PATH)/crypto/ec/curve25519.c\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/arch_32/f_impl.c\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/curve448.c\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/curve448_tables.c\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/eddsa.c\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/f_generic.c\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/scalar.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec2_oct.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec2_smpl.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_ameth.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_asn1.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_check.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_curve.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_cvt.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_err.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_key.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_kmeth.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_lib.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_mult.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_oct.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_pmeth.c\r
-  $(OPENSSL_PATH)/crypto/ec/ec_print.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecdh_kdf.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecdh_ossl.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecdsa_ossl.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecdsa_sign.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecdsa_vrf.c\r
-  $(OPENSSL_PATH)/crypto/ec/eck_prn.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecp_mont.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecp_nist.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecp_nistp224.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecp_nistp256.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecp_nistp521.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecp_nistputil.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecp_oct.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecp_smpl.c\r
-  $(OPENSSL_PATH)/crypto/ec/ecx_meth.c\r
+  $(OPENSSL_PATH)/crypto/ec/curve25519.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/arch_32/f_impl.c   |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/curve448.c   |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/curve448_tables.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/eddsa.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/f_generic.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/scalar.c   |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec2_oct.c   |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec2_smpl.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_ameth.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_asn1.c   |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_check.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_curve.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_cvt.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_err.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_key.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_kmeth.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_lib.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_mult.c   |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_oct.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_pmeth.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ec_print.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecdh_kdf.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecdh_ossl.c   |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecdsa_ossl.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecdsa_sign.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecdsa_vrf.c   |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/eck_prn.c   |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecp_mont.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecp_nist.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecp_nistp224.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecp_nistp256.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecp_nistp521.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecp_nistputil.c   |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecp_oct.c   |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecp_smpl.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/ecx_meth.c    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
   $(OPENSSL_PATH)/crypto/err/err.c\r
   $(OPENSSL_PATH)/crypto/err/err_prn.c\r
   $(OPENSSL_PATH)/crypto/evp/bio_b64.c\r
   $(OPENSSL_PATH)/crypto/conf/conf_local.h\r
   $(OPENSSL_PATH)/crypto/dh/dh_local.h\r
   $(OPENSSL_PATH)/crypto/dso/dso_local.h\r
-  $(OPENSSL_PATH)/crypto/ec/ec_local.h\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/curve448_local.h\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/curve448utils.h\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/ed448.h\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/field.h\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/point_448.h\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/word.h\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/arch_32/arch_intrinsics.h\r
-  $(OPENSSL_PATH)/crypto/ec/curve448/arch_32/f_impl.h\r
+  $(OPENSSL_PATH)/crypto/ec/ec_local.h    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/curve448_local.h   |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/curve448utils.h    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/ed448.h    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/field.h    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/point_448.h    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/word.h   |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/arch_32/arch_intrinsics.h    |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
+  $(OPENSSL_PATH)/crypto/ec/curve448/arch_32/f_impl.h   |*|*|*|gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled\r
   $(OPENSSL_PATH)/crypto/evp/evp_local.h\r
   $(OPENSSL_PATH)/crypto/hmac/hmac_local.h\r
   $(OPENSSL_PATH)/crypto/lhash/lhash_local.h\r
 [LibraryClasses.ARM]\r
   ArmSoftFloatLib\r
 \r
+[Pcd]\r
+  gEfiCryptoPkgTokenSpaceGuid.PcdEcEnabled      ## CONSUMES\r
+\r
 [BuildOptions]\r
   #\r
   # Disables the following Visual Studio compiler warnings brought by openssl source,\r