X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Falgo%2Frandpool.c;h=4d420f3e8127bfab037e87857ebad885cc8f80bf;hb=7a613efa9f80222fa9642bfb6a249972c7ae6c6e;hp=a32fdff4170d045caf0503ff0ba82740851ceb8d;hpb=791e167e053bdd9250d34a9a5ccae6ccde4d6679;p=bertos.git diff --git a/bertos/algo/randpool.c b/bertos/algo/randpool.c index a32fdff4..4d420f3e 100644 --- a/bertos/algo/randpool.c +++ b/bertos/algo/randpool.c @@ -32,57 +32,19 @@ * * \brief API function for to manage entropy pool. * - * \version $Id$ * \author Daniele Basile */ -/*#* - *#* $Log$ - *#* Revision 1.20 2007/06/07 16:06:39 batt - *#* Fix some doxygen errors. - *#* - *#* Revision 1.19 2007/02/15 13:54:26 asterix - *#* Rename randpool_getN in randpool_get. Fix bug in randpool_get. - *#* - *#* Revision 1.17 2007/02/15 13:40:42 asterix - *#* Fix bug in randpool_add and randpool_strir. - *#* - *#* Revision 1.16 2007/02/13 15:11:37 asterix - *#* Typo. - *#* - *#* Revision 1.14 2007/02/13 09:57:12 asterix - *#* Add directive #if in struct EntropyPool, and remove #else in randpool_add. - *#* - *#* Revision 1.13 2007/02/12 18:25:34 asterix - *#* Fix bug in randpool_getN. - *#* - *#* Revision 1.12 2007/02/12 09:47:39 asterix - *#* Remove randpool_save. Add randpool_pool. - *#* - *#* Revision 1.10 2007/02/12 09:03:32 asterix - *#* Add CONFIG_RANDPOOL_TIMER macro to swich on or off timer support - *#* - *#* Revision 1.9 2007/02/09 17:58:09 asterix - *#* Add macro CONFIG_RANDPOOL_TIMER. - *#* - *#* Revision 1.6 2007/02/09 09:24:38 asterix - *#* Typos. Add data_len in randpool_add and n_byte in randpool_push pototypes. - *#* - *#* Revision 1.3 2007/02/08 14:25:29 asterix - *#* Write static funcion push_byte. - *#* - *#*/ - #include "randpool.h" #include "md2.h" -#include //sprintf(); -#include //memset(), memcpy(); - #include #include //ASSERT() #include //MIN(), ROUND_UP(); +#include //sprintf(); +#include //memset(), memcpy(); + #if CONFIG_RANDPOOL_TIMER #include //timer_clock(); #endif @@ -103,10 +65,11 @@ static void randpool_push(EntropyPool *pool, void *_byte, size_t n_byte) /* * Insert a bytes in entropy pool. */ - for(int j = 0; j < n_byte; j++) + for(size_t j = 0; j < n_byte; j++) { pool->pool_entropy[i] = pool->pool_entropy[i] ^ byte[j]; - i = (++i) % CONFIG_SIZE_ENTROPY_POOL; + i++; + i = i % CONFIG_SIZE_ENTROPY_POOL; } pool->pos_add = i; // Update a insert bytes. @@ -129,7 +92,7 @@ static void randpool_stir(EntropyPool *pool) for (int i = 0; i < (CONFIG_SIZE_ENTROPY_POOL / MD2_DIGEST_LEN); i++) { - sprintf(tmp_buf, "%0x%0x%0x",pool->counter, i, pool->pos_add); + sprintf((char *)tmp_buf, "%0x%0x%0x", pool->counter, i, pool->pos_add); /* * Hash with MD2 algorithm the entropy pool. @@ -141,7 +104,7 @@ static void randpool_stir(EntropyPool *pool) /*Insert a message digest in entropy pool.*/ randpool_push(pool, md2_end(&context), MD2_DIGEST_LEN); - pool->counter = pool->counter + 1; + pool->counter = pool->counter + 1; } @@ -192,8 +155,8 @@ void randpool_add(EntropyPool *pool, void *data, size_t entropy) /** * Randpool function initialization. - * The entropy pool can be initialize also with - * a previous entropy pool. + * The entropy pool can be initialize also with + * a previous entropy pool. */ void randpool_init(EntropyPool *pool, void *_data, size_t len) { @@ -211,7 +174,7 @@ void randpool_init(EntropyPool *pool, void *_data, size_t len) if(data) { /* - * Initialize a entropy pool with a + * Initialize a entropy pool with a * previous pool, and assume all pool as * entropy. */ @@ -251,7 +214,7 @@ void randpool_get(EntropyPool *pool, void *_data, size_t n_byte) data = (uint8_t *)_data; /* Test if i + CONFIG_MD2_BLOCK_LEN is inside of entropy pool.*/ - ASSERT((MD2_DIGEST_LEN + i) < CONFIG_SIZE_ENTROPY_POOL); + ASSERT((MD2_DIGEST_LEN + i) <= CONFIG_SIZE_ENTROPY_POOL); md2_init(&context); @@ -282,10 +245,6 @@ void randpool_get(EntropyPool *pool, void *_data, size_t n_byte) pool->pos_get = i; //Current number of byte we get from pool. pool->entropy -= n_byte; //Update a entropy. - /*If we get all entropy entropy is 0*/ - if(pool->entropy < 0) - pool->entropy = 0; - } /**