8#ifndef BOTAN_SHAKE_HASH_H_
9#define BOTAN_SHAKE_HASH_H_
11#include <botan/hash.h>
12#include <botan/internal/keccak_perm.h>
34 size_t security_level()
const override {
return std::min<size_t>(m_output_bits / 2, 128); }
36 std::unique_ptr<HashFunction>
new_object()
const override;
37 std::unique_ptr<HashFunction>
copy_state()
const override;
38 std::string
name()
const override;
40 void clear()
override { m_keccak.clear(); }
42 std::string
provider()
const override {
return m_keccak.provider(); }
45 void add_data(std::span<const uint8_t> input)
override;
46 void final_result(std::span<uint8_t> out)
override;
67 size_t security_level()
const override {
return std::min<size_t>(m_output_bits / 2, 256); }
69 std::unique_ptr<HashFunction>
new_object()
const override;
70 std::unique_ptr<HashFunction>
copy_state()
const override;
71 std::string
name()
const override;
73 void clear()
override { m_keccak.clear(); }
75 std::string
provider()
const override {
return m_keccak.provider(); }
78 void add_data(std::span<const uint8_t> input)
override;
79 void final_result(std::span<uint8_t> out)
override;
void final(uint8_t out[])
std::unique_ptr< HashFunction > new_object() const override
SHAKE_128(size_t output_bits)
std::string provider() const override
size_t hash_block_size() const override
std::string name() const override
size_t output_length() const override
size_t security_level() const override
std::unique_ptr< HashFunction > copy_state() const override
std::unique_ptr< HashFunction > new_object() const override
size_t security_level() const override
size_t output_length() const override
SHAKE_256(size_t output_bits)
std::string provider() const override
size_t hash_block_size() const override
std::string name() const override
std::unique_ptr< HashFunction > copy_state() const override