nil::crypto3::accumulators::impl::hash_impl< Hash > Struct Template Reference

#include <hash.hpp>

+ Inheritance diagram for nil::crypto3::accumulators::impl::hash_impl< Hash >:
+ Collaboration diagram for nil::crypto3::accumulators::impl::hash_impl< Hash >:

Public Types

typedef hash_type::digest_type result_type
 

Public Member Functions

 hash_impl (boost::accumulators::dont_care)
 
template<typename ArgumentPack >
void operator() (const ArgumentPack &args)
 
result_type result (boost::accumulators::dont_care) const
 

Protected Types

typedef construction_type::block_type block_type
 
typedef hash_type::construction::type construction_type
 
typedef params_type::digest_endian endian_type
 
typedef Hash hash_type
 
typedef ::nil::crypto3::detail::injector< endian_type, word_bits, block_words, block_bitsinjector_type
 
typedef boost::uint_t< length_type_bits >::least length_type
 
typedef hash_type::construction::params_type params_type
 
typedef construction_type::word_type word_type
 

Protected Member Functions

 BOOST_STATIC_ASSERT (!length_bits||length_bits % word_bits==0)
 
void process (const block_type &value, std::size_t value_seen)
 
void process (const word_type &value, std::size_t value_seen)
 
void resolve_type (const block_type &value, std::size_t bits)
 
void resolve_type (const word_type &value, std::size_t bits)
 

Protected Attributes

block_type cache
 
construction_type construction
 
bool filled
 
std::size_t total_seen
 

Static Protected Attributes

constexpr static const std::size_t block_bits = construction_type::block_bits
 
constexpr static const std::size_t block_words = construction_type::block_words
 
constexpr static const std::size_t length_bits = params_type::length_bits
 
constexpr static const std::size_t length_type_bits
 
constexpr static const std::size_t length_words = length_bits / word_bits
 
constexpr static const std::size_t word_bits = construction_type::word_bits
 

Member Typedef Documentation

◆ block_type

template<typename Hash >
typedef construction_type::block_type nil::crypto3::accumulators::impl::hash_impl< Hash >::block_type
protected

◆ construction_type

template<typename Hash >
typedef hash_type::construction::type nil::crypto3::accumulators::impl::hash_impl< Hash >::construction_type
protected

◆ endian_type

template<typename Hash >
typedef params_type::digest_endian nil::crypto3::accumulators::impl::hash_impl< Hash >::endian_type
protected

◆ hash_type

template<typename Hash >
typedef Hash nil::crypto3::accumulators::impl::hash_impl< Hash >::hash_type
protected

◆ injector_type

◆ length_type

template<typename Hash >
typedef boost::uint_t<length_type_bits>::least nil::crypto3::accumulators::impl::hash_impl< Hash >::length_type
protected

◆ params_type

template<typename Hash >
typedef hash_type::construction::params_type nil::crypto3::accumulators::impl::hash_impl< Hash >::params_type
protected

◆ result_type

template<typename Hash >
typedef hash_type::digest_type nil::crypto3::accumulators::impl::hash_impl< Hash >::result_type

◆ word_type

template<typename Hash >
typedef construction_type::word_type nil::crypto3::accumulators::impl::hash_impl< Hash >::word_type
protected

Constructor & Destructor Documentation

◆ hash_impl()

template<typename Hash >
nil::crypto3::accumulators::impl::hash_impl< Hash >::hash_impl ( boost::accumulators::dont_care  )
inline

Member Function Documentation

◆ BOOST_STATIC_ASSERT()

template<typename Hash >
nil::crypto3::accumulators::impl::hash_impl< Hash >::BOOST_STATIC_ASSERT ( !length_bits||length_bits word_bits = =0)
protected

◆ operator()()

template<typename Hash >
template<typename ArgumentPack >
void nil::crypto3::accumulators::impl::hash_impl< Hash >::operator() ( const ArgumentPack &  args)
inline

◆ process() [1/2]

template<typename Hash >
void nil::crypto3::accumulators::impl::hash_impl< Hash >::process ( const block_type value,
std::size_t  value_seen 
)
inlineprotected

◆ process() [2/2]

template<typename Hash >
void nil::crypto3::accumulators::impl::hash_impl< Hash >::process ( const word_type value,
std::size_t  value_seen 
)
inlineprotected

◆ resolve_type() [1/2]

template<typename Hash >
void nil::crypto3::accumulators::impl::hash_impl< Hash >::resolve_type ( const block_type value,
std::size_t  bits 
)
inlineprotected

◆ resolve_type() [2/2]

template<typename Hash >
void nil::crypto3::accumulators::impl::hash_impl< Hash >::resolve_type ( const word_type value,
std::size_t  bits 
)
inlineprotected

◆ result()

template<typename Hash >
result_type nil::crypto3::accumulators::impl::hash_impl< Hash >::result ( boost::accumulators::dont_care  ) const
inline

Member Data Documentation

◆ block_bits

template<typename Hash >
constexpr static const std::size_t nil::crypto3::accumulators::impl::hash_impl< Hash >::block_bits = construction_type::block_bits
staticconstexprprotected

◆ block_words

template<typename Hash >
constexpr static const std::size_t nil::crypto3::accumulators::impl::hash_impl< Hash >::block_words = construction_type::block_words
staticconstexprprotected

◆ cache

template<typename Hash >
block_type nil::crypto3::accumulators::impl::hash_impl< Hash >::cache
protected

◆ construction

template<typename Hash >
construction_type nil::crypto3::accumulators::impl::hash_impl< Hash >::construction
protected

◆ filled

template<typename Hash >
bool nil::crypto3::accumulators::impl::hash_impl< Hash >::filled
protected

◆ length_bits

template<typename Hash >
constexpr static const std::size_t nil::crypto3::accumulators::impl::hash_impl< Hash >::length_bits = params_type::length_bits
staticconstexprprotected

◆ length_type_bits

template<typename Hash >
constexpr static const std::size_t nil::crypto3::accumulators::impl::hash_impl< Hash >::length_type_bits
staticconstexprprotected
Initial value:
length_bits > 64 ? 64 :
constexpr static const std::size_t word_bits
Definition: accumulators/hash.hpp:68
constexpr static const std::size_t length_bits
Definition: accumulators/hash.hpp:75

◆ length_words

template<typename Hash >
constexpr static const std::size_t nil::crypto3::accumulators::impl::hash_impl< Hash >::length_words = length_bits / word_bits
staticconstexprprotected

◆ total_seen

template<typename Hash >
std::size_t nil::crypto3::accumulators::impl::hash_impl< Hash >::total_seen
protected

◆ word_bits

template<typename Hash >
constexpr static const std::size_t nil::crypto3::accumulators::impl::hash_impl< Hash >::word_bits = construction_type::word_bits
staticconstexprprotected

The documentation for this struct was generated from the following file: