9#include <botan/exceptn.h>
10#include <botan/internal/loadstor.h>
12#if defined(BOTAN_HAS_ENTROPY_SOURCE)
13 #include <botan/entropy_src.h>
16#if defined(BOTAN_HAS_SYSTEM_RNG)
17 #include <botan/system_rng.h>
20#if defined(BOTAN_HAS_OS_UTILS)
21 #include <botan/internal/os_utils.h>
30 std::array<uint8_t, 32> additional_input = {0};
32#if defined(BOTAN_HAS_OS_UTILS)
35 constexpr size_t offset = 12;
37 constexpr size_t offset = 0;
40#if defined(BOTAN_HAS_SYSTEM_RNG)
54#if defined(BOTAN_HAS_ENTROPY_SOURCE)
55 return srcs.
poll(*
this, poll_bits);
70void Null_RNG::fill_bytes_with_input(std::span<uint8_t> output, std::span<const uint8_t> ) {
size_t poll(RandomNumberGenerator &rng, size_t bits, std::chrono::milliseconds timeout)
void randomize(std::span< uint8_t > output)
virtual bool accepts_input() const =0
RandomNumberGenerator()=default
void add_entropy(std::span< const uint8_t > input)
virtual size_t reseed_from_sources(Entropy_Sources &srcs, size_t poll_bits=RandomNumberGenerator::DefaultPollBits)
virtual void reseed_from_rng(RandomNumberGenerator &rng, size_t poll_bits=RandomNumberGenerator::DefaultPollBits)
void randomize_with_ts_input(std::span< uint8_t > output)
void random_vec(std::span< uint8_t > v)
virtual void fill_bytes_with_input(std::span< uint8_t > output, std::span< const uint8_t > input)=0
uint64_t BOTAN_TEST_API get_high_resolution_clock()
uint32_t BOTAN_TEST_API get_process_id()
RandomNumberGenerator & system_rng()
constexpr auto store_le(ParamTs &&... params)