10#ifndef BOTAN_SHAKE_XOF_H_
11#define BOTAN_SHAKE_XOF_H_
14#include <botan/internal/keccak_perm.h>
31 std::string
provider() const final {
return m_keccak.provider(); }
33 size_t block_size() const final {
return m_keccak.byte_rate(); }
38 void add_data(std::span<const uint8_t> input)
final;
39 void generate_bytes(std::span<uint8_t>
output)
final;
44 bool m_output_generated;
54 std::string
name() const final {
return "SHAKE-128"; }
56 std::unique_ptr<XOF>
copy_state() const final {
return std::make_unique<SHAKE_128_XOF>(*
this); }
58 std::unique_ptr<XOF>
new_object() const final {
return std::make_unique<SHAKE_128_XOF>(); }
68 std::string
name() const final {
return "SHAKE-256"; }
70 std::unique_ptr<XOF>
copy_state() const final {
return std::make_unique<SHAKE_256_XOF>(*
this); }
72 std::unique_ptr<XOF>
new_object() const final {
return std::make_unique<SHAKE_256_XOF>(); }
std::string name() const final
std::unique_ptr< XOF > copy_state() const final
std::unique_ptr< XOF > new_object() const final
std::unique_ptr< XOF > copy_state() const final
std::string name() const final
std::unique_ptr< XOF > new_object() const final
size_t block_size() const final
SHAKE_XOF(size_t capacity)
bool accepts_input() const final
std::string provider() const final
std::array< uint8_t, count > output()