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 template<
typename Alloc>
82 set_associated_data(ad.data(), ad.size());
94 template<
typename Alloc>
95 void set_ad(
const std::vector<uint8_t, Alloc>& ad)
97 set_associated_data(ad.data(), ad.size());
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