nil::crypto3::block::modes::detail::eax_policy< Cipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator > Struct Template Reference

#include <eax.hpp>

+ Collaboration diagram for nil::crypto3::block::modes::detail::eax_policy< Cipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >:

Public Types

typedef std::vector< boost::uint_t< CHAR_BIT >, Allocator< boost::uint_t< CHAR_BIT > > > associated_data_type
 
typedef cipher_type::block_type block_type
 
typedef Cipher cipher_type
 
typedef MessageAuthenticationCode mac_type
 
typedef std::vector< boost::uint_t< CHAR_BIT >, Allocator< boost::uint_t< CHAR_BIT > > > nonce_type
 
typedef Padding padding_type
 
typedef StreamCipher stream_cipher_type
 

Public Member Functions

 BOOST_STATIC_ASSERT (block_bits==128)
 
 BOOST_STATIC_ASSERT (tag_bits >=CHAR_BIT &&tag_bits<=mac_digest_bits)
 

Static Public Member Functions

static block_type begin_message (const cipher_type &cipher, const block_type &plaintext)
 
static void eax_prf (uint8_t tag, size_t block_size, mac_type &mac, const uint8_t in[], size_t length)
 

Static Public Attributes

constexpr static const std::size_t block_bits = cipher_type::block_bits
 
constexpr static const std::size_t block_words = cipher_type::block_words
 
constexpr static const std::size_t mac_digest_bits = mac_type::digest_bits
 
constexpr static const std::size_t tag_bits = TagBits
 

Member Typedef Documentation

◆ associated_data_type

template<typename Cipher , typename Padding , std::size_t TagBits, typename MessageAuthenticationCode , typename StreamCipher , template< typename > class Allocator = std::allocator>
typedef std::vector<boost::uint_t<CHAR_BIT>, Allocator<boost::uint_t<CHAR_BIT> > > nil::crypto3::block::modes::detail::eax_policy< Cipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::associated_data_type

◆ block_type

template<typename Cipher , typename Padding , std::size_t TagBits, typename MessageAuthenticationCode , typename StreamCipher , template< typename > class Allocator = std::allocator>
typedef cipher_type::block_type nil::crypto3::block::modes::detail::eax_policy< Cipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::block_type

◆ cipher_type

template<typename Cipher , typename Padding , std::size_t TagBits, typename MessageAuthenticationCode , typename StreamCipher , template< typename > class Allocator = std::allocator>
typedef Cipher nil::crypto3::block::modes::detail::eax_policy< Cipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::cipher_type

◆ mac_type

template<typename Cipher , typename Padding , std::size_t TagBits, typename MessageAuthenticationCode , typename StreamCipher , template< typename > class Allocator = std::allocator>
typedef MessageAuthenticationCode nil::crypto3::block::modes::detail::eax_policy< Cipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::mac_type

◆ nonce_type

template<typename Cipher , typename Padding , std::size_t TagBits, typename MessageAuthenticationCode , typename StreamCipher , template< typename > class Allocator = std::allocator>
typedef std::vector<boost::uint_t<CHAR_BIT>, Allocator<boost::uint_t<CHAR_BIT> > > nil::crypto3::block::modes::detail::eax_policy< Cipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::nonce_type

◆ padding_type

template<typename Cipher , typename Padding , std::size_t TagBits, typename MessageAuthenticationCode , typename StreamCipher , template< typename > class Allocator = std::allocator>
typedef Padding nil::crypto3::block::modes::detail::eax_policy< Cipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::padding_type

◆ stream_cipher_type

template<typename Cipher , typename Padding , std::size_t TagBits, typename MessageAuthenticationCode , typename StreamCipher , template< typename > class Allocator = std::allocator>
typedef StreamCipher nil::crypto3::block::modes::detail::eax_policy< Cipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::stream_cipher_type

Member Function Documentation

◆ begin_message()

template<typename Cipher , typename Padding , std::size_t TagBits, typename MessageAuthenticationCode , typename StreamCipher , template< typename > class Allocator = std::allocator>
static block_type nil::crypto3::block::modes::detail::eax_policy< Cipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::begin_message ( const cipher_type cipher,
const block_type plaintext 
)
inlinestatic

◆ BOOST_STATIC_ASSERT() [1/2]

template<typename Cipher , typename Padding , std::size_t TagBits, typename MessageAuthenticationCode , typename StreamCipher , template< typename > class Allocator = std::allocator>
nil::crypto3::block::modes::detail::eax_policy< Cipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::BOOST_STATIC_ASSERT ( block_bits  = =128)

◆ BOOST_STATIC_ASSERT() [2/2]

template<typename Cipher , typename Padding , std::size_t TagBits, typename MessageAuthenticationCode , typename StreamCipher , template< typename > class Allocator = std::allocator>
nil::crypto3::block::modes::detail::eax_policy< Cipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::BOOST_STATIC_ASSERT ( tag_bits >=CHAR_BIT &&tag_bits<=  mac_digest_bits)

◆ eax_prf()

template<typename Cipher , typename Padding , std::size_t TagBits, typename MessageAuthenticationCode , typename StreamCipher , template< typename > class Allocator = std::allocator>
static void nil::crypto3::block::modes::detail::eax_policy< Cipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::eax_prf ( uint8_t  tag,
size_t  block_size,
mac_type mac,
const uint8_t  in[],
size_t  length 
)
inlinestatic

Member Data Documentation

◆ block_bits

template<typename Cipher , typename Padding , std::size_t TagBits, typename MessageAuthenticationCode , typename StreamCipher , template< typename > class Allocator = std::allocator>
constexpr static const std::size_t nil::crypto3::block::modes::detail::eax_policy< Cipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::block_bits = cipher_type::block_bits
staticconstexpr

◆ block_words

template<typename Cipher , typename Padding , std::size_t TagBits, typename MessageAuthenticationCode , typename StreamCipher , template< typename > class Allocator = std::allocator>
constexpr static const std::size_t nil::crypto3::block::modes::detail::eax_policy< Cipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::block_words = cipher_type::block_words
staticconstexpr

◆ mac_digest_bits

template<typename Cipher , typename Padding , std::size_t TagBits, typename MessageAuthenticationCode , typename StreamCipher , template< typename > class Allocator = std::allocator>
constexpr static const std::size_t nil::crypto3::block::modes::detail::eax_policy< Cipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::mac_digest_bits = mac_type::digest_bits
staticconstexpr

◆ tag_bits

template<typename Cipher , typename Padding , std::size_t TagBits, typename MessageAuthenticationCode , typename StreamCipher , template< typename > class Allocator = std::allocator>
constexpr static const std::size_t nil::crypto3::block::modes::detail::eax_policy< Cipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::tag_bits = TagBits
staticconstexpr

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