34 explicit HMAC_DRBG(std::unique_ptr<MessageAuthenticationCode> prf);
39 explicit HMAC_DRBG(
const std::string& hmac_hash);
64 HMAC_DRBG(std::unique_ptr<MessageAuthenticationCode> prf,
66 size_t reseed_interval = BOTAN_RNG_DEFAULT_RESEED_INTERVAL,
67 size_t max_number_of_bytes_per_request = 64 * 1024);
91 HMAC_DRBG(std::unique_ptr<MessageAuthenticationCode> prf,
93 size_t reseed_interval = BOTAN_RNG_DEFAULT_RESEED_INTERVAL,
94 size_t max_number_of_bytes_per_request = 64 * 1024);
121 HMAC_DRBG(std::unique_ptr<MessageAuthenticationCode> prf,
124 size_t reseed_interval = BOTAN_RNG_DEFAULT_RESEED_INTERVAL,
125 size_t max_number_of_bytes_per_request = 64 * 1024);
127 std::string
name()
const override;
129 size_t security_level()
const override;
132 {
return m_max_number_of_bytes_per_request; }
135 void update(
const uint8_t input[],
size_t input_len)
override;
137 void generate_output(uint8_t output[],
size_t output_len,
138 const uint8_t input[],
size_t input_len)
override;
140 void clear_state()
override;
142 std::unique_ptr<MessageAuthenticationCode> m_mac;
144 const size_t m_max_number_of_bytes_per_request;
145 const size_t m_security_level;