diff --git a/CryptoPkg/Library/BaseCryptLib/Hash/CryptSha512.c b/CryptoPkg/Library/BaseCryptLib/Hash/CryptSha512.c index 2ab7188035e8..dee8f35c41ad 100644 --- a/CryptoPkg/Library/BaseCryptLib/Hash/CryptSha512.c +++ b/CryptoPkg/Library/BaseCryptLib/Hash/CryptSha512.c @@ -430,6 +430,8 @@ Sha512HashAll ( OUT UINT8 *HashValue ) { + SHA512_CTX Context; + // // Check input parameters. // @@ -444,9 +446,17 @@ Sha512HashAll ( // // OpenSSL SHA-512 Hash Computation. // - if (SHA512 (Data, DataSize, HashValue) == NULL) { + if (!SHA512_Init (&Context)) { + return FALSE; + } + + if (!SHA512_Update (&Context, Data, DataSize)) { return FALSE; - } else { - return TRUE; } + + if (!SHA512_Final (HashValue, &Context)) { + return FALSE; + } + + return TRUE; }