audk/CryptoPkg/Include/Pcd/PcdCryptoServiceFamilyEnable.h

294 lines
6.8 KiB
C

/** @file
Defines the PCD_CRYPTO_SERVICE_FAMILY_ENABLE structure associated with
gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.
Copyright (c) 2019 - 2020, 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;
UINT8 Free:1;
UINT8 SetKey:1;
UINT8 Duplicate:1;
UINT8 Update:1;
UINT8 Final:1;
} Services;
UINT32 Family;
} HmacMd5;
union {
struct {
UINT8 New:1;
UINT8 Free:1;
UINT8 SetKey:1;
UINT8 Duplicate:1;
UINT8 Update:1;
UINT8 Final:1;
} Services;
UINT32 Family;
} HmacSha1;
union {
struct {
UINT8 New:1;
UINT8 Free:1;
UINT8 SetKey:1;
UINT8 Duplicate:1;
UINT8 Update:1;
UINT8 Final:1;
} Services;
UINT32 Family;
} HmacSha256;
union {
struct {
UINT8 GetContextSize:1;
UINT8 Init:1;
UINT8 Duplicate:1;
UINT8 Update:1;
UINT8 Final:1;
UINT8 HashAll:1;
} Services;
UINT32 Family;
} Md4;
union {
struct {
UINT8 GetContextSize:1;
UINT8 Init:1;
UINT8 Duplicate:1;
UINT8 Update:1;
UINT8 Final:1;
UINT8 HashAll:1;
} Services;
UINT32 Family;
} Md5;
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;
UINT8 Init:1;
UINT8 Duplicate:1;
UINT8 Update:1;
UINT8 Final:1;
UINT8 HashAll:1;
} Services;
UINT32 Family;
} 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;
} Services;
UINT32 Family;
} X509;
union {
struct {
UINT8 GetContextSize:1;
UINT8 Init:1;
UINT8 EcbEncrypt:1;
UINT8 EcbDecrypt:1;
UINT8 CbcEncrypt:1;
UINT8 CbcDecrypt:1;
} Services;
UINT32 Family;
} Tdes;
union {
struct {
UINT8 GetContextSize:1;
UINT8 Init:1;
UINT8 EcbEncrypt:1;
UINT8 EcbDecrypt:1;
UINT8 CbcEncrypt:1;
UINT8 CbcDecrypt:1;
} Services;
UINT32 Family;
} Aes;
union {
struct {
UINT8 GetContextSize:1;
UINT8 Init:1;
UINT8 Encrypt:1;
UINT8 Decrypt:1;
UINT8 Reset:1;
} Services;
UINT32 Family;
} 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;
} 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;
} 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;
} 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;
} Services;
UINT32 Family;
} TlsGet;
} PCD_CRYPTO_SERVICE_FAMILY_ENABLE;
#endif