8 #ifndef BOTAN_CHACHA_RNG_H_
9 #define BOTAN_CHACHA_RNG_H_
11 #include <botan/stateful_rng.h>
12 #include <botan/stream_cipher.h>
13 #include <botan/mac.h>
17 class Entropy_Sources;
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;
int(* final)(unsigned char *, CTX *)
#define BOTAN_PUBLIC_API(maj, min)
std::vector< T, secure_allocator< T >> secure_vector
std::string name() const override
size_t max_number_of_bytes_per_request() const override
int(* update)(CTX *, const void *, CC_LONG len)