Hi Mike,

It is better to not compile the deprecated function, i.e. disable the function 
at build time. Is there another way to disable the function at build time 
except the #if statement?

Thanks,
Zhichao

> -----Original Message-----
> From: Kinney, Michael D
> Sent: Friday, March 27, 2020 10:04 AM
> To: devel@edk2.groups.io; Gao, Zhichao <zhichao....@intel.com>; Kinney,
> Michael D <michael.d.kin...@intel.com>
> Cc: Wang, Jian J <jian.j.w...@intel.com>; Lu, XiaoyuX <xiaoyux...@intel.com>
> Subject: RE: [edk2-devel] [PATCH 8/8] CryptoPkg/BaseCryptLib: Use Pcd to
> control the SHA1 enablement
> 
> We should not use #if statements in C code.
> 
> Also, we should not be changing the layout of the structure based on a PCD
> feature flag.
> 
> I agree we need to ability to disable the use of some Crypto services, but we
> need to decide what behavior we want at build time and boot time if there is
> code that uses a disabled service.
> 
> Mike
> 
> 
> > -----Original Message-----
> > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Gao,
> > Zhichao
> > Sent: Thursday, March 26, 2020 6:56 PM
> > To: devel@edk2.groups.io
> > Cc: Wang, Jian J <jian.j.w...@intel.com>; Lu, XiaoyuX
> > <xiaoyux...@intel.com>
> > Subject: [edk2-devel] [PATCH 8/8] CryptoPkg/BaseCryptLib:
> > Use Pcd to control the SHA1 enablement
> >
> > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1682
> >
> > Md5 and SHA1 is not secure any longer but uefi spec need to keep them
> > for backwards compatibility.
> > Use pcd PcdSHA1Enable to control the SHA1 function enablement.
> > When disable the SHA1 functions would not be complied.
> >
> > Cc: Jian J Wang <jian.j.w...@intel.com>
> > Cc: Xiaoyu Lu <xiaoyux...@intel.com>
> > Signed-off-by: Zhichao Gao <zhichao....@intel.com>
> > ---
> >  CryptoPkg/Driver/Crypto.c                            |
> > 8 ++++++++
> >  CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf      |
> > 1 +
> >  CryptoPkg/Library/BaseCryptLib/Hmac/CryptHmacSha1.c  |
> > 3 +++
> >  .../Library/BaseCryptLib/Hmac/CryptHmacSha1Null.c    |
> > 3 +++
> >  CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf       |
> > 1 +
> >  CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs5Pbkdf2.c |
> > 3 +++
> >  CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaBasic.c    |
> > 2 ++
> >  CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaExt.c      |
> > 2 ++
> >  CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf   |
> > 1 +
> >  CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf       |
> > 1 +
> >  .../BaseCryptLibNull/Hmac/CryptHmacSha1Null.c        |
> > 4 +++-
> >  .../Library/BaseCryptLibOnProtocolPpi/CryptLib.c     |
> > 4 ++++
> >  CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.c    |
> > 12 ++++++++++++
> >  CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.inf  |
> > 1 +
> >  CryptoPkg/Private/Protocol/Crypto.h                  |
> > 9 ++++++++-
> >  15 files changed, 53 insertions(+), 2 deletions(-)
> >
> > diff --git a/CryptoPkg/Driver/Crypto.c b/CryptoPkg/Driver/Crypto.c
> > index b53da85bad..f7902205b3 100644
> > --- a/CryptoPkg/Driver/Crypto.c
> > +++ b/CryptoPkg/Driver/Crypto.c
> > @@ -266,6 +266,7 @@ CryptoServiceMd5HashAll (  }  #endif
> >
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >  /**
> >    Retrieves the size, in bytes, of the context buffer required for
> > SHA-1 hash operations.
> >
> > @@ -423,6 +424,7 @@ CryptoServiceSha1HashAll (  {
> >    return CALL_BASECRYPTLIB (Sha1.Services.HashAll, Sha1HashAll,
> > (Data, DataSize, HashValue), FALSE);  }
> > +#endif
> >
> >  /**
> >    Retrieves the size, in bytes, of the context buffer
> > required for SHA-256 hash operations.
> > @@ -1177,6 +1179,7 @@ CryptoServiceHmacMd5Final (
> >  }
> >  #endif
> >
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >  /**
> >    Allocates and initializes one HMAC_CTX context for
> > subsequent HMAC-SHA1 use.
> >
> > @@ -1327,6 +1330,7 @@ CryptoServiceHmacSha1Final (
> >  {
> >    return CALL_BASECRYPTLIB (HmacSha1.Services.Final,
> > HmacSha1Final, (HmacSha1Context, HmacValue), FALSE);
> >  }
> > +#endif
> >
> >  /**
> >    Allocates and initializes one HMAC_CTX context for
> > subsequent HMAC-SHA256 use.
> > @@ -3820,6 +3824,7 @@ const EDKII_CRYPTO_PROTOCOL
> > mEdkiiCrypto = {
> >    CryptoServiceHmacMd5Update,
> >    CryptoServiceHmacMd5Final,
> >  #endif
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >    /// HMAC SHA1
> >    CryptoServiceHmacSha1New,
> >    CryptoServiceHmacSha1Free,
> > @@ -3827,6 +3832,7 @@ const EDKII_CRYPTO_PROTOCOL
> > mEdkiiCrypto = {
> >    CryptoServiceHmacSha1Duplicate,
> >    CryptoServiceHmacSha1Update,
> >    CryptoServiceHmacSha1Final,
> > +#endif
> >    /// HMAC SHA256
> >    CryptoServiceHmacSha256New,
> >    CryptoServiceHmacSha256Free,
> > @@ -3877,6 +3883,7 @@ const EDKII_CRYPTO_PROTOCOL
> > mEdkiiCrypto = {
> >    CryptoServiceRsaPkcs1Verify,
> >    CryptoServiceRsaGetPrivateKeyFromPem,
> >    CryptoServiceRsaGetPublicKeyFromX509,
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >    /// Sha1
> >    CryptoServiceSha1GetContextSize,
> >    CryptoServiceSha1Init,
> > @@ -3884,6 +3891,7 @@ const EDKII_CRYPTO_PROTOCOL
> > mEdkiiCrypto = {
> >    CryptoServiceSha1Update,
> >    CryptoServiceSha1Final,
> >    CryptoServiceSha1HashAll,
> > +#endif
> >    /// Sha256
> >    CryptoServiceSha256GetContextSize,
> >    CryptoServiceSha256Init,
> > diff --git
> > a/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
> > b/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
> > index 5c65ef5892..9ffd98096c 100644
> > --- a/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
> > +++ b/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
> > @@ -85,6 +85,7 @@
> >
> >  [Pcd]
> >    gEfiCryptoPkgTokenSpaceGuid.PcdMD5Enable
> > +  gEfiCryptoPkgTokenSpaceGuid.PcdSHA1Enable
> >
> >  #
> >  # Remove these [BuildOptions] after this library is
> > cleaned up
> > diff --git
> > a/CryptoPkg/Library/BaseCryptLib/Hmac/CryptHmacSha1.c
> > b/CryptoPkg/Library/BaseCryptLib/Hmac/CryptHmacSha1.c
> > index 7593ca55b1..baba6b267c 100644
> > --- a/CryptoPkg/Library/BaseCryptLib/Hmac/CryptHmacSha1.c
> > +++ b/CryptoPkg/Library/BaseCryptLib/Hmac/CryptHmacSha1.c
> > @@ -6,6 +6,8 @@ SPDX-License-Identifier: BSD-2-Clause-
> > Patent
> >
> >  **/
> >
> > +#include <Library/PcdLib.h>
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >  #include "InternalCryptLib.h"
> >  #include <openssl/hmac.h>
> >
> > @@ -214,3 +216,4 @@ HmacSha1Final (
> >
> >    return TRUE;
> >  }
> > +#endif
> > diff --git
> > a/CryptoPkg/Library/BaseCryptLib/Hmac/CryptHmacSha1Null.c
> > b/CryptoPkg/Library/BaseCryptLib/Hmac/CryptHmacSha1Null.c
> > index e8c0f341b7..1314fa1a77 100644
> > ---
> > a/CryptoPkg/Library/BaseCryptLib/Hmac/CryptHmacSha1Null.c
> > +++
> > b/CryptoPkg/Library/BaseCryptLib/Hmac/CryptHmacSha1Null.c
> > @@ -6,6 +6,8 @@ SPDX-License-Identifier: BSD-2-Clause-
> > Patent
> >
> >  **/
> >
> > +#include <Library/PcdLib.h>
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >  #include "InternalCryptLib.h"
> >
> >  /**
> > @@ -137,3 +139,4 @@ HmacSha1Final (
> >    ASSERT (FALSE);
> >    return FALSE;
> >  }
> > +#endif
> > diff --git
> > a/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf
> > b/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf
> > index cebc74ccf2..b40e76f243 100644
> > --- a/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf
> > +++ b/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf
> > @@ -78,6 +78,7 @@
> >
> >  [Pcd]
> >    gEfiCryptoPkgTokenSpaceGuid.PcdMD5Enable
> > +  gEfiCryptoPkgTokenSpaceGuid.PcdSHA1Enable
> >
> >  #
> >  # Remove these [BuildOptions] after this library is
> > cleaned up
> > diff --git
> > a/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs5Pbkdf2.c
> > b/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs5Pbkdf2.c
> > index a89c1525c1..15e6bc2cb4 100644
> > ---
> > a/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs5Pbkdf2.c
> > +++
> > b/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs5Pbkdf2.c
> > @@ -7,6 +7,7 @@ SPDX-License-Identifier: BSD-2-Clause-
> > Patent
> >  **/
> >
> >  #include "InternalCryptLib.h"
> > +#include <Library/PcdLib.h>
> >  #include <openssl/evp.h>
> >  #include <openssl/hmac.h>
> >
> > @@ -68,9 +69,11 @@ Pkcs5HashPassword (
> >    // Make sure the digest algorithm is supported.
> >    //
> >    switch (DigestSize) {
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >    case SHA1_DIGEST_SIZE:
> >      HashAlg = EVP_sha1();
> >      break;
> > +#endif
> >    case SHA256_DIGEST_SIZE:
> >      HashAlg = EVP_sha256();
> >      break;
> > diff --git
> > a/CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaBasic.c
> > b/CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaBasic.c
> > index 31b78464d2..549ee1b933 100644
> > --- a/CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaBasic.c
> > +++ b/CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaBasic.c
> > @@ -298,9 +298,11 @@ RsaPkcs1Verify (
> >      break;
> >  #endif
> >
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >    case SHA1_DIGEST_SIZE:
> >      DigestType = NID_sha1;
> >      break;
> > +#endif
> >
> >    case SHA256_DIGEST_SIZE:
> >      DigestType = NID_sha256;
> > diff --git
> > a/CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaExt.c
> > b/CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaExt.c
> > index 1a50be1d78..60605e3486 100644
> > --- a/CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaExt.c
> > +++ b/CryptoPkg/Library/BaseCryptLib/Pk/CryptRsaExt.c
> > @@ -336,9 +336,11 @@ RsaPkcs1Sign (
> >      break;
> >  #endif
> >
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >    case SHA1_DIGEST_SIZE:
> >      DigestType = NID_sha1;
> >      break;
> > +#endif
> >
> >    case SHA256_DIGEST_SIZE:
> >      DigestType = NID_sha256;
> > diff --git
> > a/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
> > b/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
> > index 72d4cd03ab..b6c0be70f2 100644
> > --- a/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
> > +++ b/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
> > @@ -90,6 +90,7 @@
> >
> >  [Pcd]
> >    gEfiCryptoPkgTokenSpaceGuid.PcdMD5Enable
> > +  gEfiCryptoPkgTokenSpaceGuid.PcdSHA1Enable
> >
> >  #
> >  # Remove these [BuildOptions] after this library is
> > cleaned up
> > diff --git
> > a/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
> > b/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
> > index 21f104c916..7f678eee93 100644
> > --- a/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
> > +++ b/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
> > @@ -89,6 +89,7 @@
> >
> >  [Pcd]
> >    gEfiCryptoPkgTokenSpaceGuid.PcdMD5Enable
> > +  gEfiCryptoPkgTokenSpaceGuid.PcdSHA1Enable
> >
> >  #
> >  # Remove these [BuildOptions] after this library is
> > cleaned up
> > diff --git
> > a/CryptoPkg/Library/BaseCryptLibNull/Hmac/CryptHmacSha1Nu
> > ll.c
> > b/CryptoPkg/Library/BaseCryptLibNull/Hmac/CryptHmacSha1Nu
> > ll.c
> > index e8c0f341b7..3aac798188 100644
> > ---
> > a/CryptoPkg/Library/BaseCryptLibNull/Hmac/CryptHmacSha1Nu
> > ll.c
> > +++
> > b/CryptoPkg/Library/BaseCryptLibNull/Hmac/CryptHmacSha1Nu
> > ll.c
> > @@ -5,7 +5,8 @@ Copyright (c) 2012 - 2020, Intel
> > Corporation. All rights reserved.<BR>
> >  SPDX-License-Identifier: BSD-2-Clause-Patent
> >
> >  **/
> > -
> > +#include <Library/PcdLib.h>
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >  #include "InternalCryptLib.h"
> >
> >  /**
> > @@ -137,3 +138,4 @@ HmacSha1Final (
> >    ASSERT (FALSE);
> >    return FALSE;
> >  }
> > +#endif
> > diff --git
> > a/CryptoPkg/Library/BaseCryptLibOnProtocolPpi/CryptLib.c
> > b/CryptoPkg/Library/BaseCryptLibOnProtocolPpi/CryptLib.c
> > index cba1e4c8bf..8429fefc0b 100644
> > ---
> > a/CryptoPkg/Library/BaseCryptLibOnProtocolPpi/CryptLib.c
> > +++
> > b/CryptoPkg/Library/BaseCryptLibOnProtocolPpi/CryptLib.c
> > @@ -260,6 +260,7 @@ Md5HashAll (
> >  }
> >  #endif
> >
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >  /**
> >    Retrieves the size, in bytes, of the context buffer
> > required for SHA-1 hash operations.
> >
> > @@ -417,6 +418,7 @@ Sha1HashAll (
> >  {
> >    CALL_CRYPTO_SERVICE (Sha1HashAll, (Data, DataSize,
> > HashValue), FALSE);
> >  }
> > +#endif
> >
> >  /**
> >    Retrieves the size, in bytes, of the context buffer
> > required for SHA-256 hash operations.
> > @@ -1171,6 +1173,7 @@ HmacMd5Final (
> >  }
> >  #endif
> >
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >  /**
> >    Allocates and initializes one HMAC_CTX context for
> > subsequent HMAC-SHA1 use.
> >
> > @@ -1321,6 +1324,7 @@ HmacSha1Final (
> >  {
> >    CALL_CRYPTO_SERVICE (HmacSha1Final, (HmacSha1Context,
> > HmacValue), FALSE);
> >  }
> > +#endif
> >
> >  /**
> >    Allocates and initializes one HMAC_CTX context for
> > subsequent HMAC-SHA256 use.
> > diff --git
> > a/CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.c
> > b/CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.c
> > index f9796b2158..754d75aeb2 100644
> > --- a/CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.c
> > +++ b/CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.c
> > @@ -33,9 +33,11 @@ HashApiGetContextSize (
> >    )
> >  {
> >    switch (PcdGet32 (PcdHashApiLibPolicy)) {
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >      case HASH_ALG_SHA1:
> >        return Sha1GetContextSize ();
> >        break;
> > +#endif
> >
> >      case HASH_ALG_SHA256:
> >        return Sha256GetContextSize ();
> > @@ -75,9 +77,11 @@ HashApiInit (
> >    )
> >  {
> >    switch (PcdGet32 (PcdHashApiLibPolicy)) {
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >      case HASH_ALG_SHA1:
> >        return Sha1Init (HashContext);
> >        break;
> > +#endif
> >
> >      case HASH_ALG_SHA256:
> >        return Sha256Init (HashContext);
> > @@ -119,9 +123,11 @@ HashApiDuplicate (
> >    )
> >  {
> >    switch (PcdGet32 (PcdHashApiLibPolicy)) {
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >      case HASH_ALG_SHA1:
> >        return Sha1Duplicate (HashContext,
> > NewHashContext);
> >        break;
> > +#endif
> >
> >      case HASH_ALG_SHA256:
> >        return Sha256Duplicate (HashContext,
> > NewHashContext);
> > @@ -165,9 +171,11 @@ HashApiUpdate (
> >    )
> >  {
> >    switch (PcdGet32 (PcdHashApiLibPolicy)) {
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >      case HASH_ALG_SHA1:
> >        return Sha1Update (HashContext, DataToHash,
> > DataToHashLen);
> >        break;
> > +#endif
> >
> >      case HASH_ALG_SHA256:
> >        return Sha256Update (HashContext, DataToHash,
> > DataToHashLen);
> > @@ -209,9 +217,11 @@ HashApiFinal (
> >    )
> >  {
> >    switch (PcdGet32 (PcdHashApiLibPolicy)) {
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >      case HASH_ALG_SHA1:
> >        return Sha1Final (HashContext, Digest);
> >        break;
> > +#endif
> >
> >      case HASH_ALG_SHA256:
> >        return Sha256Final (HashContext, Digest);
> > @@ -255,9 +265,11 @@ HashApiHashAll (
> >    )
> >  {
> >    switch (PcdGet32 (PcdHashApiLibPolicy)) {
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >      case HASH_ALG_SHA1:
> >        return Sha1HashAll (DataToHash, DataToHashLen,
> > Digest);
> >        break;
> > +#endif
> >
> >      case HASH_ALG_SHA256:
> >        return Sha256HashAll (DataToHash, DataToHashLen,
> > Digest);
> > diff --git
> > a/CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.inf
> > b/CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.inf
> > index b4d8675ddd..29f7d7abfd 100644
> > --- a/CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.inf
> > +++ b/CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.inf
> > @@ -42,3 +42,4 @@
> >
> >  [Pcd]
> >    gEfiCryptoPkgTokenSpaceGuid.PcdHashApiLibPolicy    ##
> > CONSUMES
> > +  gEfiCryptoPkgTokenSpaceGuid.PcdSHA1Enable          ##
> > CONSUMES
> > diff --git a/CryptoPkg/Private/Protocol/Crypto.h
> > b/CryptoPkg/Private/Protocol/Crypto.h
> > index 527318dc23..3f8c5751a7 100644
> > --- a/CryptoPkg/Private/Protocol/Crypto.h
> > +++ b/CryptoPkg/Private/Protocol/Crypto.h
> > @@ -179,6 +179,7 @@ BOOLEAN
> >    );
> >  #endif
> >
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >  /**
> >    Allocates and initializes one HMAC_CTX context for
> > subsequent HMAC-SHA1 use.
> >
> > @@ -315,7 +316,7 @@ BOOLEAN
> >    IN OUT  VOID   *HmacSha1Context,
> >    OUT     UINT8  *HmacValue
> >    );
> > -
> > +#endif
> >
> >  /**
> >    Allocates and initializes one HMAC_CTX context for
> > subsequent HMAC-SHA256 use.
> > @@ -1537,6 +1538,7 @@ BOOLEAN
> >  // SHA
> >  //----------------------------------------
> >
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >  /**
> >    Retrieves the size, in bytes, of the context buffer
> > required for SHA-1 hash operations.
> >
> > @@ -1676,6 +1678,7 @@ BOOLEAN
> >    IN   UINTN       DataSize,
> >    OUT  UINT8       *HashValue
> >    );
> > +#endif
> >
> >  /**
> >    Retrieves the size, in bytes, of the context buffer
> > required for SHA-256 hash operations.
> > @@ -3453,6 +3456,7 @@ struct _EDKII_CRYPTO_PROTOCOL {
> >    EDKII_CRYPTO_HMAC_MD5_UPDATE
> > HmacMd5Update;
> >    EDKII_CRYPTO_HMAC_MD5_FINAL
> > HmacMd5Final;
> >  #endif
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >    /// HMAC SHA1
> >    EDKII_CRYPTO_HMAC_SHA1_NEW
> > HmacSha1New;
> >    EDKII_CRYPTO_HMAC_SHA1_FREE
> > HmacSha1Free;
> > @@ -3460,6 +3464,7 @@ struct _EDKII_CRYPTO_PROTOCOL {
> >    EDKII_CRYPTO_HMAC_SHA1_DUPLICATE
> > HmacSha1Duplicate;
> >    EDKII_CRYPTO_HMAC_SHA1_UPDATE
> > HmacSha1Update;
> >    EDKII_CRYPTO_HMAC_SHA1_FINAL
> > HmacSha1Final;
> > +#endif
> >    /// HMAC SHA256
> >    EDKII_CRYPTO_HMAC_SHA256_NEW
> > HmacSha256New;
> >    EDKII_CRYPTO_HMAC_SHA256_FREE
> > HmacSha256Free;
> > @@ -3510,6 +3515,7 @@ struct _EDKII_CRYPTO_PROTOCOL {
> >    EDKII_CRYPTO_RSA_PKCS1_VERIFY
> > RsaPkcs1Verify;
> >    EDKII_CRYPTO_RSA_GET_PRIVATE_KEY_FROM_PEM
> > RsaGetPrivateKeyFromPem;
> >    EDKII_CRYPTO_RSA_GET_PUBLIC_KEY_FROM_X509
> > RsaGetPublicKeyFromX509;
> > +#if (FixedPcdGetBool (PcdSHA1Enable))
> >    /// Sha1
> >    EDKII_CRYPTO_SHA1_GET_CONTEXT_SIZE
> > Sha1GetContextSize;
> >    EDKII_CRYPTO_SHA1_INIT
> > Sha1Init;
> > @@ -3517,6 +3523,7 @@ struct _EDKII_CRYPTO_PROTOCOL {
> >    EDKII_CRYPTO_SHA1_UPDATE
> > Sha1Update;
> >    EDKII_CRYPTO_SHA1_FINAL
> > Sha1Final;
> >    EDKII_CRYPTO_SHA1_HASH_ALL
> > Sha1HashAll;
> > +#endif
> >    /// Sha256
> >    EDKII_CRYPTO_SHA256_GET_CONTEXT_SIZE
> > Sha256GetContextSize;
> >    EDKII_CRYPTO_SHA256_INIT
> > Sha256Init;
> > --
> > 2.21.0.windows.1
> >
> >
> > 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#56457): https://edk2.groups.io/g/devel/message/56457
Mute This Topic: https://groups.io/mt/72579470/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to