nil::crypto3::block::modes::eax< BlockCipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator > Struct Template Reference

Interface for AEAD (Authenticated Encryption with Associated Data) modes. These modes provide both encryption and message authentication, and can authenticate additional per-message data which is not included in the ciphertext (for instance a sequence number). More...

#include <eax.hpp>

+ Collaboration diagram for nil::crypto3::block::modes::eax< BlockCipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >:

Classes

struct  bind
 

Public Types

typedef BlockCipher cipher_type
 
typedef detail::eax_decryption_policy< cipher_type, padding_type, TagBits, message_authentication_code_type, stream_cipher_type, Allocator > decryption_policy
 
typedef detail::eax_encryption_policy< cipher_type, padding_type, TagBits, message_authentication_code_type, stream_cipher_type, Allocator > encryption_policy
 
typedef MessageAuthenticationCode message_authentication_code_type
 
typedef Padding< BlockCipher > padding_type
 
typedef StreamCipher stream_cipher_type
 

Detailed Description

template<typename BlockCipher, template< typename > class Padding, std::size_t TagBits = BlockCipher::block_bits, typename MessageAuthenticationCode = mac::cmac<BlockCipher>, typename StreamCipher = stream::ctr<BlockCipher>, template< typename > class Allocator = std::allocator>
struct nil::crypto3::block::modes::eax< BlockCipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >

Interface for AEAD (Authenticated Encryption with Associated Data) modes. These modes provide both encryption and message authentication, and can authenticate additional per-message data which is not included in the ciphertext (for instance a sequence number).

Template Parameters
BlockCipher
Padding
CiphertextStealingMode

Member Typedef Documentation

◆ cipher_type

template<typename BlockCipher , template< typename > class Padding, std::size_t TagBits = BlockCipher::block_bits, typename MessageAuthenticationCode = mac::cmac<BlockCipher>, typename StreamCipher = stream::ctr<BlockCipher>, template< typename > class Allocator = std::allocator>
typedef BlockCipher nil::crypto3::block::modes::eax< BlockCipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::cipher_type

◆ decryption_policy

template<typename BlockCipher , template< typename > class Padding, std::size_t TagBits = BlockCipher::block_bits, typename MessageAuthenticationCode = mac::cmac<BlockCipher>, typename StreamCipher = stream::ctr<BlockCipher>, template< typename > class Allocator = std::allocator>
typedef detail::eax_decryption_policy<cipher_type, padding_type, TagBits, message_authentication_code_type, stream_cipher_type, Allocator> nil::crypto3::block::modes::eax< BlockCipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::decryption_policy

◆ encryption_policy

template<typename BlockCipher , template< typename > class Padding, std::size_t TagBits = BlockCipher::block_bits, typename MessageAuthenticationCode = mac::cmac<BlockCipher>, typename StreamCipher = stream::ctr<BlockCipher>, template< typename > class Allocator = std::allocator>
typedef detail::eax_encryption_policy<cipher_type, padding_type, TagBits, message_authentication_code_type, stream_cipher_type, Allocator> nil::crypto3::block::modes::eax< BlockCipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::encryption_policy

◆ message_authentication_code_type

template<typename BlockCipher , template< typename > class Padding, std::size_t TagBits = BlockCipher::block_bits, typename MessageAuthenticationCode = mac::cmac<BlockCipher>, typename StreamCipher = stream::ctr<BlockCipher>, template< typename > class Allocator = std::allocator>
typedef MessageAuthenticationCode nil::crypto3::block::modes::eax< BlockCipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::message_authentication_code_type

◆ padding_type

template<typename BlockCipher , template< typename > class Padding, std::size_t TagBits = BlockCipher::block_bits, typename MessageAuthenticationCode = mac::cmac<BlockCipher>, typename StreamCipher = stream::ctr<BlockCipher>, template< typename > class Allocator = std::allocator>
typedef Padding<BlockCipher> nil::crypto3::block::modes::eax< BlockCipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::padding_type

◆ stream_cipher_type

template<typename BlockCipher , template< typename > class Padding, std::size_t TagBits = BlockCipher::block_bits, typename MessageAuthenticationCode = mac::cmac<BlockCipher>, typename StreamCipher = stream::ctr<BlockCipher>, template< typename > class Allocator = std::allocator>
typedef StreamCipher nil::crypto3::block::modes::eax< BlockCipher, Padding, TagBits, MessageAuthenticationCode, StreamCipher, Allocator >::stream_cipher_type

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