123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429 |
- /** @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
|