11#include <botan/hash.h>
12#include <botan/secmem.h>
13#include <botan/internal/keccak_perm.h>
27 explicit SHA_3(
size_t output_bits);
33 std::unique_ptr<HashFunction>
new_object()
const override;
34 std::unique_ptr<HashFunction>
copy_state()
const override;
35 std::string
name()
const override;
36 void clear()
override;
37 std::string
provider()
const override;
40 void add_data(std::span<const uint8_t> input)
override;
41 void final_result(std::span<uint8_t> out)
override;
45 size_t m_output_length;
55 std::unique_ptr<HashFunction>
new_object()
const override {
return std::make_unique<SHA_3_224>(); }
57 std::unique_ptr<HashFunction>
copy_state()
const override {
return std::make_unique<SHA_3_224>(*
this); }
67 std::unique_ptr<HashFunction>
new_object()
const override {
return std::make_unique<SHA_3_256>(); }
69 std::unique_ptr<HashFunction>
copy_state()
const override {
return std::make_unique<SHA_3_256>(*
this); }
79 std::unique_ptr<HashFunction>
new_object()
const override {
return std::make_unique<SHA_3_384>(); }
81 std::unique_ptr<HashFunction>
copy_state()
const override {
return std::make_unique<SHA_3_384>(*
this); }
91 std::unique_ptr<HashFunction>
new_object()
const override {
return std::make_unique<SHA_3_512>(); }
93 std::unique_ptr<HashFunction>
copy_state()
const override {
return std::make_unique<SHA_3_512>(*
this); }
void final(uint8_t out[])
std::unique_ptr< HashFunction > copy_state() const override
std::unique_ptr< HashFunction > new_object() const override
std::unique_ptr< HashFunction > new_object() const override
std::unique_ptr< HashFunction > copy_state() const override
std::unique_ptr< HashFunction > new_object() const override
std::unique_ptr< HashFunction > copy_state() const override
std::unique_ptr< HashFunction > new_object() const override
std::unique_ptr< HashFunction > copy_state() const override
SHA_3(size_t output_bits)
size_t hash_block_size() const override
std::unique_ptr< HashFunction > new_object() const override
std::string provider() const override
std::string name() const override
size_t output_length() const override
std::unique_ptr< HashFunction > copy_state() const override