1#include <vanetza/security/sha.hpp>
2#ifdef VANETZA_WITH_CRYPTOPP
3#include <cryptopp/sha.h>
5#ifdef VANETZA_WITH_OPENSSL
6#include <openssl/sha.h>
14Sha256Digest calculate_sha256_digest(
const uint8_t* data, std::size_t len)
17#if defined VANETZA_WITH_OPENSSL
18 static_assert(SHA256_DIGEST_LENGTH == digest.size(),
"size of OpenSSL SHA256_DIGEST_LENGTH does not match");
21 SHA256_Update(&ctx, data, len);
22 SHA256_Final(digest.data(), &ctx);
23#elif defined VANETZA_WITH_CRYPTOPP
24 static_assert(CryptoPP::SHA256::DIGESTSIZE == digest.size(),
"size of CryptoPP::SHA256 does not match digest");
25 CryptoPP::SHA256 hash;
26 hash.CalculateDigest(digest.data(), data, len);
28# error "no SHA256 implementation available"
33Sha384Digest calculate_sha384_digest(
const uint8_t* data, std::size_t len)
36#if defined VANETZA_WITH_OPENSSL
37 SHA384(data, len, digest.data());
38#elif defined VANETZA_WITH_CRYPTOPP
39 static_assert(CryptoPP::SHA384::DIGESTSIZE == digest.size(),
"size of CryptoPP::SHA384 does not match digest");
40 CryptoPP::SHA384 hash;
41 hash.CalculateDigest(digest.data(), data, len);
43# error "no SHA384 implementation available"