Remove randpool_load function. Add *data in randpool_init prototype.
authorasterix <asterix@38d2e660-2303-0410-9eaa-f027e97ec537>
Mon, 12 Feb 2007 09:40:43 +0000 (09:40 +0000)
committerasterix <asterix@38d2e660-2303-0410-9eaa-f027e97ec537>
Mon, 12 Feb 2007 09:40:43 +0000 (09:40 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@777 38d2e660-2303-0410-9eaa-f027e97ec537

algos/randpool.c
algos/randpool.h

index 58415efef5f285fba4d9540fd3e7c23fb43125c5..63a2716a6fa8a9b89145e1aef5b34eed1f1c0984 100755 (executable)
@@ -13,6 +13,9 @@
 
 /*#*
  *#* $Log$
+ *#* Revision 1.11  2007/02/12 09:40:43  asterix
+ *#* Remove randpool_load function. Add *data in randpool_init prototype.
+ *#*
  *#* Revision 1.10  2007/02/12 09:03:32  asterix
  *#* Add CONFIG_RANDPOOL_TIMER macro to swich on or off timer support
  *#*
@@ -152,9 +155,16 @@ void randpool_add(EntropyPool *pool, void *data, size_t data_len, size_t entropy
        pool->last_counter = event;
 }
 
-
-void randpool_init(EntropyPool *pool)
+/**
+ * Randpool function initialization.
+ * The entropy pool can be initialize also with 
+ * a previous entropy pool. 
+ */
+void randpool_init(EntropyPool *pool, void *_data, size_t len)
 {
+       uint8_t *data;
+
+       data = (uint8_t *)_data;
 
        memset(pool, 0, sizeof(EntropyPool));
        pool->pos_get = CONFIG_MD2_BLOCK_LEN;
@@ -163,6 +173,18 @@ void randpool_init(EntropyPool *pool)
        pool->last_counter = timer_clock();
 #endif
 
+       ASSERT(len < CONFIG_SIZE_ENTROPY_POOL);
+
+       if(len > 0)
+       {
+               /*
+                * Initialize a entropy pool with a 
+                * previous pool, and assume all pool as
+                * entropy.
+                */
+               memcpy(pool->pool_entropy, data, len);
+               pool->entropy = len;
+       }
 
 }
 
@@ -231,7 +253,3 @@ bool randpool_save(void *data)
 {
 }
 
-uint8_t *randpool_load(void)
-{
-}
-
index 98acb03f0fb4d00e33ba64607591f3e43c56ad58..af9edc449d9e8614dbbabc3dd4db66eb0019d561 100755 (executable)
@@ -14,6 +14,9 @@
 
 /*#*
  *#* $Log$
+ *#* Revision 1.7  2007/02/12 09:40:43  asterix
+ *#* Remove randpool_load function. Add *data in randpool_init prototype.
+ *#*
  *#* Revision 1.6  2007/02/09 15:49:54  asterix
  *#* Fix bug in randpool_stir and randpool_add. Typos.
  *#*
@@ -58,11 +61,10 @@ typedef struct EntropyPool
 
 
 void randpool_add(EntropyPool *pool, void *data, size_t data_len, size_t entropy);
-void randpool_init(EntropyPool *pool);
+void randpool_init(EntropyPool *pool, void *_data, size_t len);
 size_t randpool_size(EntropyPool *pool);
 void randpool_get(EntropyPool *pool, void *data, size_t n_byte);
 void randpool_getN(EntropyPool *pool, void *data, size_t n_byte);
 bool randpool_save(void *data);
-uint8_t *randpool_load(void);
 
 #endif /* RANDPOOL_H */