GMAC. More...

#include <gmac.hpp>

+ Collaboration diagram for nil::crypto3::mac::gmac< BlockCipher, Hash >:

Public Types

typedef policy_type::block_type block_type
 
typedef policy_type::cipher_type cipher_type
 
typedef policy_type::digest_type digest_type
 
typedef policy_type::hash_type hash_type
 
typedef policy_type::key_type key_type
 

Public Member Functions

void begin_message (const block_type &block)
 
void end_message (const block_type &block)
 
 gmac (const cipher_type &cipher, const hash_type &hash)
 
 gmac (const key_type &key)
 
void process_block (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_words = policy_type::key_words
 

Protected Member Functions

void schedule_key (const key_type &key)
 

Protected Attributes

cipher_type cipher
 
hash_type hash
 

Detailed Description

template<typename BlockCipher, typename Hash = hashes::ghash>
class nil::crypto3::mac::gmac< BlockCipher, Hash >

GMAC.

Template Parameters
BlockCipher
Hash

Member Typedef Documentation

◆ block_type

template<typename BlockCipher , typename Hash = hashes::ghash>
typedef policy_type::block_type nil::crypto3::mac::gmac< BlockCipher, Hash >::block_type

◆ cipher_type

template<typename BlockCipher , typename Hash = hashes::ghash>
typedef policy_type::cipher_type nil::crypto3::mac::gmac< BlockCipher, Hash >::cipher_type

◆ digest_type

template<typename BlockCipher , typename Hash = hashes::ghash>
typedef policy_type::digest_type nil::crypto3::mac::gmac< BlockCipher, Hash >::digest_type

◆ hash_type

template<typename BlockCipher , typename Hash = hashes::ghash>
typedef policy_type::hash_type nil::crypto3::mac::gmac< BlockCipher, Hash >::hash_type

◆ key_type

template<typename BlockCipher , typename Hash = hashes::ghash>
typedef policy_type::key_type nil::crypto3::mac::gmac< BlockCipher, Hash >::key_type

Constructor & Destructor Documentation

◆ gmac() [1/2]

template<typename BlockCipher , typename Hash = hashes::ghash>
nil::crypto3::mac::gmac< BlockCipher, Hash >::gmac ( const cipher_type cipher,
const hash_type hash 
)
inline

◆ gmac() [2/2]

template<typename BlockCipher , typename Hash = hashes::ghash>
nil::crypto3::mac::gmac< BlockCipher, Hash >::gmac ( const key_type key)
inline

Member Function Documentation

◆ begin_message()

template<typename BlockCipher , typename Hash = hashes::ghash>
void nil::crypto3::mac::gmac< BlockCipher, Hash >::begin_message ( const block_type block)
inline

◆ end_message()

template<typename BlockCipher , typename Hash = hashes::ghash>
void nil::crypto3::mac::gmac< BlockCipher, Hash >::end_message ( const block_type block)
inline

◆ process_block()

template<typename BlockCipher , typename Hash = hashes::ghash>
void nil::crypto3::mac::gmac< BlockCipher, Hash >::process_block ( const block_type block)
inline

◆ schedule_key()

template<typename BlockCipher , typename Hash = hashes::ghash>
void nil::crypto3::mac::gmac< BlockCipher, Hash >::schedule_key ( const key_type key)
inlineprotected

Member Data Documentation

◆ block_bits

template<typename BlockCipher , typename Hash = hashes::ghash>
constexpr static const std::size_t nil::crypto3::mac::gmac< BlockCipher, Hash >::block_bits = policy_type::block_bits
staticconstexpr

◆ block_words

template<typename BlockCipher , typename Hash = hashes::ghash>
constexpr static const std::size_t nil::crypto3::mac::gmac< BlockCipher, Hash >::block_words = policy_type::block_words
staticconstexpr

◆ cipher

template<typename BlockCipher , typename Hash = hashes::ghash>
cipher_type nil::crypto3::mac::gmac< BlockCipher, Hash >::cipher
protected

◆ digest_bits

template<typename BlockCipher , typename Hash = hashes::ghash>
constexpr static const std::size_t nil::crypto3::mac::gmac< BlockCipher, Hash >::digest_bits = policy_type::digest_bits
staticconstexpr

◆ hash

template<typename BlockCipher , typename Hash = hashes::ghash>
hash_type nil::crypto3::mac::gmac< BlockCipher, Hash >::hash
protected

◆ key_bits

template<typename BlockCipher , typename Hash = hashes::ghash>
constexpr static const std::size_t nil::crypto3::mac::gmac< BlockCipher, Hash >::key_bits = policy_type::key_bits
staticconstexpr

◆ key_words

template<typename BlockCipher , typename Hash = hashes::ghash>
constexpr static const std::size_t nil::crypto3::mac::gmac< BlockCipher, Hash >::key_words = policy_type::key_words
staticconstexpr

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