8 #ifndef BOTAN_AEAD_MODE_H_
9 #define BOTAN_AEAD_MODE_H_
11 #include <botan/cipher_mode.h>
32 static std::unique_ptr<AEAD_Mode> create(
const std::string& algo,
34 const std::string& provider =
"");
43 static std::unique_ptr<AEAD_Mode> create_or_throw(
const std::string& algo,
45 const std::string& provider =
"");
61 virtual void set_associated_data(
const uint8_t ad[],
size_t ad_len) = 0;
79 virtual void set_associated_data_n(
size_t i,
const uint8_t ad[],
size_t ad_len);
105 template<
typename Alloc>
108 set_associated_data(ad.data(), ad.size());
120 template<
typename Alloc>
121 void set_ad(
const std::vector<uint8_t, Alloc>& ad)
123 set_associated_data(ad.data(), ad.size());
virtual size_t maximum_associated_data_inputs() const
size_t default_nonce_length() const override
#define BOTAN_PUBLIC_API(maj, min)
void set_ad(const std::vector< uint8_t, Alloc > &ad)
bool authenticated() const override
AEAD_Mode * get_aead(const std::string &name, Cipher_Dir direction)
void set_associated_data_vec(const std::vector< uint8_t, Alloc > &ad)
static std::unique_ptr< AEAD_Mode > create(const std::string &algo, Cipher_Dir direction, const std::string &provider="")
virtual bool associated_data_requires_key() const