// ©AngelaMos | 2026 // SHA512Hasher.cpp #include "src/hash/SHA512Hasher.hpp" #include #include #include #include #include std::string SHA512Hasher::hash(std::string_view input) const { auto ctx = std::unique_ptr( EVP_MD_CTX_new(), EVP_MD_CTX_free); EVP_DigestInit_ex(ctx.get(), EVP_sha512(), nullptr); EVP_DigestUpdate(ctx.get(), input.data(), input.size()); std::array digest{}; unsigned int len = 0; EVP_DigestFinal_ex(ctx.get(), digest.data(), &len); std::ostringstream hex; hex << std::hex << std::setfill('0'); for (unsigned int i = 0; i < len; ++i) { hex << std::setw(2) << static_cast(digest[i]); } return hex.str(); }