From a7b244253a579f7c6826dbf732342efab648bc9d Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Fri, 7 Jul 2023 21:47:55 +0200 Subject: [PATCH] Crypto/SHA256: moved away from deprecated OpenSSL methods --- src/common/Cryptography/SHA256.cpp | 15 +++++++++------ src/common/Cryptography/SHA256.h | 3 ++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/common/Cryptography/SHA256.cpp b/src/common/Cryptography/SHA256.cpp index 77421729a5..761d25d283 100644 --- a/src/common/Cryptography/SHA256.cpp +++ b/src/common/Cryptography/SHA256.cpp @@ -20,20 +20,21 @@ #include #include -SHA256Hash::SHA256Hash() +SHA256Hash::SHA256Hash() : _ctx(EVP_MD_CTX_create()) { - SHA256_Init(&mC); + EVP_DigestInit_ex(_ctx, EVP_sha256(), nullptr); memset(mDigest, 0, SHA256_DIGEST_LENGTH * sizeof(uint8)); } SHA256Hash::~SHA256Hash() { - SHA256_Init(&mC); + EVP_MD_CTX_destroy(_ctx); + _ctx = nullptr; } void SHA256Hash::UpdateData(const uint8 *dta, int len) { - SHA256_Update(&mC, dta, len); + EVP_DigestUpdate(_ctx, dta, len); } void SHA256Hash::UpdateData(const std::string &str) @@ -58,10 +59,12 @@ void SHA256Hash::UpdateBigNumbers(BigNumber* bn0, ...) void SHA256Hash::Initialize() { - SHA256_Init(&mC); + EVP_DigestInit_ex(_ctx, EVP_sha256(), nullptr); } void SHA256Hash::Finalize(void) { - SHA256_Final(mDigest, &mC); + uint32 length = SHA256_DIGEST_LENGTH; + EVP_DigestFinal_ex(_ctx, mDigest, &length); + ASSERT(length == SHA256_DIGEST_LENGTH); } diff --git a/src/common/Cryptography/SHA256.h b/src/common/Cryptography/SHA256.h index 9c7f9f0297..e0298d1052 100644 --- a/src/common/Cryptography/SHA256.h +++ b/src/common/Cryptography/SHA256.h @@ -21,6 +21,7 @@ #include "Define.h" #include #include +#include class BigNumber; @@ -42,7 +43,7 @@ class TC_COMMON_API SHA256Hash int GetLength(void) const { return SHA256_DIGEST_LENGTH; }; private: - SHA256_CTX mC; + EVP_MD_CTX* _ctx; uint8 mDigest[SHA256_DIGEST_LENGTH]; };