10#ifndef BOTAN_SHAKE_XOF_H_ 
   11#define BOTAN_SHAKE_XOF_H_ 
   14#include <botan/internal/keccak_perm.h> 
   33      std::string 
provider() const final { 
return m_keccak.provider(); }
 
   35      size_t block_size() const final { 
return m_keccak.byte_rate(); }
 
   40      void add_data(std::span<const uint8_t> input) 
final;
 
   41      void generate_bytes(std::span<uint8_t> 
output) 
final;
 
   46      bool m_output_generated;
 
 
   56      std::string 
name() const final { 
return "SHAKE-128"; }
 
   58      std::unique_ptr<XOF> 
copy_state() const final { 
return std::make_unique<SHAKE_128_XOF>(*
this); }
 
   60      std::unique_ptr<XOF> 
new_object() const final { 
return std::make_unique<SHAKE_128_XOF>(); }
 
 
   70      std::string 
name() const final { 
return "SHAKE-256"; }
 
   72      std::unique_ptr<XOF> 
copy_state() const final { 
return std::make_unique<SHAKE_256_XOF>(*
this); }
 
   74      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()