nil::crypto3::hashes::davies_meyer_compressor< BlockCipher, CombineFunction > Struct Template Reference

#include <davies_meyer_compressor.hpp>

+ Collaboration diagram for nil::crypto3::hashes::davies_meyer_compressor< BlockCipher, CombineFunction >:

Public Types

typedef BlockCipher block_cipher_type
 
typedef block_cipher_type::key_type block_type
 
typedef block_cipher_type::block_type state_type
 
typedef block_cipher_type::word_type word_type
 

Static Public Member Functions

static void process_block (state_type &state, const block_type &block)
 

Static Public Attributes

constexpr static const std::size_t block_bits = block_cipher_type::key_bits
 
constexpr static const std::size_t block_words = block_cipher_type::key_words
 
constexpr static const std::size_t state_bits = block_cipher_type::block_bits
 
constexpr static const std::size_t state_words = block_cipher_type::block_words
 
constexpr static const std::size_t word_bits = block_cipher_type::word_bits
 

Detailed Description

template<typename BlockCipher, typename CombineFunction>
struct nil::crypto3::hashes::davies_meyer_compressor< BlockCipher, CombineFunction >

Template Parameters
BlockCipher
CombineFunctionThe Davies-Meyer construction turns a block cipher into a one-way compression function

http://en.wikipedia.org/wiki/One-way_compression_function#Davies-Meyer

Member Typedef Documentation

◆ block_cipher_type

template<typename BlockCipher , typename CombineFunction >
typedef BlockCipher nil::crypto3::hashes::davies_meyer_compressor< BlockCipher, CombineFunction >::block_cipher_type

◆ block_type

template<typename BlockCipher , typename CombineFunction >
typedef block_cipher_type::key_type nil::crypto3::hashes::davies_meyer_compressor< BlockCipher, CombineFunction >::block_type

◆ state_type

template<typename BlockCipher , typename CombineFunction >
typedef block_cipher_type::block_type nil::crypto3::hashes::davies_meyer_compressor< BlockCipher, CombineFunction >::state_type

◆ word_type

template<typename BlockCipher , typename CombineFunction >
typedef block_cipher_type::word_type nil::crypto3::hashes::davies_meyer_compressor< BlockCipher, CombineFunction >::word_type

Member Function Documentation

◆ process_block()

template<typename BlockCipher , typename CombineFunction >
static void nil::crypto3::hashes::davies_meyer_compressor< BlockCipher, CombineFunction >::process_block ( state_type state,
const block_type block 
)
inlinestatic

Member Data Documentation

◆ block_bits

template<typename BlockCipher , typename CombineFunction >
constexpr static const std::size_t nil::crypto3::hashes::davies_meyer_compressor< BlockCipher, CombineFunction >::block_bits = block_cipher_type::key_bits
staticconstexpr

◆ block_words

template<typename BlockCipher , typename CombineFunction >
constexpr static const std::size_t nil::crypto3::hashes::davies_meyer_compressor< BlockCipher, CombineFunction >::block_words = block_cipher_type::key_words
staticconstexpr

◆ state_bits

template<typename BlockCipher , typename CombineFunction >
constexpr static const std::size_t nil::crypto3::hashes::davies_meyer_compressor< BlockCipher, CombineFunction >::state_bits = block_cipher_type::block_bits
staticconstexpr

◆ state_words

template<typename BlockCipher , typename CombineFunction >
constexpr static const std::size_t nil::crypto3::hashes::davies_meyer_compressor< BlockCipher, CombineFunction >::state_words = block_cipher_type::block_words
staticconstexpr

◆ word_bits

template<typename BlockCipher , typename CombineFunction >
constexpr static const std::size_t nil::crypto3::hashes::davies_meyer_compressor< BlockCipher, CombineFunction >::word_bits = block_cipher_type::word_bits
staticconstexpr

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