nil::crypto3::hash::matyas_meyer_oseas_compressor< BlockCipher, CombineFunction, KeyConverterFunctor > Struct Template Reference

#include <matyas_meyer_oseas_compressor.hpp>

+ Collaboration diagram for nil::crypto3::hash::matyas_meyer_oseas_compressor< BlockCipher, CombineFunction, KeyConverterFunctor >:

Public Types

typedef BlockCipher block_cipher_type
 
typedef block_cipher_type::block_type block_type
 
typedef block_cipher_type::key_type key_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 key_bits = block_cipher_type::key_bits
 
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, typename KeyConverterFunctor>
struct nil::crypto3::hash::matyas_meyer_oseas_compressor< BlockCipher, CombineFunction, KeyConverterFunctor >

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

https://en.wikipedia.org/wiki/One-way_compression_function#Matyas–Meyer–Oseas

Member Typedef Documentation

◆ block_cipher_type

template<typename BlockCipher , typename CombineFunction , typename KeyConverterFunctor >
typedef BlockCipher nil::crypto3::hash::matyas_meyer_oseas_compressor< BlockCipher, CombineFunction, KeyConverterFunctor >::block_cipher_type

◆ block_type

template<typename BlockCipher , typename CombineFunction , typename KeyConverterFunctor >
typedef block_cipher_type::block_type nil::crypto3::hash::matyas_meyer_oseas_compressor< BlockCipher, CombineFunction, KeyConverterFunctor >::block_type

◆ key_type

template<typename BlockCipher , typename CombineFunction , typename KeyConverterFunctor >
typedef block_cipher_type::key_type nil::crypto3::hash::matyas_meyer_oseas_compressor< BlockCipher, CombineFunction, KeyConverterFunctor >::key_type

◆ state_type

template<typename BlockCipher , typename CombineFunction , typename KeyConverterFunctor >
typedef block_cipher_type::block_type nil::crypto3::hash::matyas_meyer_oseas_compressor< BlockCipher, CombineFunction, KeyConverterFunctor >::state_type

◆ word_type

template<typename BlockCipher , typename CombineFunction , typename KeyConverterFunctor >
typedef block_cipher_type::word_type nil::crypto3::hash::matyas_meyer_oseas_compressor< BlockCipher, CombineFunction, KeyConverterFunctor >::word_type

Member Function Documentation

◆ process_block()

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

Member Data Documentation

◆ block_bits

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

◆ block_words

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

◆ key_bits

template<typename BlockCipher , typename CombineFunction , typename KeyConverterFunctor >
constexpr static const std::size_t nil::crypto3::hash::matyas_meyer_oseas_compressor< BlockCipher, CombineFunction, KeyConverterFunctor >::key_bits = block_cipher_type::key_bits
staticconstexpr

◆ state_bits

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

◆ state_words

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

◆ word_bits

template<typename BlockCipher , typename CombineFunction , typename KeyConverterFunctor >
constexpr static const std::size_t nil::crypto3::hash::matyas_meyer_oseas_compressor< BlockCipher, CombineFunction, KeyConverterFunctor >::word_bits = block_cipher_type::word_bits
staticconstexpr

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