10#ifndef BOTAN_CSHAKE_XOF_H_
11#define BOTAN_CSHAKE_XOF_H_
14#include <botan/internal/keccak_perm.h>
46 const std::vector<uint8_t>&
function_name()
const {
return m_function_name; }
53 void start_msg(std::span<const uint8_t> salt, std::span<const uint8_t> key)
final;
54 void add_data(std::span<const uint8_t> input)
final;
55 void generate_bytes(std::span<uint8_t> output)
final;
60 std::vector<uint8_t> m_function_name;
61 bool m_output_generated;
76 std::string
name() const final {
return "cSHAKE-128"; }
78 std::unique_ptr<XOF>
copy_state() const final {
return std::make_unique<cSHAKE_128_XOF>(*
this); }
95 std::string
name() const final {
return "cSHAKE-256"; }
97 std::unique_ptr<XOF>
copy_state() const final {
return std::make_unique<cSHAKE_256_XOF>(*
this); }
std::unique_ptr< XOF > new_object() const final
std::unique_ptr< XOF > copy_state() const final
cSHAKE_128_XOF(std::string_view function_name)
std::string name() const final
cSHAKE_128_XOF(std::span< const uint8_t > function_name)
cSHAKE_128_XOF(std::vector< uint8_t > function_name)
std::string name() const final
cSHAKE_256_XOF(std::vector< uint8_t > function_name)
cSHAKE_256_XOF(std::span< const uint8_t > function_name)
std::unique_ptr< XOF > copy_state() const final
std::unique_ptr< XOF > new_object() const final
cSHAKE_256_XOF(std::string_view function_name)
size_t block_size() const final
bool accepts_input() const final
cSHAKE_XOF(size_t capacity, std::vector< uint8_t > function_name)
const std::vector< uint8_t > & function_name() const
bool valid_salt_length(size_t salt_length) const final
std::string provider() const final