10#ifndef BOTAN_KECCAK_PERM_H_
11#define BOTAN_KECCAK_PERM_H_
13#include <botan/secmem.h>
49 Keccak_Permutation(
size_t capacity_bits, uint64_t custom_padding, uint8_t custom_padding_bit_len);
53 size_t bit_rate()
const {
return m_byterate * 8; }
67 void absorb(std::span<const uint8_t> input);
76 void squeeze(std::span<uint8_t> output);
86#if defined(BOTAN_HAS_KECCAK_PERM_BMI2)
91 const size_t m_capacity;
92 const size_t m_byterate;
93 const uint64_t m_custom_padding;
94 const uint8_t m_custom_padding_bit_len;
void squeeze(std::span< uint8_t > output)
Expand output data from the current Keccak state.
Keccak_Permutation(size_t capacity_bits, uint64_t custom_padding, uint8_t custom_padding_bit_len)
Instantiate a Keccak permutation.
std::string provider() const
void absorb(std::span< const uint8_t > input)
Absorb input data into the Keccak sponge.
void finish()
Add final padding (as provided in the constructor) and permute.
int(* final)(unsigned char *, CTX *)
std::vector< T, secure_allocator< T > > secure_vector