10#ifndef BOTAN_BLAKE2S_H_
11#define BOTAN_BLAKE2S_H_
13#include <botan/hash.h>
14#include <botan/internal/alignment_buffer.h>
23 static constexpr size_t block_size = 64;
26 explicit BLAKE2s(
size_t output_bits = 256);
34 std::string
name()
const override;
40 std::unique_ptr<HashFunction>
copy_state()
const override;
42 std::unique_ptr<HashFunction>
new_object()
const override {
return std::make_unique<BLAKE2s>(m_outlen << 3); }
44 void clear()
override;
47 void add_data(std::span<const uint8_t> input)
override;
48 void final_result(std::span<uint8_t> output)
override;
49 void state_init(
size_t outlen);
50 void compress(
bool last, std::span<const uint8_t> buf);
53 uint64_t m_bytes_processed = 0;
56 std::array<uint32_t, 8> m_h{};
BLAKE2s(const BLAKE2s &)=default
BLAKE2s(BLAKE2s &&)=delete
std::unique_ptr< HashFunction > new_object() const override
BLAKE2s & operator=(const BLAKE2s &)=delete
std::unique_ptr< HashFunction > copy_state() const override
size_t hash_block_size() const override
BLAKE2s(size_t output_bits=256)
BLAKE2s & operator=(BLAKE2s &&)=delete
std::string name() const override
size_t output_length() const override
void final(uint8_t out[])