siv.hpp
Go to the documentation of this file.
125 typedef siv_policy<Cipher, Padding, TagBits, StreamCipher, MessageAuthenticationCode, Allocator>
185 typedef siv_policy<Cipher, Padding, TagBits, StreamCipher, MessageAuthenticationCode, Allocator>
340 template<typename BlockCipher, template<typename> class Padding, std::size_t TagBits = 16 * CHAR_BIT,
360 template<template<typename, typename, std::size_t, typename, typename, template<typename> class>
Definition: siv.hpp:184
policy_type::key_type key_type
Definition: siv.hpp:197
policy_type::block_type block_type
Definition: siv.hpp:203
policy_type::padding_type padding_type
Definition: siv.hpp:193
policy_type::cipher_type cipher_type
Definition: siv.hpp:192
policy_type::stream_cipher_type stream_cipher_type
Definition: siv.hpp:194
policy_type::associated_data_type associated_data_type
Definition: siv.hpp:199
static block_type begin_message(const stream_cipher_type &cipher, const block_type &plaintext)
Definition: siv.hpp:205
typename policy_type::template allocator_type< T > allocator_type
Definition: siv.hpp:190
static block_type process_block(const stream_cipher_type &cipher, const block_type &plaintext)
Definition: siv.hpp:212
policy_type::mac_type mac_type
Definition: siv.hpp:195
static block_type end_message(const stream_cipher_type &cipher, const block_type &plaintext)
Definition: siv.hpp:219
Definition: siv.hpp:124
static block_type process_block(const stream_cipher_type &cipher, const block_type &plaintext)
Definition: siv.hpp:152
policy_type::cipher_type cipher_type
Definition: siv.hpp:132
policy_type::padding_type padding_type
Definition: siv.hpp:133
policy_type::block_type block_type
Definition: siv.hpp:143
static block_type end_message(const stream_cipher_type &cipher, const block_type &plaintext)
Definition: siv.hpp:159
policy_type::stream_cipher_type stream_cipher_type
Definition: siv.hpp:134
static block_type begin_message(const stream_cipher_type &cipher, const block_type &plaintext)
Definition: siv.hpp:145
policy_type::associated_data_type associated_data_type
Definition: siv.hpp:139
policy_type::key_type key_type
Definition: siv.hpp:137
policy_type::mac_type mac_type
Definition: siv.hpp:135
Definition: siv.hpp:257
siv(const key_type &key, const nonce_type &nonce, const AssociatedDataContainer &associated_data)
Definition: siv.hpp:291
block_type end_message(const block_type &plaintext)
Definition: siv.hpp:311
static std::size_t required_output_size(std::size_t inputlen)
Definition: siv.hpp:315
policy_type::mac_type mac_type
Definition: siv.hpp:264
policy_type::stream_cipher_type stream_cipher_type
Definition: siv.hpp:263
block_type process_block(const block_type &plaintext)
Definition: siv.hpp:307
std::vector< associated_data_type > ad_macs
Definition: siv.hpp:325
policy_type::associated_data_type associated_data_type
Definition: siv.hpp:270
void schedule_associated_data(const AssociatedDataContainer &iad)
Definition: siv.hpp:321
policy_type::key_type key_type
Definition: siv.hpp:268
siv(const stream_cipher_type &stream_cipher, const mac_type &mac, const nonce_type &nonce, const AssociatedDataContainer &associated_data)
Definition: siv.hpp:278
stream_cipher_type stream_cipher
Definition: siv.hpp:327
cipher_type::block_type block_type
Definition: siv.hpp:275
block_type begin_message(const block_type &plaintext)
Definition: siv.hpp:303
policy_type::cipher_type cipher_type
Definition: siv.hpp:261
policy_type::padding_type padding_type
Definition: siv.hpp:262
policy_type::nonce_type nonce_type
Definition: siv.hpp:271
Definition: eax.hpp:39
counter< Cipher, Padding, CiphertextStealingMode > ctr
Definition: ctr.hpp:531
boost::mpl::apply< AccumulatorSet, tag::mac< ProcessingPolicy > >::type::result_type mac(const AccumulatorSet &acc)
Definition: accumulators/mac.hpp:99
boost::mpl::apply< AccumulatorSet, tag::block< Mode > >::type::result_type block(const AccumulatorSet &acc)
Definition: accumulators/block.hpp:259
boost::mpl::apply< AccumulatorSet, tag::stream< Mode > >::type::result_type stream(const AccumulatorSet &acc)
Definition: accumulators/stream.hpp:175
Definition: algebra/include/nil/crypto3/detail/make_array.hpp:33
boost::accumulators::accumulator_set< mac::digest< MessageAuthenticationCode::input_block_bits >, boost::accumulators::features< accumulators::tag::mac< MessageAuthenticationCode > >> BlockCipher
Definition: cbc_mac_state.hpp:40
void poly_double_n(uint8_t out[], InputIterator first, InputIterator last)
Definition: mac/include/nil/crypto3/detail/poly_dbl.hpp:83
void xor_buf(uint8_t out[], const uint8_t in[], size_t length)
Definition: memory_operations.hpp:245
bool constant_time_compare(const uint8_t x[], const uint8_t y[], size_t len)
Definition: memory_operations.hpp:143
Definition: pair.hpp:31
Definition: cipher.hpp:38
Definition: siv.hpp:49
std::vector< boost::uint_t< CHAR_BIT >, Allocator< boost::uint_t< CHAR_BIT > > > associated_data_type
Definition: siv.hpp:71
constexpr static const std::size_t tag_bits
Definition: siv.hpp:58
Allocator< T > allocator_type
Definition: siv.hpp:56
std::array< std::uint8_t, key_size > key_type
Definition: siv.hpp:68
constexpr static const std::size_t block_words
Definition: siv.hpp:61
constexpr static const std::size_t key_bits
Definition: siv.hpp:66
MessageAuthenticationCode mac_type
Definition: siv.hpp:53
Padding padding_type
Definition: siv.hpp:51
StreamCipher stream_cipher_type
Definition: siv.hpp:52
constexpr static const std::size_t key_size
Definition: siv.hpp:67
static void S2V(const mac_type &mac, const uint8_t *text, size_t text_len)
Definition: siv.hpp:89
BOOST_STATIC_ASSERT(block_bits==128)
static block_type begin_message(const stream_cipher_type &cipher, const block_type &plaintext)
Definition: siv.hpp:74
constexpr static const std::size_t block_bits
Definition: siv.hpp:60
cipher_type::block_type block_type
Definition: siv.hpp:62
std::vector< boost::uint_t< CHAR_BIT >, Allocator< boost::uint_t< CHAR_BIT > > > nonce_type
Definition: siv.hpp:72
Definition: siv.hpp:362
detail::siv< Policy< cipher_type, padding_type, TagBits, stream_cipher_type, mac_type, allocator_type > > type
Definition: siv.hpp:365
detail::siv_decryption_policy< cipher_type, padding_type, TagBits, stream_cipher_type, mac_type, allocator_type > decryption_policy
Definition: siv.hpp:358
detail::siv_encryption_policy< cipher_type, padding_type, TagBits, stream_cipher_type, mac_type, allocator_type > encryption_policy
Definition: siv.hpp:355
StreamCipher stream_cipher_type
Definition: siv.hpp:347
Padding< BlockCipher > padding_type
Definition: siv.hpp:346