Merge pull request #1482 from dgarske/nourand

Added new define `NO_DEV_URANDOM` to disable the use of `/dev/urandom`
This commit is contained in:
toddouska
2018-04-06 09:00:37 -07:00
committed by GitHub

View File

@@ -1725,21 +1725,23 @@ int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz)
/* success, we're done */ /* success, we're done */
return ret; return ret;
} }
#ifdef FORCE_FAILURE_RDSEED #ifdef FORCE_FAILURE_RDSEED
/* don't fallback to /dev/urandom */ /* don't fallback to /dev/urandom */
return ret; return ret;
#else #else
/* fallback to /dev/urandom attempt */ /* reset error and fallback to using /dev/urandom */
ret = 0; ret = 0;
#endif #endif
} }
#endif /* HAVE_INTEL_RDSEED */ #endif /* HAVE_INTEL_RDSEED */
os->fd = open("/dev/urandom",O_RDONLY); #ifndef NO_DEV_URANDOM /* way to disable use of /dev/urandom */
if (os->fd == -1) { os->fd = open("/dev/urandom", O_RDONLY);
if (os->fd == -1)
#endif
{
/* may still have /dev/random */ /* may still have /dev/random */
os->fd = open("/dev/random",O_RDONLY); os->fd = open("/dev/random", O_RDONLY);
if (os->fd == -1) if (os->fd == -1)
return OPEN_RAN_E; return OPEN_RAN_E;
} }
@@ -1755,7 +1757,7 @@ int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz)
output += len; output += len;
if (sz) { if (sz) {
#ifdef BLOCKING #if defined(BLOCKING) || defined(WC_RNG_BLOCKING)
sleep(0); /* context switch */ sleep(0); /* context switch */
#else #else
ret = RAN_BLOCK_E; ret = RAN_BLOCK_E;