20#include <xrpl/basics/hardened_hash.h> 
   21#include <xrpl/beast/unit_test.h> 
   43    template <
class Hasher>
 
 
   63    template <
class Hasher>
 
 
   97template <std::
size_t Bits, 
class UInt = std::u
int64_t>
 
  103        "UInt must be an unsigned integral type");
 
  106        Bits % (8 * 
sizeof(UInt)) == 0,
 
  107        "Bits must be a multiple of 8*sizeof(UInt)");
 
  110        Bits >= (8 * 
sizeof(UInt)),
 
  111        "Bits must be at least 8*sizeof(UInt)");
 
  146    template <
class Hasher>
 
 
  166#ifndef __INTELLISENSE__ 
  167static_assert(
sha256_t::bits == 256, 
"sha256_t must have 256 bits");
 
  188    template <
template <
class T> 
class U>
 
  194        check<U<signed char>>();
 
  195        check<U<unsigned char>>();
 
  201        check<U<unsigned short>>();
 
  203        check<U<unsigned int>>();
 
  205        check<U<long long>>();
 
  206        check<U<unsigned long>>();
 
  207        check<U<unsigned long long>>();
 
  210        check<U<long double>>();
 
 
  213    template <
template <
class T> 
class C>
 
  218            C<detail::test_user_type_member<std::string>> c;
 
  224            C<detail::test_user_type_free<std::string>> c;
 
 
  234        check_user_type<detail::test_user_type_member>();
 
  235        check_user_type<detail::test_user_type_free>();
 
 
  242        check_container<detail::test_hardened_unordered_set>();
 
  243        check_container<detail::test_hardened_unordered_map>();
 
  244        check_container<detail::test_hardened_unordered_multiset>();
 
  245        check_container<detail::test_hardened_unordered_multimap>();
 
 
 
void pass()
Record a successful test condition.
 
testcase_t testcase
Memberspace for declaring test cases.
 
friend void hash_append(Hasher &h, test_user_type_free const &a) noexcept
 
test_user_type_free(T const &t_=T())
 
friend void hash_append(Hasher &h, test_user_type_member const &a) noexcept
 
test_user_type_member(T const &t_=T())
 
void run() override
Runs the suite.
 
Seed functor once per construction.
 
static std::size_t const bytes
 
friend void hash_append(Hasher &h, unsigned_integer const &a) noexcept
 
void const * data() const noexcept
 
friend std::ostream & operator<<(std::ostream &s, unsigned_integer const &v)
 
std::array< UInt, size > m_vec
 
static unsigned_integer from_number(Int v)
 
static std::size_t const size
 
static std::size_t const bits
 
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.