9#ifndef BOTAN_ASCON_PERM_H_
10#define BOTAN_ASCON_PERM_H_
12#include <botan/internal/sponge.h>
34 m_init_final_rounds(config.init_and_final_rounds),
35 m_processing_rounds(config.processing_rounds) {
36 if(m_init_final_rounds > 16) {
40 if(m_processing_rounds > 16) {
45 std::string
provider()
const {
return "base"; }
47 void absorb(std::span<const uint8_t> input, std::optional<uint8_t> permutation_rounds = std::nullopt);
48 void squeeze(std::span<uint8_t> output);
60 template <
size_t offset,
size_t count>
63 return std::span{
state()}.template subspan<offset, count>();
67 void finish(uint8_t rounds);
71 uint8_t m_init_final_rounds;
72 uint8_t m_processing_rounds;
consteval Ascon_p(Config config)
constexpr auto range_of_state()
void squeeze(std::span< uint8_t > output)
void absorb(std::span< const uint8_t > input, std::optional< uint8_t > permutation_rounds=std::nullopt)
void percolate_in(std::span< uint8_t > data)
void percolate_out(std::span< uint8_t > data)
void intermediate_finish()
std::string provider() const
static constexpr size_t state_bytes()
std::array< word, words > state_t
constexpr Sponge(Config config)
uint8_t processing_rounds
uint8_t init_and_final_rounds