gcm.hpp
Go to the documentation of this file.
116 inline static block_type begin_message(const cipher_type &cipher, const block_type &plaintext) {
120 inline static block_type process_block(const cipher_type &cipher, const block_type &plaintext) {
167 inline static block_type begin_message(const cipher_type &cipher, const block_type &plaintext) {
171 inline static block_type process_block(const cipher_type &cipher, const block_type &plaintext) {
308 template<template<typename, std::size_t, typename, typename, typename, template<typename> class>
Definition: gcm.hpp:98
policy_type::stream_cipher_type stream_cipher_type
Definition: gcm.hpp:104
constexpr static const std::size_t block_words
Definition: gcm.hpp:113
policy_type::block_type block_type
Definition: gcm.hpp:114
constexpr static const std::size_t tag_bits
Definition: gcm.hpp:110
policy_type::associated_data_type associated_data_type
Definition: gcm.hpp:107
policy_type::nonce_type nonce_type
Definition: gcm.hpp:108
static block_type begin_message(const cipher_type &cipher, const block_type &plaintext)
Definition: gcm.hpp:116
policy_type::padding_type padding_type
Definition: gcm.hpp:103
static block_type end_message(const cipher_type &cipher, const block_type &plaintext)
Definition: gcm.hpp:130
constexpr static const std::size_t block_bits
Definition: gcm.hpp:112
policy_type::hash_type hash_type
Definition: gcm.hpp:105
policy_type::cipher_type cipher_type
Definition: gcm.hpp:102
static block_type process_block(const cipher_type &cipher, const block_type &plaintext)
Definition: gcm.hpp:120
Definition: gcm.hpp:215
constexpr static const std::size_t block_words
Definition: gcm.hpp:227
block_type process_block(const block_type &plaintext)
Definition: gcm.hpp:255
cipher_type::block_type block_type
Definition: gcm.hpp:228
static std::size_t required_output_size(std::size_t inputlen)
Definition: gcm.hpp:263
block_type end_message(const block_type &plaintext)
Definition: gcm.hpp:259
policy_type::cipher_type cipher_type
Definition: gcm.hpp:219
void schedule_associated_data(const AssociatedDataContainer &iad)
Definition: gcm.hpp:269
policy_type::padding_type padding_type
Definition: gcm.hpp:220
constexpr static const std::size_t block_bits
Definition: gcm.hpp:226
policy_type::nonce_type nonce_type
Definition: gcm.hpp:224
cipher_type::key_type key_type
Definition: gcm.hpp:222
gcm(const cipher_type &cipher, const AssociatedDataContainer &associated_data)
Definition: gcm.hpp:231
block_type begin_message(const block_type &plaintext)
Definition: gcm.hpp:251
gcm(const key_type &key, const AssociatedDataContainer &associated_data)
Definition: gcm.hpp:237
policy_type::associated_data_type associated_data_type
Definition: gcm.hpp:223
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
boost::accumulators::accumulator_set< mac::digest< MessageAuthenticationCode::input_block_bits >, boost::accumulators::features< accumulators::tag::mac< MessageAuthenticationCode > >> BlockCipher
Definition: cbc_mac_state.hpp:40
bool constant_time_compare(const uint8_t x[], const uint8_t y[], size_t len)
Definition: memory_operations.hpp:143
void copy_mem(T *out, const T *in, size_t n)
Definition: memory_operations.hpp:186
Definition: pair.hpp:31
Definition: cipher.hpp:38
Definition: gcm.hpp:149
policy_type::hash_type hash_type
Definition: gcm.hpp:156
policy_type::associated_data_type associated_data_type
Definition: gcm.hpp:158
constexpr static const std::size_t tag_bits
Definition: gcm.hpp:161
policy_type::nonce_type nonce_type
Definition: gcm.hpp:159
policy_type::cipher_type cipher_type
Definition: gcm.hpp:153
constexpr static const std::size_t block_bits
Definition: gcm.hpp:163
static block_type end_message(const cipher_type &cipher, const block_type &plaintext)
Definition: gcm.hpp:181
gcm_policy< Cipher, TagBits, Padding, StreamCipher, Hash, Allocator > policy_type
Definition: gcm.hpp:150
static block_type process_block(const cipher_type &cipher, const block_type &plaintext)
Definition: gcm.hpp:171
constexpr static const std::size_t block_words
Definition: gcm.hpp:164
policy_type::block_type block_type
Definition: gcm.hpp:165
policy_type::padding_type padding_type
Definition: gcm.hpp:154
policy_type::stream_cipher_type stream_cipher_type
Definition: gcm.hpp:155
static block_type begin_message(const cipher_type &cipher, const block_type &plaintext)
Definition: gcm.hpp:167
Definition: gcm.hpp:46
BOOST_STATIC_ASSERT(tag_bits >=12 *CHAR_BIT &&tag_bits<=16 *CHAR_BIT)
BOOST_STATIC_ASSERT(block_bits==128)
std::vector< boost::uint_t< CHAR_BIT >, allocator_type< boost::uint_t< CHAR_BIT > > > nonce_type
Definition: gcm.hpp:68
constexpr static const std::size_t block_words
Definition: gcm.hpp:60
StreamCipher stream_cipher_type
Definition: gcm.hpp:49
Padding padding_type
Definition: gcm.hpp:48
cipher_type::block_type block_type
Definition: gcm.hpp:61
static block_type begin_message(const cipher_type &cipher, const block_type &plaintext)
Definition: gcm.hpp:70
constexpr static const std::size_t block_bits
Definition: gcm.hpp:59
std::vector< boost::uint_t< CHAR_BIT >, allocator_type< boost::uint_t< CHAR_BIT > > > associated_data_type
Definition: gcm.hpp:66
Allocator< T > allocator_type
Definition: gcm.hpp:53
constexpr static const std::size_t tag_bits
Definition: gcm.hpp:55
Definition: gcm.hpp:310
detail::gcm< Policy< cipher_type, TagBits, padding_type, stream_cipher_type, hash_type, allocator_type > > type
Definition: gcm.hpp:313
detail::gcm_decryption_policy< cipher_type, TagBits, padding_type, stream_cipher_type, hash_type, allocator_type > decryption_policy
Definition: gcm.hpp:306
Padding< BlockCipher > padding_type
Definition: gcm.hpp:294
detail::gcm_encryption_policy< cipher_type, TagBits, padding_type, stream_cipher_type, hash_type, allocator_type > encryption_policy
Definition: gcm.hpp:303
StreamCipher stream_cipher_type
Definition: gcm.hpp:295