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

SIV encryption and decryption (. More...

#include <siv.hpp>

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

Classes

struct  bind
 

Public Types

template<typename T >
using allocator_type = Allocator< T >
 
typedef BlockCipher cipher_type
 
typedef detail::siv_decryption_policy< cipher_type, padding_type, TagBits, stream_cipher_type, mac_type, allocator_typedecryption_policy
 
typedef detail::siv_encryption_policy< cipher_type, padding_type, TagBits, stream_cipher_type, mac_type, allocator_typeencryption_policy
 
typedef MessageAuthenticationCode mac_type
 
typedef Padding< BlockCipher > padding_type
 
typedef StreamCipher stream_cipher_type
 

Detailed Description

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

SIV encryption and decryption (.

See also
RFC 5297)
Template Parameters
BlockCipher
Padding
StreamCipher
MessageAuthenticationCode

Member Typedef Documentation

◆ allocator_type

template<typename BlockCipher , template< typename > class Padding, std::size_t TagBits = 16 * CHAR_BIT, typename StreamCipher = stream::ctr<BlockCipher>, typename MessageAuthenticationCode = mac::cmac<BlockCipher>, template< typename > class Allocator = std::allocator>
template<typename T >
using nil::crypto3::block::modes::siv< BlockCipher, Padding, TagBits, StreamCipher, MessageAuthenticationCode, Allocator >::allocator_type = Allocator<T>

◆ cipher_type

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

◆ decryption_policy

template<typename BlockCipher , template< typename > class Padding, std::size_t TagBits = 16 * CHAR_BIT, typename StreamCipher = stream::ctr<BlockCipher>, typename MessageAuthenticationCode = mac::cmac<BlockCipher>, template< typename > class Allocator = std::allocator>
typedef detail::siv_decryption_policy<cipher_type, padding_type, TagBits, stream_cipher_type, mac_type, allocator_type> nil::crypto3::block::modes::siv< BlockCipher, Padding, TagBits, StreamCipher, MessageAuthenticationCode, Allocator >::decryption_policy

◆ encryption_policy

template<typename BlockCipher , template< typename > class Padding, std::size_t TagBits = 16 * CHAR_BIT, typename StreamCipher = stream::ctr<BlockCipher>, typename MessageAuthenticationCode = mac::cmac<BlockCipher>, template< typename > class Allocator = std::allocator>
typedef detail::siv_encryption_policy<cipher_type, padding_type, TagBits, stream_cipher_type, mac_type, allocator_type> nil::crypto3::block::modes::siv< BlockCipher, Padding, TagBits, StreamCipher, MessageAuthenticationCode, Allocator >::encryption_policy

◆ mac_type

template<typename BlockCipher , template< typename > class Padding, std::size_t TagBits = 16 * CHAR_BIT, typename StreamCipher = stream::ctr<BlockCipher>, typename MessageAuthenticationCode = mac::cmac<BlockCipher>, template< typename > class Allocator = std::allocator>
typedef MessageAuthenticationCode nil::crypto3::block::modes::siv< BlockCipher, Padding, TagBits, StreamCipher, MessageAuthenticationCode, Allocator >::mac_type

◆ padding_type

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

◆ stream_cipher_type

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

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