9#ifndef BOTAN_ASCON_AEAD128_H_
10#define BOTAN_ASCON_AEAD128_H_
12#include <botan/aead.h>
14#include <botan/assert.h>
15#include <botan/internal/ascon_perm.h>
27 std::string
name() const final {
return "Ascon-AEAD128"; }
50 void start_msg(
const uint8_t nonce[],
size_t nonce_len)
final;
57 std::optional<std::array<uint64_t, 2>>
m_key;
62 std::vector<uint8_t> m_ad;
63 bool m_started =
false;
76 size_t process_msg(uint8_t buf[],
size_t size)
final;
93 size_t process_msg(uint8_t buf[],
size_t size)
final;
#define BOTAN_ARG_CHECK(expr, msg)
size_t output_length(size_t input_length) const override
size_t minimum_final_size() const override
size_t minimum_final_size() const override
size_t output_length(size_t input_length) const override
bool has_keying_material() const final
Key_Length_Specification key_spec() const final
size_t default_nonce_length() const final
size_t update_granularity() const final
void key_schedule(std::span< const uint8_t > key) final
size_t ideal_granularity() const final
bool associated_data_requires_key() const final
std::string name() const final
std::optional< std::array< uint64_t, 2 > > m_key
void maybe_absorb_associated_data()
void set_associated_data_n(size_t idx, std::span< const uint8_t > ad) final
size_t tag_size() const final
bool valid_nonce_length(size_t n) const final
std::array< uint8_t, 16 > calculate_tag_and_finish()
void start_msg(const uint8_t nonce[], size_t nonce_len) final
std::vector< T, secure_allocator< T > > secure_vector