diff --git a/src/SIGN/Hasher.cpp b/src/SIGN/Hasher.cpp index e1284f03d91d63786a6535baadaf01f92e1d3bb9..fcc9474b5c1b0ea746ee52ee6e0cee8a697f5d67 100644 --- a/src/SIGN/Hasher.cpp +++ b/src/SIGN/Hasher.cpp @@ -1,19 +1,18 @@ #include "Hasher.h" -#include <openssl/sha.h> +#include <openssl/evp.h> #include <sstream> #include <iomanip> - std::vector<unsigned char> SIGN::Hasher::sha256(const unsigned char* data, size_t length) { - SHA256_CTX context; - SHA256_Init(&context); - SHA256_Update(&context, data, length); - std::vector<unsigned char> buffer(SHA256_DIGEST_LENGTH); - SHA256_Final(buffer.data(), &context); + EVP_MD_CTX* context = EVP_MD_CTX_new(); + EVP_DigestInit_ex(context, EVP_sha256(), NULL); + EVP_DigestUpdate(context, data, length); + std::vector<unsigned char> buffer(EVP_MD_size(EVP_sha256())); + EVP_DigestFinal_ex(context, buffer.data(), NULL); + EVP_MD_CTX_free(context); return buffer; - } SIGN::Hasher::Hasher() @@ -37,7 +36,7 @@ void SIGN::Hasher::reset() size_t SIGN::Hasher::size(void) { - return SHA256_DIGEST_LENGTH; ; + return EVP_MD_size(EVP_sha256()); } std::string SIGN::Hasher::print(std::vector<unsigned char> bytes, bool uppercase)