4 * Copyright 2007 Develer S.r.l. (http://www.develer.com/)
5 * This file is part of DevLib - See README.devlib for information.
8 * \brief API function for to manage entropy pool.
12 * \author Daniele Basile <asterix@develer.com>
17 *#* Revision 1.4 2007/02/08 17:18:01 asterix
18 *#* Write add_data and stir function. Typos
20 *#* Revision 1.3 2007/02/08 14:25:56 asterix
23 *#* Revision 1.2 2007/02/08 11:53:03 asterix
24 *#* Add EntrPool struct. Typos.
26 *#* Revision 1.1 2007/02/08 11:13:41 asterix
27 *#* Add function prototypes.
34 #include <cfg/compiler.h>
35 #include <appconfig.h>
38 * Sturct data of entropy pool.
40 typedef struct EntrPool
42 size_t entropy; ///< Actual value of entropy (In bit).
43 size_t pool_pos_add; ///< Size of byte insert in entropy pool.
44 size_t pool_pos_get; ///< Size of byte take in entropy pool.
45 size_t counter; ///< Counter.
46 size_t last_counter; ///< Last timer value.
47 uint8_t pool_entropy[CONFIG_SIZE_ENTROPY_POOL]; ///< Entropy pool.
51 void init_pool(EntrPool *pool);
52 void add_data(EntrPool *pool, void *data, size_t n_bit);
53 size_t pool_size(EntrPool *pool);
54 void get_bit(EntrPool *pool, void *data, size_t n_bit);
55 void get_bit_n(EntrPool *pool, void *data, size_t n_bit);
56 bool save_pool(void *data);
57 uint8_t *load_pool(void);
59 #endif /* RANDPOOL_H */