- Added option to prevent default entropy sources from loading (POLARSSL_NO_DEFAULT_ENTROPY_SOURCES)

diff --git a/library/entropy.c b/library/entropy.c
index ebace08..9662454 100644
--- a/library/entropy.c
+++ b/library/entropy.c
@@ -41,7 +41,11 @@
     memset( ctx, 0, sizeof(entropy_context) );
 
     sha4_starts( &ctx->accumulator, 0 );
+#if defined(POLARSSL_HAVEGE_C)
+    havege_init( &ctx->havege_data );
+#endif
 
+#if !defined(POLARSSL_NO_DEFAULT_ENTROPY_SOURCES)
 #if !defined(POLARSSL_NO_PLATFORM_ENTROPY)
     entropy_add_source( ctx, platform_entropy_poll, NULL,
                         ENTROPY_MIN_PLATFORM );
@@ -50,10 +54,10 @@
     entropy_add_source( ctx, hardclock_poll, NULL, ENTROPY_MIN_HARDCLOCK );
 #endif
 #if defined(POLARSSL_HAVEGE_C)
-    havege_init( &ctx->havege_data );
     entropy_add_source( ctx, havege_poll, &ctx->havege_data,
                         ENTROPY_MIN_HAVEGE );
 #endif
+#endif /* POLARSSL_NO_DEFAULT_ENTROPY_SOURCES */
 }
 
 int entropy_add_source( entropy_context *ctx,
@@ -117,6 +121,9 @@
     unsigned char buf[ENTROPY_MAX_GATHER];
     size_t olen;
     
+    if( ctx->source_count == 0 )
+        return( POLARSSL_ERR_ENTROPY_NO_SOURCES_DEFINED );
+
     /*
      * Run through our entropy sources
      */
diff --git a/library/error.c b/library/error.c
index 05e84e7..5dcd175 100644
--- a/library/error.c
+++ b/library/error.c
@@ -436,6 +436,8 @@
         snprintf( buf, buflen, "ENTROPY - Critical entropy source failure" );
     if( use_ret == -(POLARSSL_ERR_ENTROPY_MAX_SOURCES) )
         snprintf( buf, buflen, "ENTROPY - No more sources can be added" );
+    if( use_ret == -(POLARSSL_ERR_ENTROPY_NO_SOURCES_DEFINED) )
+        snprintf( buf, buflen, "ENTROPY - No sources have been added to poll" );
 #endif /* POLARSSL_ENTROPY_C */
 
 #if defined(POLARSSL_MD2_C)