Fix entropy thresholds
diff --git a/library/entropy.c b/library/entropy.c
index 3626d34..fa3dcde 100644
--- a/library/entropy.c
+++ b/library/entropy.c
@@ -250,7 +250,7 @@
int mbedtls_entropy_func( void *data, unsigned char *output, size_t len )
{
- int ret, count = 0, i, reached;
+ int ret, count = 0, i, done;
mbedtls_entropy_context *ctx = (mbedtls_entropy_context *) data;
unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE];
@@ -276,13 +276,12 @@
if( ( ret = entropy_gather_internal( ctx ) ) != 0 )
goto exit;
- reached = 0;
-
+ done = 1;
for( i = 0; i < ctx->source_count; i++ )
- if( ctx->source[i].size >= ctx->source[i].threshold )
- reached++;
+ if( ctx->source[i].size < ctx->source[i].threshold )
+ done = 0;
}
- while( reached != ctx->source_count );
+ while( ! done );
memset( buf, 0, MBEDTLS_ENTROPY_BLOCK_SIZE );