#include <siv.hpp>

+ Collaboration diagram for nil::crypto3::block::modes::detail::siv< Policy >:

Public Types

typedef policy_type::associated_data_type associated_data_type
 
typedef cipher_type::block_type block_type
 
typedef policy_type::cipher_type cipher_type
 
typedef policy_type::key_type key_type
 
typedef policy_type::mac_type mac_type
 
typedef policy_type::nonce_type nonce_type
 
typedef policy_type::padding_type padding_type
 
typedef policy_type::stream_cipher_type stream_cipher_type
 

Public Member Functions

block_type begin_message (const block_type &plaintext)
 
block_type end_message (const block_type &plaintext)
 
block_type process_block (const block_type &plaintext)
 
template<typename AssociatedDataContainer >
 siv (const key_type &key, const nonce_type &nonce, const AssociatedDataContainer &associated_data)
 
template<typename AssociatedDataContainer >
 siv (const stream_cipher_type &stream_cipher, const mac_type &mac, const nonce_type &nonce, const AssociatedDataContainer &associated_data)
 

Static Public Member Functions

static std::size_t required_output_size (std::size_t inputlen)
 

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 key_bits = policy_type::key_bits
 
constexpr static const std::size_t key_size = policy_type::key_size
 

Protected Member Functions

template<typename AssociatedDataContainer >
void schedule_associated_data (const AssociatedDataContainer &iad)
 

Protected Attributes

std::vector< associated_data_typead_macs
 
mac_type mac
 
nonce_type nonce
 
stream_cipher_type stream_cipher
 

Member Typedef Documentation

◆ associated_data_type

template<typename Policy >
typedef policy_type::associated_data_type nil::crypto3::block::modes::detail::siv< Policy >::associated_data_type

◆ block_type

template<typename Policy >
typedef cipher_type::block_type nil::crypto3::block::modes::detail::siv< Policy >::block_type

◆ cipher_type

template<typename Policy >
typedef policy_type::cipher_type nil::crypto3::block::modes::detail::siv< Policy >::cipher_type

◆ key_type

template<typename Policy >
typedef policy_type::key_type nil::crypto3::block::modes::detail::siv< Policy >::key_type

◆ mac_type

template<typename Policy >
typedef policy_type::mac_type nil::crypto3::block::modes::detail::siv< Policy >::mac_type

◆ nonce_type

template<typename Policy >
typedef policy_type::nonce_type nil::crypto3::block::modes::detail::siv< Policy >::nonce_type

◆ padding_type

template<typename Policy >
typedef policy_type::padding_type nil::crypto3::block::modes::detail::siv< Policy >::padding_type

◆ stream_cipher_type

template<typename Policy >
typedef policy_type::stream_cipher_type nil::crypto3::block::modes::detail::siv< Policy >::stream_cipher_type

Constructor & Destructor Documentation

◆ siv() [1/2]

template<typename Policy >
template<typename AssociatedDataContainer >
nil::crypto3::block::modes::detail::siv< Policy >::siv ( const stream_cipher_type stream_cipher,
const mac_type mac,
const nonce_type nonce,
const AssociatedDataContainer &  associated_data 
)
inline

◆ siv() [2/2]

template<typename Policy >
template<typename AssociatedDataContainer >
nil::crypto3::block::modes::detail::siv< Policy >::siv ( const key_type key,
const nonce_type nonce,
const AssociatedDataContainer &  associated_data 
)
inline

Member Function Documentation

◆ begin_message()

template<typename Policy >
block_type nil::crypto3::block::modes::detail::siv< Policy >::begin_message ( const block_type plaintext)
inline

◆ end_message()

template<typename Policy >
block_type nil::crypto3::block::modes::detail::siv< Policy >::end_message ( const block_type plaintext)
inline

◆ process_block()

template<typename Policy >
block_type nil::crypto3::block::modes::detail::siv< Policy >::process_block ( const block_type plaintext)
inline

◆ required_output_size()

template<typename Policy >
static std::size_t nil::crypto3::block::modes::detail::siv< Policy >::required_output_size ( std::size_t  inputlen)
inlinestatic

◆ schedule_associated_data()

template<typename Policy >
template<typename AssociatedDataContainer >
void nil::crypto3::block::modes::detail::siv< Policy >::schedule_associated_data ( const AssociatedDataContainer &  iad)
inlineprotected

Member Data Documentation

◆ ad_macs

template<typename Policy >
std::vector<associated_data_type> nil::crypto3::block::modes::detail::siv< Policy >::ad_macs
protected

◆ block_bits

template<typename Policy >
constexpr static const std::size_t nil::crypto3::block::modes::detail::siv< Policy >::block_bits = policy_type::block_bits
staticconstexpr

◆ block_words

template<typename Policy >
constexpr static const std::size_t nil::crypto3::block::modes::detail::siv< Policy >::block_words = policy_type::block_words
staticconstexpr

◆ key_bits

template<typename Policy >
constexpr static const std::size_t nil::crypto3::block::modes::detail::siv< Policy >::key_bits = policy_type::key_bits
staticconstexpr

◆ key_size

template<typename Policy >
constexpr static const std::size_t nil::crypto3::block::modes::detail::siv< Policy >::key_size = policy_type::key_size
staticconstexpr

◆ mac

template<typename Policy >
mac_type nil::crypto3::block::modes::detail::siv< Policy >::mac
protected

◆ nonce

template<typename Policy >
nonce_type nil::crypto3::block::modes::detail::siv< Policy >::nonce
protected

◆ stream_cipher

template<typename Policy >
stream_cipher_type nil::crypto3::block::modes::detail::siv< Policy >::stream_cipher
protected

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