/** @file\r
Defines the PCD_CRYPTO_SERVICE_FAMILY_ENABLE structure associated with\r
- gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.\r
+ gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable that is used\r
+ to enable/disable crypto services at either the family scope or the\r
+ individual service scope. Platforms can minimize the number of enabled\r
+ services to reduce size.\r
+\r
+ The following services have been deprecated and must never be enabled.\r
+ The associated fields in this data structure are never removed or replaced\r
+ to preseve the binary layout of the data structure. New services are\r
+ always added to the end of the data structure.\r
+ * HmacMd5 family\r
+ * HmacSha1 family\r
+ * Md4 family\r
+ * Md5 family\r
+ * Tdes family\r
+ * Arc4 family\r
+ * Aes.Services.EcbEncrypt service\r
+ * Aes.Services.EcbDecrypt service\r
+\r
+ Is is recommended that the following services always be disabled and may\r
+ be deprecated in the future.\r
+ * Sha1 family\r
\r
Copyright (c) 2019 - 2022, Intel Corporation. All rights reserved.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
typedef struct {\r
union {\r
struct {\r
- UINT8 New : 1;\r
- UINT8 Free : 1;\r
- UINT8 SetKey : 1;\r
- UINT8 Duplicate : 1;\r
- UINT8 Update : 1;\r
- UINT8 Final : 1;\r
+ UINT8 New : 1; // Deprecated\r
+ UINT8 Free : 1; // Deprecated\r
+ UINT8 SetKey : 1; // Deprecated\r
+ UINT8 Duplicate : 1; // Deprecated\r
+ UINT8 Update : 1; // Deprecated\r
+ UINT8 Final : 1; // Deprecated\r
} Services;\r
- UINT32 Family;\r
+ UINT32 Family; // Deprecated\r
} HmacMd5;\r
+ union {\r
+ struct {\r
+ UINT8 New : 1; // Deprecated\r
+ UINT8 Free : 1; // Deprecated\r
+ UINT8 SetKey : 1; // Deprecated\r
+ UINT8 Duplicate : 1; // Deprecated\r
+ UINT8 Update : 1; // Deprecated\r
+ UINT8 Final : 1; // Deprecated\r
+ } Services;\r
+ UINT32 Family; // Deprecated\r
+ } HmacSha1;\r
union {\r
struct {\r
UINT8 New : 1;\r
UINT8 Duplicate : 1;\r
UINT8 Update : 1;\r
UINT8 Final : 1;\r
+ UINT8 All : 1;\r
} Services;\r
UINT32 Family;\r
- } HmacSha1;\r
+ } HmacSha256;\r
union {\r
struct {\r
UINT8 New : 1;\r
UINT8 Duplicate : 1;\r
UINT8 Update : 1;\r
UINT8 Final : 1;\r
+ UINT8 All : 1;\r
} Services;\r
UINT32 Family;\r
- } HmacSha256;\r
+ } HmacSha384;\r
union {\r
struct {\r
- UINT8 GetContextSize : 1;\r
- UINT8 Init : 1;\r
- UINT8 Duplicate : 1;\r
- UINT8 Update : 1;\r
- UINT8 Final : 1;\r
- UINT8 HashAll : 1;\r
+ UINT8 GetContextSize : 1; // Deprecated\r
+ UINT8 Init : 1; // Deprecated\r
+ UINT8 Duplicate : 1; // Deprecated\r
+ UINT8 Update : 1; // Deprecated\r
+ UINT8 Final : 1; // Deprecated\r
+ UINT8 HashAll : 1; // Deprecated\r
} Services;\r
- UINT32 Family;\r
+ UINT32 Family; // Deprecated\r
} Md4;\r
union {\r
struct {\r
- UINT8 GetContextSize : 1;\r
- UINT8 Init : 1;\r
- UINT8 Duplicate : 1;\r
- UINT8 Update : 1;\r
- UINT8 Final : 1;\r
- UINT8 HashAll : 1;\r
+ UINT8 GetContextSize : 1; // Deprecated\r
+ UINT8 Init : 1; // Deprecated\r
+ UINT8 Duplicate : 1; // Deprecated\r
+ UINT8 Update : 1; // Deprecated\r
+ UINT8 Final : 1; // Deprecated\r
+ UINT8 HashAll : 1; // Deprecated\r
} Services;\r
UINT32 Family;\r
- } Md5;\r
+ } Md5; // Deprecated\r
union {\r
struct {\r
UINT8 Pkcs1v2Encrypt : 1;\r
} Rsa;\r
union {\r
struct {\r
- UINT8 GetContextSize : 1;\r
- UINT8 Init : 1;\r
- UINT8 Duplicate : 1;\r
- UINT8 Update : 1;\r
- UINT8 Final : 1;\r
- UINT8 HashAll : 1;\r
+ UINT8 GetContextSize : 1; // Recommend disable\r
+ UINT8 Init : 1; // Recommend disable\r
+ UINT8 Duplicate : 1; // Recommend disable\r
+ UINT8 Update : 1; // Recommend disable\r
+ UINT8 Final : 1; // Recommend disable\r
+ UINT8 HashAll : 1; // Recommend disable\r
} Services;\r
- UINT32 Family;\r
+ UINT32 Family; // Recommend disable\r
} Sha1;\r
union {\r
struct {\r
} Sha512;\r
union {\r
struct {\r
- UINT8 GetSubjectName : 1;\r
- UINT8 GetCommonName : 1;\r
- UINT8 GetOrganizationName : 1;\r
- UINT8 VerifyCert : 1;\r
- UINT8 ConstructCertificate : 1;\r
- UINT8 ConstructCertificateStack : 1;\r
- UINT8 ConstructCertificateStackV : 1;\r
- UINT8 Free : 1;\r
- UINT8 StackFree : 1;\r
- UINT8 GetTBSCert : 1;\r
+ UINT8 GetSubjectName : 1;\r
+ UINT8 GetCommonName : 1;\r
+ UINT8 GetOrganizationName : 1;\r
+ UINT8 VerifyCert : 1;\r
+ UINT8 ConstructCertificate : 1;\r
+ UINT8 ConstructCertificateStack : 1;\r
+ UINT8 ConstructCertificateStackV : 1;\r
+ UINT8 Free : 1;\r
+ UINT8 StackFree : 1;\r
+ UINT8 GetTBSCert : 1;\r
+ UINT8 GetVersion : 1;\r
+ UINT8 GetSerialNumber : 1;\r
+ UINT8 GetIssuerName : 1;\r
+ UINT8 GetSignatureAlgorithm : 1;\r
+ UINT8 GetExtensionData : 1;\r
+ UINT8 GetExtendedKeyUsage : 1;\r
+ UINT8 GetValidity : 1;\r
+ UINT8 FormatDateTime : 1;\r
+ UINT8 CompareDateTime : 1;\r
+ UINT8 GetKeyUsage : 1;\r
+ UINT8 VerifyCertChain : 1;\r
+ UINT8 GetCertFromCertChain : 1;\r
+ UINT8 Asn1GetTag : 1;\r
+ UINT8 GetExtendedBasicConstraints : 1;\r
} Services;\r
UINT32 Family;\r
} X509;\r
union {\r
struct {\r
- UINT8 GetContextSize : 1;\r
- UINT8 Init : 1;\r
- UINT8 EcbEncrypt : 1;\r
- UINT8 EcbDecrypt : 1;\r
- UINT8 CbcEncrypt : 1;\r
- UINT8 CbcDecrypt : 1;\r
+ UINT8 GetContextSize : 1; // Deprecated\r
+ UINT8 Init : 1; // Deprecated\r
+ UINT8 EcbEncrypt : 1; // Deprecated\r
+ UINT8 EcbDecrypt : 1; // Deprecated\r
+ UINT8 CbcEncrypt : 1; // Deprecated\r
+ UINT8 CbcDecrypt : 1; // Deprecated\r
} Services;\r
- UINT32 Family;\r
+ UINT32 Family; // Deprecated\r
} Tdes;\r
union {\r
struct {\r
UINT8 GetContextSize : 1;\r
UINT8 Init : 1;\r
- UINT8 EcbEncrypt : 1;\r
- UINT8 EcbDecrypt : 1;\r
+ UINT8 EcbEncrypt : 1; // Deprecated\r
+ UINT8 EcbDecrypt : 1; // Deprecated\r
UINT8 CbcEncrypt : 1;\r
UINT8 CbcDecrypt : 1;\r
} Services;\r
} Aes;\r
union {\r
struct {\r
- UINT8 GetContextSize : 1;\r
- UINT8 Init : 1;\r
- UINT8 Encrypt : 1;\r
- UINT8 Decrypt : 1;\r
- UINT8 Reset : 1;\r
+ UINT8 GetContextSize : 1; // Deprecated\r
+ UINT8 Init : 1; // Deprecated\r
+ UINT8 Encrypt : 1; // Deprecated\r
+ UINT8 Decrypt : 1; // Deprecated\r
+ UINT8 Reset : 1; // Deprecated\r
} Services;\r
- UINT32 Family;\r
+ UINT32 Family; // Deprecated\r
} Arc4;\r
union {\r
struct {\r
} Sm3;\r
union {\r
struct {\r
- UINT8 Sha256ExtractAndExpand;\r
+ UINT8 Sha256ExtractAndExpand : 1;\r
+ UINT8 Sha256Extract : 1;\r
+ UINT8 Sha256Expand : 1;\r
+ UINT8 Sha384ExtractAndExpand : 1;\r
+ UINT8 Sha384Extract : 1;\r
+ UINT8 Sha384Expand : 1;\r
} Services;\r
UINT32 Family;\r
} Hkdf;\r
UINT8 CtrlTrafficIn : 1;\r
UINT8 Read : 1;\r
UINT8 Write : 1;\r
+ UINT8 Shutdown : 1;\r
} Services;\r
UINT32 Family;\r
} Tls;\r
UINT8 HostPublicCert : 1;\r
UINT8 HostPrivateKey : 1;\r
UINT8 CertRevocationList : 1;\r
+ UINT8 HostPrivateKeyEx : 1;\r
+ UINT8 SignatureAlgoList : 1;\r
+ UINT8 EcCurve : 1;\r
} Services;\r
UINT32 Family;\r
} TlsSet;\r
UINT8 HostPublicCert : 1;\r
UINT8 HostPrivateKey : 1;\r
UINT8 CertRevocationList : 1;\r
+ UINT8 ExportKey : 1;\r
} Services;\r
UINT32 Family;\r
} TlsGet;\r
} Services;\r
UINT32 Family;\r
} ParallelHash;\r
+ union {\r
+ struct {\r
+ UINT8 Encrypt : 1;\r
+ UINT8 Decrypt : 1;\r
+ } Services;\r
+ UINT32 Family;\r
+ } AeadAesGcm;\r
+ union {\r
+ struct {\r
+ UINT8 Init : 1;\r
+ UINT8 FromBin : 1;\r
+ UINT8 ToBin : 1;\r
+ UINT8 Free : 1;\r
+ UINT8 Add : 1;\r
+ UINT8 Sub : 1;\r
+ UINT8 Mod : 1;\r
+ UINT8 ExpMod : 1;\r
+ UINT8 InverseMod : 1;\r
+ UINT8 Div : 1;\r
+ UINT8 MulMod : 1;\r
+ UINT8 Cmp : 1;\r
+ UINT8 Bits : 1;\r
+ UINT8 Bytes : 1;\r
+ UINT8 IsWord : 1;\r
+ UINT8 IsOdd : 1;\r
+ UINT8 Copy : 1;\r
+ UINT8 ValueOne : 1;\r
+ UINT8 RShift : 1;\r
+ UINT8 ConstTime : 1;\r
+ UINT8 SqrMod : 1;\r
+ UINT8 NewContext : 1;\r
+ UINT8 ContextFree : 1;\r
+ UINT8 SetUint : 1;\r
+ UINT8 AddMod : 1;\r
+ } Services;\r
+ UINT32 Family;\r
+ } Bn;\r
+ union {\r
+ struct {\r
+ UINT8 GroupInit : 1;\r
+ UINT8 GroupGetCurve : 1;\r
+ UINT8 GroupGetOrder : 1;\r
+ UINT8 GroupFree : 1;\r
+ UINT8 PointInit : 1;\r
+ UINT8 PointDeInit : 1;\r
+ UINT8 PointGetAffineCoordinates : 1;\r
+ UINT8 PointSetAffineCoordinates : 1;\r
+ UINT8 PointAdd : 1;\r
+ UINT8 PointMul : 1;\r
+ UINT8 PointInvert : 1;\r
+ UINT8 PointIsOnCurve : 1;\r
+ UINT8 PointIsAtInfinity : 1;\r
+ UINT8 PointEqual : 1;\r
+ UINT8 PointSetCompressedCoordinates : 1;\r
+ UINT8 NewByNid : 1;\r
+ UINT8 Free : 1;\r
+ UINT8 GenerateKey : 1;\r
+ UINT8 GetPubKey : 1;\r
+ UINT8 DhComputeKey : 1;\r
+ UINT8 GetPublicKeyFromX509 : 1;\r
+ UINT8 GetPrivateKeyFromPem : 1;\r
+ UINT8 DsaSign : 1;\r
+ UINT8 DsaVerify : 1;\r
+ } Services;\r
+ UINT32 Family;\r
+ } Ec;\r
} PCD_CRYPTO_SERVICE_FAMILY_ENABLE;\r
\r
#endif\r