11#include <botan/hash.h>
12#include <botan/secmem.h>
30 explicit SHA_3(
size_t output_bits);
36 std::unique_ptr<HashFunction>
copy_state()
const override;
37 std::string
name()
const override;
38 void clear()
override;
39 std::string
provider()
const override;
51 static size_t absorb(
size_t bitrate,
53 const uint8_t input[],
size_t length);
65 static void finish(
size_t bitrate,
67 uint8_t init_pad, uint8_t fini_pad);
76 static void expand(
size_t bitrate,
78 uint8_t output[],
size_t output_length);
83 static void permute(uint64_t A[25]);
86 void add_data(
const uint8_t input[],
size_t length)
override;
87 void final_result(uint8_t out[])
override;
89#if defined(BOTAN_HAS_SHA3_BMI2)
90 static void permute_bmi2(uint64_t A[25]);
93 size_t m_output_bits, m_bitrate;
virtual HashFunction * clone() const =0
virtual std::string provider() const
virtual std::unique_ptr< HashFunction > copy_state() const =0
virtual std::string name() const =0
size_t hash_block_size() const override
size_t output_length() const override
int(* final)(unsigned char *, CTX *)
#define BOTAN_PUBLIC_API(maj, min)
#define BOTAN_FUTURE_INTERNAL_HEADER(hdr)
std::vector< T, secure_allocator< T > > secure_vector