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 =
"");
77 virtual void set_associated_data_n(
size_t i,
const uint8_t ad[],
size_t ad_len);
103 template<
typename Alloc>
106 set_associated_data(ad.data(), ad.size());
118 template<
typename Alloc>
119 void set_ad(
const std::vector<uint8_t, Alloc>& ad)
121 set_associated_data(ad.data(), ad.size());
virtual void set_associated_data(const uint8_t ad[], size_t ad_len)=0
virtual ~AEAD_Mode()=default
virtual size_t maximum_associated_data_inputs() const
void set_associated_data_vec(const std::vector< uint8_t, Alloc > &ad)
size_t default_nonce_length() const override
void set_ad(const std::vector< uint8_t, Alloc > &ad)
virtual bool associated_data_requires_key() const
static std::unique_ptr< AEAD_Mode > create(const std::string &algo, Cipher_Dir direction, const std::string &provider="")
#define BOTAN_PUBLIC_API(maj, min)
AEAD_Mode * get_aead(const std::string &name, Cipher_Dir direction)