w32: New envvar GCRYPT_RNDW32_DBG.
authorWerner Koch <wk@gnupg.org>
Fri, 27 Jan 2017 08:16:31 +0000 (09:16 +0100)
committerWerner Koch <wk@gnupg.org>
Fri, 27 Jan 2017 08:18:06 +0000 (09:18 +0100)
* random/rndw32.c (_gcry_rndw32_gather_random): Use getenv to set
DEBUG_ME.

Signed-off-by: Werner Koch <wk@gnupg.org>
doc/gcrypt.texi
random/rndw32.c

index 80c369b..a905d0f 100644 (file)
@@ -5388,6 +5388,13 @@ for entropy.  On some older Windows systems this could help to speed
 up the creation of random numbers but also decreases the amount of
 data used to init the random number generator.
 
+@item GCRYPT_RNDW32_DBG
+@cindex GCRYPT_RNDW32_DBG
+Setting the value of this variable to a positive integer logs
+information about the Windows entropy gatherer using the standard log
+interface.
+
+
 @item HOME
 @cindex HOME
 This is used to locate the socket to connect to the EGD random
index de6e783..8c507ac 100644 (file)
@@ -245,12 +245,13 @@ static RTLGENRANDOM        pRtlGenRandom;
 static int system_rng_available; /* Whether a system RNG is available.  */
 static HCRYPTPROV hRNGProv;      /* Handle to Intel RNG CSP. */
 
-static int debug_me;  /* Debug flag.  */
+/* The debug flag.  Debugging is enabled if the value of the envvar
+ * GCRY_RNDW32_DBG is a postive number.*/
+static int debug_me;
 
 static int system_is_w2000;     /* True if running on W2000.  */
 
 
-
 \f
 /* Try and connect to the system RNG if there's one present. */
 static void
@@ -787,11 +788,16 @@ _gcry_rndw32_gather_random (void (*add)(const void*, size_t,
   if (!is_initialized)
     {
       OSVERSIONINFO osvi = { sizeof( osvi ) };
+      const char *s;
+
+      if ((s = getenv ("GCRYPT_RNDW32_DBG")) && atoi (s) > 0)
+        debug_me = 1;
 
       GetVersionEx( &osvi );
       if (osvi.dwPlatformId != VER_PLATFORM_WIN32_NT)
         log_fatal ("can only run on a Windows NT platform\n" );
       system_is_w2000 = (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0);
+
       init_system_rng ();
       is_initialized = 1;
     }