summaryrefslogtreecommitdiffstats
path: root/CryptoPkg/CryptoPkg.dec
diff options
context:
space:
mode:
authorMichael D Kinney <michael.d.kinney@intel.com>2019-11-07 02:29:16 -0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2020-02-07 16:32:13 +0000
commit3b0e04305b2559da8deec7e1acba2d9e9902b80e (patch)
tree68b4d135581568b68765328a148d4cb5b3d580bc /CryptoPkg/CryptoPkg.dec
parent668621362fa4f0ca87fda5b9abba4fc49bac291b (diff)
downloadedk2-3b0e04305b2559da8deec7e1acba2d9e9902b80e.tar.gz
edk2-3b0e04305b2559da8deec7e1acba2d9e9902b80e.tar.bz2
edk2-3b0e04305b2559da8deec7e1acba2d9e9902b80e.zip
CryptoPkg: Add EDK II Crypto Protocols/PPIs/PCDs
https://bugzilla.tianocore.org/show_bug.cgi?id=2420 Based on the following package with changes to merge into CryptoPkg. https://github.com/microsoft/mu_plus/tree/dev/201908/SharedCryptoPkg Add the EDK II Crypto Protocol, EDK II SMM Crypto Protocol and EDK II Crypto PPI that provide the same services as the BaseCryptLib. One additional GetVersion() services is provided to support backward compatible extensions to these new Protocols/PPIs if new services are added to BaseCryptLib in the future. The EDK II Crypto Protocols/PPIs are located in a private directory so they are only available CryptoPkg components. In order to optimize the size of modules that produce the EDK II Crypto Protocols/PPIs define a FixedAtBuild PCD gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable. This PCD is type VOID* and is associated with the structure PCD_CRYPTO_SERVICE_FAMILY_ENABLE. This structure contains bitfields and unions that allow a platform DSC files to enable/disable entire families of services or enable/disable individual services in the produced EDK II Crypto Protocols/PPIs. Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Xiaoyu Lu <xiaoyux.lu@intel.com> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
Diffstat (limited to 'CryptoPkg/CryptoPkg.dec')
-rw-r--r--CryptoPkg/CryptoPkg.dec28
1 files changed, 28 insertions, 0 deletions
diff --git a/CryptoPkg/CryptoPkg.dec b/CryptoPkg/CryptoPkg.dec
index 8ad0fb5d61..8bd63a76dd 100644
--- a/CryptoPkg/CryptoPkg.dec
+++ b/CryptoPkg/CryptoPkg.dec
@@ -20,6 +20,7 @@
Include
[Includes.Common.Private]
+ Private
Library/Include
Library/OpensslLib/openssl/include
Library/OpensslLib/openssl/crypto/include
@@ -37,10 +38,37 @@
#
HashApiLib|Include/Library/HashApiLib.h
+[Protocols]
+ ## EDK II Crypto DXE protocol
+ # 2C2275C9-3A7B-426F-BE54-2D22BD9D1092
+ gEdkiiCryptoProtocolGuid = { 0x2C2275C9, 0x3A7B, 0x426F, { 0xBE, 0x54, 0x2D, 0x22, 0xBD, 0x9D, 0x10, 0x92 }}
+
+ ## EDK II Crypto SMM protocol
+ # F46B2EB2-E0D7-4C96-A3B1-CB7C572EB300
+ gEdkiiSmmCryptoProtocolGuid = { 0xF46B2EB2, 0xE0D7, 0x4C96, { 0xA3, 0xB1, 0xc, 0x61, 0xbb, 0x24, 0x5c, 0x42 }}
+
+[Ppis]
+ ## EDK II Crypto PPI
+ # 7DCE671B-C223-446A-A705-ED637AAF6771
+ gEdkiiCryptoPpiGuid = { 0x7DCE671B, 0xC223, 0x446A, { 0xA7, 0x05, 0xED, 0x63, 0x7A, 0xAF, 0x67, 0x71 }}
+
[Guids]
## Crypto package token space guid.
gEfiCryptoPkgTokenSpaceGuid = { 0x6bd7de60, 0x9ef7, 0x4899, { 0x97, 0xd0, 0xab, 0xff, 0xfd, 0xe9, 0x70, 0xf2 } }
+[PcdsFixedAtBuild]
+ ## Enable/Disable the families and individual services produced by the
+ # EDK II Crypto Protocols/PPIs. The default is all services disabled.
+ # This Structured PCD is associated with PCD_CRYPTO_SERVICE_FAMILY_ENABLE
+ # structure that is defined in Include/Pcd/PcdCryptoServiceFamilyEnable.h.
+ # @Prompt Enable/Disable EDK II Crypto Protocol/PPI services
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable|{0x00}|PCD_CRYPTO_SERVICE_FAMILY_ENABLE|0x00000002 {
+ <Packages>
+ CryptoPkg/CryptoPkg.dec
+ <HeaderFiles>
+ Pcd/PcdCryptoServiceFamilyEnable.h
+ }
+
[PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
## This PCD indicates the HASH algorithm to calculate hash of data
# Based on the value set, the required algorithm is chosen to calculate