Use MBEDTLS_ENTROPY_HARDWARE_ALT

Use MBEDTLS_ENTROPY_HARDWARE_ALT instead of a new global RNG
flag. When this flag is enabled, the platform provides the RNG.
When running unit tests, rnd_std_rand should be used by overriding
the mbedtls_hardware_poll.
diff --git a/include/mbedtls/config.h b/include/mbedtls/config.h
index 965efff..1a057a4 100644
--- a/include/mbedtls/config.h
+++ b/include/mbedtls/config.h
@@ -3683,14 +3683,6 @@
  */
 //#define MBEDTLS_PLATFORM_GMTIME_R_ALT
 
-/**
- * Uncomment the macro to let Mbed TLS use a platform implementation of
- * global RNG.
- *
- * By default the global RNG function will be a no-op.
- */
-//#define MBEDTLS_PLATFORM_GLOBAL_RNG
-
 /* \} name SECTION: Customisation configuration options */
 
 /**
diff --git a/library/platform_util.c b/library/platform_util.c
index 349146d..6ba4112 100644
--- a/library/platform_util.c
+++ b/library/platform_util.c
@@ -38,6 +38,10 @@
 #include "mbedtls/platform.h"
 #include "mbedtls/threading.h"
 
+#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT)
+#include "mbedtls/entropy_poll.h"
+#endif
+
 #include <stddef.h>
 #include <string.h>
 
@@ -135,13 +139,20 @@
     return( diff );
 }
 
-#if !defined(MBEDTLS_PLATFORM_GLOBAL_RNG)
 uint32_t mbedtls_platform_random_in_range( size_t num )
 {
+#if !defined(MBEDTLS_ENTROPY_HARDWARE_ALT)
     (void) num;
     return 0;
+#else
+    uint32_t result = 0;
+    size_t olen = 0;
+
+    mbedtls_hardware_poll( NULL, (unsigned char *) &result, sizeof( result ),
+                           &olen );
+    return( result % num );
+#endif
 }
-#endif /* !MBEDTLS_PLATFORM_GLOBAL_RNG */
 
 #if defined(MBEDTLS_HAVE_TIME_DATE) && !defined(MBEDTLS_PLATFORM_GMTIME_R_ALT)
 #include <time.h>
diff --git a/programs/ssl/query_config.c b/programs/ssl/query_config.c
index f785921..0c26921 100644
--- a/programs/ssl/query_config.c
+++ b/programs/ssl/query_config.c
@@ -2666,14 +2666,6 @@
     }
 #endif /* MBEDTLS_PLATFORM_GMTIME_R_ALT */
 
-#if defined(MBEDTLS_PLATFORM_GLOBAL_RNG)
-    if( strcmp( "MBEDTLS_PLATFORM_GLOBAL_RNG", config ) == 0 )
-    {
-        MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_GLOBAL_RNG );
-        return( 0 );
-    }
-#endif /* MBEDTLS_PLATFORM_GLOBAL_RNG */
-
 #if defined(MBEDTLS_SSL_CONF_ALLOW_LEGACY_RENEGOTIATION)
     if( strcmp( "MBEDTLS_SSL_CONF_ALLOW_LEGACY_RENEGOTIATION", config ) == 0 )
     {