mirror of https://github.com/acidanthera/audk.git
430 lines
14 KiB
C
430 lines
14 KiB
C
/** @file
|
|
Defines the PCD_CRYPTO_SERVICE_FAMILY_ENABLE structure associated with
|
|
gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable that is used
|
|
to enable/disable crypto services at either the family scope or the
|
|
individual service scope. Platforms can minimize the number of enabled
|
|
services to reduce size.
|
|
|
|
The following services have been deprecated and must never be enabled.
|
|
The associated fields in this data structure are never removed or replaced
|
|
to preseve the binary layout of the data structure. New services are
|
|
always added to the end of the data structure.
|
|
* HmacMd5 family
|
|
* HmacSha1 family
|
|
* Md4 family
|
|
* Md5 family
|
|
* Tdes family
|
|
* Arc4 family
|
|
* Aes.Services.EcbEncrypt service
|
|
* Aes.Services.EcbDecrypt service
|
|
|
|
Is is recommended that the following services always be disabled and may
|
|
be deprecated in the future.
|
|
* Sha1 family
|
|
|
|
Copyright (c) 2019 - 2022, Intel Corporation. All rights reserved.<BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#ifndef __PCD_CRYPTO_SERVICE_FAMILY_ENABLE_H__
|
|
#define __PCD_CRYPTO_SERVICE_FAMILY_ENABLE_H__
|
|
|
|
///
|
|
/// Define used to enable all the crypto services in a family
|
|
///
|
|
#define PCD_CRYPTO_SERVICE_ENABLE_FAMILY 0xFFFFFFFF
|
|
|
|
///
|
|
/// PCD_CRYPTO_SERVICE_FAMILY_ENABLE structure. Each field in this structure
|
|
/// is associated with a service in the EDK II Crypto Protocol/PPI. This allows
|
|
/// each individual service to be enabled/disabled in a DSC file. Services are
|
|
/// also grouped into families. Unions are used to support enabling or
|
|
/// disabling an entire family in a single DSC statement.
|
|
///
|
|
typedef struct {
|
|
union {
|
|
struct {
|
|
UINT8 New : 1; // Deprecated
|
|
UINT8 Free : 1; // Deprecated
|
|
UINT8 SetKey : 1; // Deprecated
|
|
UINT8 Duplicate : 1; // Deprecated
|
|
UINT8 Update : 1; // Deprecated
|
|
UINT8 Final : 1; // Deprecated
|
|
} Services;
|
|
UINT32 Family; // Deprecated
|
|
} HmacMd5;
|
|
union {
|
|
struct {
|
|
UINT8 New : 1; // Deprecated
|
|
UINT8 Free : 1; // Deprecated
|
|
UINT8 SetKey : 1; // Deprecated
|
|
UINT8 Duplicate : 1; // Deprecated
|
|
UINT8 Update : 1; // Deprecated
|
|
UINT8 Final : 1; // Deprecated
|
|
} Services;
|
|
UINT32 Family; // Deprecated
|
|
} HmacSha1;
|
|
union {
|
|
struct {
|
|
UINT8 New : 1;
|
|
UINT8 Free : 1;
|
|
UINT8 SetKey : 1;
|
|
UINT8 Duplicate : 1;
|
|
UINT8 Update : 1;
|
|
UINT8 Final : 1;
|
|
UINT8 All : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} HmacSha256;
|
|
union {
|
|
struct {
|
|
UINT8 New : 1;
|
|
UINT8 Free : 1;
|
|
UINT8 SetKey : 1;
|
|
UINT8 Duplicate : 1;
|
|
UINT8 Update : 1;
|
|
UINT8 Final : 1;
|
|
UINT8 All : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} HmacSha384;
|
|
union {
|
|
struct {
|
|
UINT8 GetContextSize : 1; // Deprecated
|
|
UINT8 Init : 1; // Deprecated
|
|
UINT8 Duplicate : 1; // Deprecated
|
|
UINT8 Update : 1; // Deprecated
|
|
UINT8 Final : 1; // Deprecated
|
|
UINT8 HashAll : 1; // Deprecated
|
|
} Services;
|
|
UINT32 Family; // Deprecated
|
|
} Md4;
|
|
union {
|
|
struct {
|
|
UINT8 GetContextSize : 1; // Deprecated
|
|
UINT8 Init : 1; // Deprecated
|
|
UINT8 Duplicate : 1; // Deprecated
|
|
UINT8 Update : 1; // Deprecated
|
|
UINT8 Final : 1; // Deprecated
|
|
UINT8 HashAll : 1; // Deprecated
|
|
} Services;
|
|
UINT32 Family;
|
|
} Md5; // Deprecated
|
|
union {
|
|
struct {
|
|
UINT8 Pkcs1v2Encrypt : 1;
|
|
UINT8 Pkcs5HashPassword : 1;
|
|
UINT8 Pkcs7Verify : 1;
|
|
UINT8 VerifyEKUsInPkcs7Signature : 1;
|
|
UINT8 Pkcs7GetSigners : 1;
|
|
UINT8 Pkcs7FreeSigners : 1;
|
|
UINT8 Pkcs7Sign : 1;
|
|
UINT8 Pkcs7GetAttachedContent : 1;
|
|
UINT8 Pkcs7GetCertificatesList : 1;
|
|
UINT8 AuthenticodeVerify : 1;
|
|
UINT8 ImageTimestampVerify : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} Pkcs;
|
|
union {
|
|
struct {
|
|
UINT8 New : 1;
|
|
UINT8 Free : 1;
|
|
UINT8 GenerateParameter : 1;
|
|
UINT8 SetParameter : 1;
|
|
UINT8 GenerateKey : 1;
|
|
UINT8 ComputeKey : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} Dh;
|
|
union {
|
|
struct {
|
|
UINT8 Seed : 1;
|
|
UINT8 Bytes : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} Random;
|
|
union {
|
|
struct {
|
|
UINT8 VerifyPkcs1 : 1;
|
|
UINT8 New : 1;
|
|
UINT8 Free : 1;
|
|
UINT8 SetKey : 1;
|
|
UINT8 GetKey : 1;
|
|
UINT8 GenerateKey : 1;
|
|
UINT8 CheckKey : 1;
|
|
UINT8 Pkcs1Sign : 1;
|
|
UINT8 Pkcs1Verify : 1;
|
|
UINT8 GetPrivateKeyFromPem : 1;
|
|
UINT8 GetPublicKeyFromX509 : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} Rsa;
|
|
union {
|
|
struct {
|
|
UINT8 GetContextSize : 1; // Recommend disable
|
|
UINT8 Init : 1; // Recommend disable
|
|
UINT8 Duplicate : 1; // Recommend disable
|
|
UINT8 Update : 1; // Recommend disable
|
|
UINT8 Final : 1; // Recommend disable
|
|
UINT8 HashAll : 1; // Recommend disable
|
|
} Services;
|
|
UINT32 Family; // Recommend disable
|
|
} Sha1;
|
|
union {
|
|
struct {
|
|
UINT8 GetContextSize : 1;
|
|
UINT8 Init : 1;
|
|
UINT8 Duplicate : 1;
|
|
UINT8 Update : 1;
|
|
UINT8 Final : 1;
|
|
UINT8 HashAll : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} Sha256;
|
|
union {
|
|
struct {
|
|
UINT8 GetContextSize : 1;
|
|
UINT8 Init : 1;
|
|
UINT8 Duplicate : 1;
|
|
UINT8 Update : 1;
|
|
UINT8 Final : 1;
|
|
UINT8 HashAll : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} Sha384;
|
|
union {
|
|
struct {
|
|
UINT8 GetContextSize : 1;
|
|
UINT8 Init : 1;
|
|
UINT8 Duplicate : 1;
|
|
UINT8 Update : 1;
|
|
UINT8 Final : 1;
|
|
UINT8 HashAll : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} Sha512;
|
|
union {
|
|
struct {
|
|
UINT8 GetSubjectName : 1;
|
|
UINT8 GetCommonName : 1;
|
|
UINT8 GetOrganizationName : 1;
|
|
UINT8 VerifyCert : 1;
|
|
UINT8 ConstructCertificate : 1;
|
|
UINT8 ConstructCertificateStack : 1;
|
|
UINT8 ConstructCertificateStackV : 1;
|
|
UINT8 Free : 1;
|
|
UINT8 StackFree : 1;
|
|
UINT8 GetTBSCert : 1;
|
|
UINT8 GetVersion : 1;
|
|
UINT8 GetSerialNumber : 1;
|
|
UINT8 GetIssuerName : 1;
|
|
UINT8 GetSignatureAlgorithm : 1;
|
|
UINT8 GetExtensionData : 1;
|
|
UINT8 GetExtendedKeyUsage : 1;
|
|
UINT8 GetValidity : 1;
|
|
UINT8 FormatDateTime : 1;
|
|
UINT8 CompareDateTime : 1;
|
|
UINT8 GetKeyUsage : 1;
|
|
UINT8 VerifyCertChain : 1;
|
|
UINT8 GetCertFromCertChain : 1;
|
|
UINT8 Asn1GetTag : 1;
|
|
UINT8 GetExtendedBasicConstraints : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} X509;
|
|
union {
|
|
struct {
|
|
UINT8 GetContextSize : 1; // Deprecated
|
|
UINT8 Init : 1; // Deprecated
|
|
UINT8 EcbEncrypt : 1; // Deprecated
|
|
UINT8 EcbDecrypt : 1; // Deprecated
|
|
UINT8 CbcEncrypt : 1; // Deprecated
|
|
UINT8 CbcDecrypt : 1; // Deprecated
|
|
} Services;
|
|
UINT32 Family; // Deprecated
|
|
} Tdes;
|
|
union {
|
|
struct {
|
|
UINT8 GetContextSize : 1;
|
|
UINT8 Init : 1;
|
|
UINT8 EcbEncrypt : 1; // Deprecated
|
|
UINT8 EcbDecrypt : 1; // Deprecated
|
|
UINT8 CbcEncrypt : 1;
|
|
UINT8 CbcDecrypt : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} Aes;
|
|
union {
|
|
struct {
|
|
UINT8 GetContextSize : 1; // Deprecated
|
|
UINT8 Init : 1; // Deprecated
|
|
UINT8 Encrypt : 1; // Deprecated
|
|
UINT8 Decrypt : 1; // Deprecated
|
|
UINT8 Reset : 1; // Deprecated
|
|
} Services;
|
|
UINT32 Family; // Deprecated
|
|
} Arc4;
|
|
union {
|
|
struct {
|
|
UINT8 GetContextSize : 1;
|
|
UINT8 Init : 1;
|
|
UINT8 Duplicate : 1;
|
|
UINT8 Update : 1;
|
|
UINT8 Final : 1;
|
|
UINT8 HashAll : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} Sm3;
|
|
union {
|
|
struct {
|
|
UINT8 Sha256ExtractAndExpand : 1;
|
|
UINT8 Sha256Extract : 1;
|
|
UINT8 Sha256Expand : 1;
|
|
UINT8 Sha384ExtractAndExpand : 1;
|
|
UINT8 Sha384Extract : 1;
|
|
UINT8 Sha384Expand : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} Hkdf;
|
|
union {
|
|
struct {
|
|
UINT8 Initialize : 1;
|
|
UINT8 CtxFree : 1;
|
|
UINT8 CtxNew : 1;
|
|
UINT8 Free : 1;
|
|
UINT8 New : 1;
|
|
UINT8 InHandshake : 1;
|
|
UINT8 DoHandshake : 1;
|
|
UINT8 HandleAlert : 1;
|
|
UINT8 CloseNotify : 1;
|
|
UINT8 CtrlTrafficOut : 1;
|
|
UINT8 CtrlTrafficIn : 1;
|
|
UINT8 Read : 1;
|
|
UINT8 Write : 1;
|
|
UINT8 Shutdown : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} Tls;
|
|
union {
|
|
struct {
|
|
UINT8 Version : 1;
|
|
UINT8 ConnectionEnd : 1;
|
|
UINT8 CipherList : 1;
|
|
UINT8 CompressionMethod : 1;
|
|
UINT8 Verify : 1;
|
|
UINT8 VerifyHost : 1;
|
|
UINT8 SessionId : 1;
|
|
UINT8 CaCertificate : 1;
|
|
UINT8 HostPublicCert : 1;
|
|
UINT8 HostPrivateKey : 1;
|
|
UINT8 CertRevocationList : 1;
|
|
UINT8 HostPrivateKeyEx : 1;
|
|
UINT8 SignatureAlgoList : 1;
|
|
UINT8 EcCurve : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} TlsSet;
|
|
union {
|
|
struct {
|
|
UINT8 Version : 1;
|
|
UINT8 ConnectionEnd : 1;
|
|
UINT8 CurrentCipher : 1;
|
|
UINT8 CurrentCompressionId : 1;
|
|
UINT8 Verify : 1;
|
|
UINT8 SessionId : 1;
|
|
UINT8 ClientRandom : 1;
|
|
UINT8 ServerRandom : 1;
|
|
UINT8 KeyMaterial : 1;
|
|
UINT8 CaCertificate : 1;
|
|
UINT8 HostPublicCert : 1;
|
|
UINT8 HostPrivateKey : 1;
|
|
UINT8 CertRevocationList : 1;
|
|
UINT8 ExportKey : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} TlsGet;
|
|
union {
|
|
struct {
|
|
UINT8 Sign : 1;
|
|
UINT8 Verify : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} RsaPss;
|
|
union {
|
|
struct {
|
|
UINT8 HashAll : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} ParallelHash;
|
|
union {
|
|
struct {
|
|
UINT8 Encrypt : 1;
|
|
UINT8 Decrypt : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} AeadAesGcm;
|
|
union {
|
|
struct {
|
|
UINT8 Init : 1;
|
|
UINT8 FromBin : 1;
|
|
UINT8 ToBin : 1;
|
|
UINT8 Free : 1;
|
|
UINT8 Add : 1;
|
|
UINT8 Sub : 1;
|
|
UINT8 Mod : 1;
|
|
UINT8 ExpMod : 1;
|
|
UINT8 InverseMod : 1;
|
|
UINT8 Div : 1;
|
|
UINT8 MulMod : 1;
|
|
UINT8 Cmp : 1;
|
|
UINT8 Bits : 1;
|
|
UINT8 Bytes : 1;
|
|
UINT8 IsWord : 1;
|
|
UINT8 IsOdd : 1;
|
|
UINT8 Copy : 1;
|
|
UINT8 ValueOne : 1;
|
|
UINT8 RShift : 1;
|
|
UINT8 ConstTime : 1;
|
|
UINT8 SqrMod : 1;
|
|
UINT8 NewContext : 1;
|
|
UINT8 ContextFree : 1;
|
|
UINT8 SetUint : 1;
|
|
UINT8 AddMod : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} Bn;
|
|
union {
|
|
struct {
|
|
UINT8 GroupInit : 1;
|
|
UINT8 GroupGetCurve : 1;
|
|
UINT8 GroupGetOrder : 1;
|
|
UINT8 GroupFree : 1;
|
|
UINT8 PointInit : 1;
|
|
UINT8 PointDeInit : 1;
|
|
UINT8 PointGetAffineCoordinates : 1;
|
|
UINT8 PointSetAffineCoordinates : 1;
|
|
UINT8 PointAdd : 1;
|
|
UINT8 PointMul : 1;
|
|
UINT8 PointInvert : 1;
|
|
UINT8 PointIsOnCurve : 1;
|
|
UINT8 PointIsAtInfinity : 1;
|
|
UINT8 PointEqual : 1;
|
|
UINT8 PointSetCompressedCoordinates : 1;
|
|
UINT8 NewByNid : 1;
|
|
UINT8 Free : 1;
|
|
UINT8 GenerateKey : 1;
|
|
UINT8 GetPubKey : 1;
|
|
UINT8 DhComputeKey : 1;
|
|
UINT8 GetPublicKeyFromX509 : 1;
|
|
UINT8 GetPrivateKeyFromPem : 1;
|
|
UINT8 DsaSign : 1;
|
|
UINT8 DsaVerify : 1;
|
|
} Services;
|
|
UINT32 Family;
|
|
} Ec;
|
|
} PCD_CRYPTO_SERVICE_FAMILY_ENABLE;
|
|
|
|
#endif
|