20#ifndef RIPPLE_PROTOCOL_DIGEST_H_INCLUDED
21#define RIPPLE_PROTOCOL_DIGEST_H_INCLUDED
23#include <xrpl/basics/base_uint.h>
24#include <xrpl/crypto/secure_erase.h>
26#include <boost/endian/conversion.hpp>
50 static constexpr auto const endian = boost::endian::order::native;
73 static constexpr auto const endian = boost::endian::order::native;
96 static constexpr auto const endian = boost::endian::order::native;
141 static constexpr auto const endian = boost::endian::order::native;
156 rh(d0.data(), d0.size());
170template <
bool Secure>
177 static constexpr auto const endian = boost::endian::order::big;
196 return result_type::fromVoid(digest.data());
222template <
class... Args>
238template <
class... Args>
std::enable_if_t< is_contiguously_hashable< T, Hasher >::value > hash_append(Hasher &h, T const &t) noexcept
Logically concatenate input data to a Hasher.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
sha512_half_hasher_s::result_type sha512Half_s(Args const &... args)
Returns the SHA512-Half of a series of objects.
void hash_append(Hasher &h, Slice const &v)
void erase(STObject &st, TypedField< U > const &f)
Remove a field in an STObject.
sha512_half_hasher::result_type sha512Half(Args const &... args)
Returns the SHA512-Half of a series of objects.
void secure_erase(void *dest, std::size_t bytes)
Attempts to clear the given blob of memory.
Returns the SHA512-Half digest of a message.
void erase(std::false_type)
void erase(std::true_type)
void operator()(void const *data, std::size_t size) noexcept
~basic_sha512_half_hasher()
Message digest functions used in the codebase.
static constexpr auto const endian
void operator()(void const *data, std::size_t size) noexcept
std::array< std::uint8_t, 20 > result_type
openssl_ripemd160_hasher()
std::array< std::uint8_t, 32 > result_type
Returns the RIPEMD-160 digest of the SHA256 hash of the message.
void operator()(void const *data, std::size_t size) noexcept