nil::crypto3::mac::ansi_x919_mac< BlockCipher > Class Template Reference

DES/3DES-based MAC from ANSI X9.19. More...

#include <x919_mac.hpp>

+ Collaboration diagram for nil::crypto3::mac::ansi_x919_mac< BlockCipher >:

Public Types

typedef policy_type::block_type block_type
 
typedef BlockCipher cipher_type
 
typedef policy_type::digest_type digest_type
 
typedef policy_type::key_schedule_type key_schedule_type
 
typedef policy_type::key_type key_type
 
typedef policy_type::word_type word_type
 

Public Member Functions

 ansi_x919_mac (const cipher_type &c_1, const cipher_type &c_2)
 
 ansi_x919_mac (const key_type &key)
 
void end_message (digest_type &state, const block_type &block)
 
void process (digest_type &state, const block_type &block)
 

Static Public Attributes

constexpr static const std::size_t block_bits = policy_type::block_bits
 
constexpr static const std::size_t block_words = policy_type::block_words
 
constexpr static const std::size_t digest_bits = policy_type::digest_bits
 
constexpr static const std::size_t key_bits = policy_type::key_bits
 
constexpr static const std::size_t key_schedule_bits = policy_type::key_schedule_bits
 
constexpr static const std::size_t key_schedule_words = policy_type::key_schedule_words
 
constexpr static const std::size_t key_words = policy_type::key_words
 
constexpr static const std::size_t word_bits = policy_type::word_bits
 

Protected Attributes

cipher_type c1
 
cipher_type c2
 

Detailed Description

template<typename BlockCipher = block::des>
class nil::crypto3::mac::ansi_x919_mac< BlockCipher >

DES/3DES-based MAC from ANSI X9.19.

Template Parameters
BlockCipher

Member Typedef Documentation

◆ block_type

template<typename BlockCipher = block::des>
typedef policy_type::block_type nil::crypto3::mac::ansi_x919_mac< BlockCipher >::block_type

◆ cipher_type

template<typename BlockCipher = block::des>
typedef BlockCipher nil::crypto3::mac::ansi_x919_mac< BlockCipher >::cipher_type

◆ digest_type

template<typename BlockCipher = block::des>
typedef policy_type::digest_type nil::crypto3::mac::ansi_x919_mac< BlockCipher >::digest_type

◆ key_schedule_type

template<typename BlockCipher = block::des>
typedef policy_type::key_schedule_type nil::crypto3::mac::ansi_x919_mac< BlockCipher >::key_schedule_type

◆ key_type

template<typename BlockCipher = block::des>
typedef policy_type::key_type nil::crypto3::mac::ansi_x919_mac< BlockCipher >::key_type

◆ word_type

template<typename BlockCipher = block::des>
typedef policy_type::word_type nil::crypto3::mac::ansi_x919_mac< BlockCipher >::word_type

Constructor & Destructor Documentation

◆ ansi_x919_mac() [1/2]

template<typename BlockCipher = block::des>
nil::crypto3::mac::ansi_x919_mac< BlockCipher >::ansi_x919_mac ( const key_type key)
inline

◆ ansi_x919_mac() [2/2]

template<typename BlockCipher = block::des>
nil::crypto3::mac::ansi_x919_mac< BlockCipher >::ansi_x919_mac ( const cipher_type c_1,
const cipher_type c_2 
)
inline

Member Function Documentation

◆ end_message()

template<typename BlockCipher = block::des>
void nil::crypto3::mac::ansi_x919_mac< BlockCipher >::end_message ( digest_type state,
const block_type block 
)
inline

◆ process()

template<typename BlockCipher = block::des>
void nil::crypto3::mac::ansi_x919_mac< BlockCipher >::process ( digest_type state,
const block_type block 
)
inline

Member Data Documentation

◆ block_bits

template<typename BlockCipher = block::des>
constexpr static const std::size_t nil::crypto3::mac::ansi_x919_mac< BlockCipher >::block_bits = policy_type::block_bits
staticconstexpr

◆ block_words

template<typename BlockCipher = block::des>
constexpr static const std::size_t nil::crypto3::mac::ansi_x919_mac< BlockCipher >::block_words = policy_type::block_words
staticconstexpr

◆ c1

template<typename BlockCipher = block::des>
cipher_type nil::crypto3::mac::ansi_x919_mac< BlockCipher >::c1
protected

◆ c2

template<typename BlockCipher = block::des>
cipher_type nil::crypto3::mac::ansi_x919_mac< BlockCipher >::c2
protected

◆ digest_bits

template<typename BlockCipher = block::des>
constexpr static const std::size_t nil::crypto3::mac::ansi_x919_mac< BlockCipher >::digest_bits = policy_type::digest_bits
staticconstexpr

◆ key_bits

template<typename BlockCipher = block::des>
constexpr static const std::size_t nil::crypto3::mac::ansi_x919_mac< BlockCipher >::key_bits = policy_type::key_bits
staticconstexpr

◆ key_schedule_bits

template<typename BlockCipher = block::des>
constexpr static const std::size_t nil::crypto3::mac::ansi_x919_mac< BlockCipher >::key_schedule_bits = policy_type::key_schedule_bits
staticconstexpr

◆ key_schedule_words

template<typename BlockCipher = block::des>
constexpr static const std::size_t nil::crypto3::mac::ansi_x919_mac< BlockCipher >::key_schedule_words = policy_type::key_schedule_words
staticconstexpr

◆ key_words

template<typename BlockCipher = block::des>
constexpr static const std::size_t nil::crypto3::mac::ansi_x919_mac< BlockCipher >::key_words = policy_type::key_words
staticconstexpr

◆ word_bits

template<typename BlockCipher = block::des>
constexpr static const std::size_t nil::crypto3::mac::ansi_x919_mac< BlockCipher >::word_bits = policy_type::word_bits
staticconstexpr

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