How to calculate a SHA-512 hash in C++ on Linux?
Have you checked OpenSSL. I myself have not used it but documentation says it supports it.
Here is list of few more implementations.
Example code
md = EVP_get_digestbyname("sha512"); EVP_MD_CTX_init(&mdctx); EVP_DigestInit_ex(&mdctx, md, NULL); EVP_DigestUpdate(&mdctx, mess1, strlen(mess1)); EVP_DigestUpdate(&mdctx, mess2, strlen(mess2)); EVP_DigestFinal_ex(&mdctx, md_value, &md_len); EVP_MD_CTX_cleanup(&mdctx);
Check this code. It is fully portable and does not need any additional configurations. Only STL would suffice. You'll just need to declare
#include "sha512.hh"
and then use the functions
sw::sha512::calculate("SHA512 of std::string") // hash of a string, orsw::sha512::file(path) // hash of a file specified by its path, orsw::sha512::calculate(&data, sizeof(data)) // hash of any block of data
whenever you need them. Their return value is std::string