9#ifndef BOTAN_SHA_224_256_H_
10#define BOTAN_SHA_224_256_H_
12#include <botan/internal/mdx_hash.h>
33 std::string
name()
const override {
return "SHA-224"; }
39 std::unique_ptr<HashFunction>
new_object()
const override;
41 std::unique_ptr<HashFunction>
copy_state()
const override;
43 void clear()
override { m_md.clear(); }
45 std::string
provider()
const override;
48 void add_data(std::span<const uint8_t> input)
override;
50 void final_result(std::span<uint8_t> output)
override;
73 std::string
name()
const override {
return "SHA-256"; }
79 std::unique_ptr<HashFunction>
new_object()
const override;
81 std::unique_ptr<HashFunction>
copy_state()
const override;
83 void clear()
override { m_md.clear(); }
85 std::string
provider()
const override;
90#if defined(BOTAN_HAS_SHA2_32_ARMV8)
94#if defined(BOTAN_HAS_SHA2_32_X86_BMI2)
98#if defined(BOTAN_HAS_SHA2_32_X86)
103 void add_data(std::span<const uint8_t> input)
override;
105 void final_result(std::span<uint8_t> output)
override;
static constexpr size_t ctr_bytes
size_t output_length() const override
static void compress_n(digest_type &digest, std::span< const uint8_t > input, size_t blocks)
size_t hash_block_size() const override
static constexpr size_t block_bytes
std::string name() const override
static constexpr MD_Endian bit_endianness
std::string provider() const override
secure_vector< uint32_t > digest_type
static constexpr MD_Endian byte_endianness
static constexpr size_t output_bytes
std::unique_ptr< HashFunction > new_object() const override
std::unique_ptr< HashFunction > copy_state() const override
size_t output_length() const override
static void compress_digest_x86(digest_type &digest, std::span< const uint8_t > input, size_t blocks)
secure_vector< uint32_t > digest_type
static void compress_digest_armv8(digest_type &digest, std::span< const uint8_t > input, size_t blocks)
size_t hash_block_size() const override
static constexpr size_t ctr_bytes
std::string name() const override
static void compress_n(digest_type &digest, std::span< const uint8_t > input, size_t blocks)
static constexpr size_t output_bytes
static constexpr MD_Endian byte_endianness
std::unique_ptr< HashFunction > new_object() const override
std::unique_ptr< HashFunction > copy_state() const override
static constexpr MD_Endian bit_endianness
std::string provider() const override
static void compress_digest_x86_bmi2(digest_type &digest, std::span< const uint8_t > input, size_t blocks)
static constexpr size_t block_bytes
static void compress_digest(digest_type &digest, std::span< const uint8_t > input, size_t blocks)
int(* final)(unsigned char *, CTX *)
std::vector< T, secure_allocator< T > > secure_vector