diff --git a/src/server/shared/Cryptography/SHA1.cpp b/src/server/shared/Cryptography/SHA1.cpp index 87fdfd2718..5b454caea2 100644 --- a/src/server/shared/Cryptography/SHA1.cpp +++ b/src/server/shared/Cryptography/SHA1.cpp @@ -7,20 +7,19 @@ #include "BigNumber.h" #include -SHA1Hash::SHA1Hash() +SHA1Hash::SHA1Hash() : m_ctx(EVP_MD_CTX_new()) { - SHA1_Init(&mC); - memset(mDigest, 0, SHA_DIGEST_LENGTH * sizeof(uint8)); + EVP_DigestInit_ex(m_ctx, EVP_sha1(), NULL); } SHA1Hash::~SHA1Hash() { - SHA1_Init(&mC); + EVP_MD_CTX_free(m_ctx); } void SHA1Hash::UpdateData(const uint8 *dta, int len) { - SHA1_Update(&mC, dta, len); + EVP_DigestUpdate(m_ctx, dta, len); } void SHA1Hash::UpdateData(const std::string &str) @@ -45,11 +44,12 @@ void SHA1Hash::UpdateBigNumbers(BigNumber* bn0, ...) void SHA1Hash::Initialize() { - SHA1_Init(&mC); + EVP_DigestInit(m_ctx, EVP_sha1()); } void SHA1Hash::Finalize(void) { - SHA1_Final(mDigest, &mC); + uint32 length = SHA_DIGEST_LENGTH; + EVP_DigestFinal_ex(m_ctx, m_digest, &length); } diff --git a/src/server/shared/Cryptography/SHA1.h b/src/server/shared/Cryptography/SHA1.h index 009cb29cd1..507e6c312b 100644 --- a/src/server/shared/Cryptography/SHA1.h +++ b/src/server/shared/Cryptography/SHA1.h @@ -9,6 +9,7 @@ #include "Define.h" #include #include +#include class BigNumber; @@ -26,12 +27,12 @@ class SHA1Hash void Initialize(); void Finalize(); - uint8 *GetDigest(void) { return mDigest; }; + uint8 *GetDigest(void) { return m_digest; }; int32 GetLength(void) const { return SHA_DIGEST_LENGTH; }; private: - SHA_CTX mC; - uint8 mDigest[SHA_DIGEST_LENGTH]; + EVP_MD_CTX* m_ctx; + uint8 m_digest[SHA_DIGEST_LENGTH]; }; #endif