8#ifndef BOTAN_HMAC_DRBG_H_
9#define BOTAN_HMAC_DRBG_H_
11#include <botan/stateful_rng.h>
34 explicit HMAC_DRBG(std::unique_ptr<MessageAuthenticationCode> prf);
39 explicit HMAC_DRBG(std::string_view hmac_hash);
64 HMAC_DRBG(std::unique_ptr<MessageAuthenticationCode> prf,
91 HMAC_DRBG(std::unique_ptr<MessageAuthenticationCode> prf,
121 HMAC_DRBG(std::unique_ptr<MessageAuthenticationCode> prf,
135 std::string
name()
const override;
142 void update(std::span<const uint8_t> input)
override;
144 void generate_output(std::span<uint8_t> output, std::span<const uint8_t> input)
override;
146 void clear_state()
override;
148 std::unique_ptr<MessageAuthenticationCode> m_mac;
151 const size_t m_max_number_of_bytes_per_request;
152 const size_t m_security_level;
#define BOTAN_PUBLIC_API(maj, min)
std::string name() const override
HMAC_DRBG(const HMAC_DRBG &rng)=delete
HMAC_DRBG & operator=(const HMAC_DRBG &rng)=delete
size_t security_level() const override
HMAC_DRBG(HMAC_DRBG &&rng)=delete
size_t max_number_of_bytes_per_request() const override
HMAC_DRBG(std::unique_ptr< MessageAuthenticationCode > prf)
HMAC_DRBG & operator=(HMAC_DRBG &&rng)=delete
static constexpr size_t DefaultReseedInterval
size_t reseed_interval() const
Stateful_RNG(RandomNumberGenerator &rng, Entropy_Sources &entropy_sources, size_t reseed_interval)
std::vector< T, secure_allocator< T > > secure_vector