8#ifndef BOTAN_CHACHA_RNG_H_
9#define BOTAN_CHACHA_RNG_H_
11#include <botan/stateful_rng.h>
12#include <botan/stream_cipher.h>
77 size_t reseed_interval = BOTAN_RNG_DEFAULT_RESEED_INTERVAL);
88 size_t reseed_interval = BOTAN_RNG_DEFAULT_RESEED_INTERVAL);
103 size_t reseed_interval = BOTAN_RNG_DEFAULT_RESEED_INTERVAL);
105 std::string
name()
const override {
return "ChaCha_RNG"; }
107 size_t security_level()
const override;
112 void update(
const uint8_t input[],
size_t input_len)
override;
114 void generate_output(uint8_t output[],
size_t output_len,
115 const uint8_t input[],
size_t input_len)
override;
117 void clear_state()
override;
119 std::unique_ptr<MessageAuthenticationCode> m_hmac;
120 std::unique_ptr<StreamCipher> m_chacha;
size_t max_number_of_bytes_per_request() const override
std::string name() const override
int(* update)(CTX *, const void *, CC_LONG len)
int(* final)(unsigned char *, CTX *)
#define BOTAN_PUBLIC_API(maj, min)
std::vector< T, secure_allocator< T > > secure_vector