Files
system76-edk2/CryptoPkg/CryptoPkg.dec
Michael D Kinney 3b0e04305b 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>
2020-02-07 16:32:13 +00:00

90 lines
3.3 KiB
Plaintext

## @file
# Package for cryptography modules.
#
# This Package provides cryptographic-related libraries for UEFI security modules.
# It also provides a test application to test libraries.
#
# Copyright (c) 2009 - 2020, Intel Corporation. All rights reserved.<BR>
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##
[Defines]
DEC_SPECIFICATION = 0x00010005
PACKAGE_NAME = CryptoPkg
PACKAGE_UNI_FILE = CryptoPkg.uni
PACKAGE_GUID = 36470E80-36F2-4ba0-8CC8-937C7D9FF888
PACKAGE_VERSION = 0.98
[Includes]
Include
[Includes.Common.Private]
Private
Library/Include
Library/OpensslLib/openssl/include
Library/OpensslLib/openssl/crypto/include
[LibraryClasses]
## @libraryclass Provides basic library functions for cryptographic primitives.
##
BaseCryptLib|Include/Library/BaseCryptLib.h
## @libraryclass Provides TLS library functions for EFI TLS protocol.
##
TlsLib|Include/Library/TlsLib.h
## @libraryclass Provides Unified API for different hash implementations.
#
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
# the hash of data.<BR>
# The default hashing algorithm for BaseHashApiLib is set to SHA256.<BR>
# 0x00000001 - MD4.<BR>
# 0x00000002 - MD5.<BR>
# 0x00000003 - SHA1.<BR>
# 0x00000004 - SHA256.<BR>
# 0x00000005 - SHA384.<BR>
# 0x00000006 - SHA512.<BR>
# 0x00000007 - SM3_256.<BR>
# @Prompt Set policy for hashing unsigned image for Secure Boot.
# @ValidRange 0x80000001 | 0x00000001 - 0x00000007
gEfiCryptoPkgTokenSpaceGuid.PcdHashApiLibPolicy|0x04|UINT8|0x00000001
[UserExtensions.TianoCore."ExtraFiles"]
CryptoPkgExtra.uni