Botan
1.10.9
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
src
rng
randpool
randpool.h
Go to the documentation of this file.
1
/*
2
* Randpool
3
* (C) 1999-2008 Jack Lloyd
4
*
5
* Distributed under the terms of the Botan license
6
*/
7
8
#ifndef BOTAN_RANDPOOL_H__
9
#define BOTAN_RANDPOOL_H__
10
11
#include <botan/rng.h>
12
#include <botan/block_cipher.h>
13
#include <botan/mac.h>
14
#include <vector>
15
16
namespace
Botan
{
17
18
/**
19
* Randpool
20
*/
21
class
BOTAN_DLL
Randpool
:
public
RandomNumberGenerator
22
{
23
public
:
24
void
randomize(
byte
[],
size_t
);
25
bool
is_seeded
()
const
{
return
seeded; }
26
void
clear();
27
std::string name()
const
;
28
29
void
reseed(
size_t
bits_to_collect);
30
void
add_entropy_source(
EntropySource
* es);
31
void
add_entropy(
const
byte
input[],
size_t
length);
32
33
/**
34
* @param cipher a block cipher to use
35
* @param mac a message authentication code to use
36
* @param pool_blocks how many cipher blocks to use for the pool
37
* @param iterations_before_reseed how many times we'll use the
38
* internal state to generate output before reseeding
39
*/
40
Randpool
(
BlockCipher
* cipher,
41
MessageAuthenticationCode
*
mac
,
42
size_t
pool_blocks = 32,
43
size_t
iterations_before_reseed = 128);
44
45
~
Randpool
();
46
private
:
47
void
update_buffer();
48
void
mix_pool();
49
50
size_t
ITERATIONS_BEFORE_RESEED, POOL_BLOCKS;
51
BlockCipher
* cipher;
52
MessageAuthenticationCode
*
mac
;
53
54
std::vector<EntropySource*> entropy_sources;
55
SecureVector<byte>
pool, buffer, counter;
56
bool
seeded;
57
};
58
59
}
60
61
#endif
Botan::RandomNumberGenerator
Definition:
rng.h:20
Botan::Randpool
Definition:
randpool.h:21
Botan::EntropySource
Definition:
entropy_src.h:122
Botan::MessageAuthenticationCode
Definition:
mac.h:20
Botan::byte
unsigned char byte
Definition:
types.h:22
Botan::Randpool::is_seeded
bool is_seeded() const
Definition:
randpool.h:25
mac
MessageAuthenticationCode * mac
Definition:
fpe_fe1.cpp:94
Botan
Definition:
algo_base.h:14
Botan::SecureVector< byte >
Botan::BlockCipher
Definition:
block_cipher.h:18
Generated on Sat Aug 20 2016 08:18:48 for Botan by
1.8.9.1