nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer > Class Template Reference

#include <sponge_construction.hpp>

+ Collaboration diagram for nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >:

Public Types

typedef compressor_functor::block_type block_type
 
typedef Compressor compressor_functor
 
typedef static_digest< digest_bitsdigest_type
 
typedef Params::digest_endian endian_type
 
typedef Finalizer finalizer_functor
 
typedef IV iv_generator
 
typedef Padding padding_functor
 
typedef compressor_functor::state_type state_type
 
typedef compressor_functor::word_type word_type
 

Public Member Functions

digest_type digest (const block_type &block=block_type(), std::size_t total_seen=std::size_t())
 
template<typename Integer = std::size_t>
sponge_constructionprocess_block (const block_type &block, Integer seen=Integer())
 
void reset ()
 
void reset (state_type const &s)
 
 sponge_construction ()
 
state_type const & state () const
 

Static Public Attributes

constexpr static const std::size_t block_bits = compressor_functor::block_bits
 
constexpr static const std::size_t block_words = compressor_functor::block_words
 
constexpr static const std::size_t digest_bits = Params::digest_bits
 
constexpr static const std::size_t digest_bytes = digest_bits / octet_bits
 
constexpr static const std::size_t digest_words = digest_bits / word_bits
 
constexpr static const std::size_t state_bits = compressor_functor::state_bits
 
constexpr static const std::size_t state_words = compressor_functor::state_words
 
constexpr static const std::size_t word_bits = compressor_functor::word_bits
 

Detailed Description

template<typename Params, typename IV, typename Compressor, typename Padding, typename Finalizer = detail::nop_finalizer>
class nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >

Template Parameters
DigestEndian
DigestBits
IV
Compressor
FinalizerThe Sponge construction builds a block hashes from a one-way compressor. As this version operated on the block level, it doesn't contain any padding or other strengthening. For a Wide Pipe construction, use a digest that will truncate the internal state.

Member Typedef Documentation

◆ block_type

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
typedef compressor_functor::block_type nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::block_type

◆ compressor_functor

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
typedef Compressor nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::compressor_functor

◆ digest_type

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
typedef static_digest<digest_bits> nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::digest_type

◆ endian_type

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
typedef Params::digest_endian nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::endian_type

◆ finalizer_functor

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
typedef Finalizer nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::finalizer_functor

◆ iv_generator

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
typedef IV nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::iv_generator

◆ padding_functor

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
typedef Padding nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::padding_functor

◆ state_type

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
typedef compressor_functor::state_type nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::state_type

◆ word_type

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
typedef compressor_functor::word_type nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::word_type

Constructor & Destructor Documentation

◆ sponge_construction()

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::sponge_construction ( )
inline

Member Function Documentation

◆ digest()

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
digest_type nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::digest ( const block_type block = block_type(),
std::size_t  total_seen = std::size_t() 
)
inline

◆ process_block()

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
template<typename Integer = std::size_t>
sponge_construction& nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::process_block ( const block_type block,
Integer  seen = Integer() 
)
inline

◆ reset() [1/2]

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
void nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::reset ( )
inline

◆ reset() [2/2]

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
void nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::reset ( state_type const &  s)
inline

◆ state()

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
state_type const& nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::state ( ) const
inline

Member Data Documentation

◆ block_bits

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
constexpr static const std::size_t nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::block_bits = compressor_functor::block_bits
staticconstexpr

◆ block_words

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
constexpr static const std::size_t nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::block_words = compressor_functor::block_words
staticconstexpr

◆ digest_bits

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
constexpr static const std::size_t nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::digest_bits = Params::digest_bits
staticconstexpr

◆ digest_bytes

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
constexpr static const std::size_t nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::digest_bytes = digest_bits / octet_bits
staticconstexpr

◆ digest_words

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
constexpr static const std::size_t nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::digest_words = digest_bits / word_bits
staticconstexpr

◆ state_bits

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
constexpr static const std::size_t nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::state_bits = compressor_functor::state_bits
staticconstexpr

◆ state_words

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
constexpr static const std::size_t nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::state_words = compressor_functor::state_words
staticconstexpr

◆ word_bits

template<typename Params , typename IV , typename Compressor , typename Padding , typename Finalizer = detail::nop_finalizer>
constexpr static const std::size_t nil::crypto3::hashes::sponge_construction< Params, IV, Compressor, Padding, Finalizer >::word_bits = compressor_functor::word_bits
staticconstexpr

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