summaryrefslogtreecommitdiff
path: root/random/random-csprng.c
diff options
context:
space:
mode:
Diffstat (limited to 'random/random-csprng.c')
-rw-r--r--random/random-csprng.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/random/random-csprng.c b/random/random-csprng.c
index 0228a1f0..1664b708 100644
--- a/random/random-csprng.c
+++ b/random/random-csprng.c
@@ -352,10 +352,12 @@ void
_gcry_rngcsprng_close_fds (void)
{
lock_pool ();
-#if USE_RNDLINUX
+#if USE_RNDGETENTROPY
+ _gcry_rndgetentropy_gather_random (NULL, 0, 0, 0);
+#elif USE_RNDLINUX
_gcry_rndlinux_gather_random (NULL, 0, 0, 0);
- pool_filled = 0; /* Force re-open on next use. */
#endif
+ pool_filled = 0; /* Force re-open on next use. */
unlock_pool ();
}
@@ -1204,6 +1206,11 @@ getfnc_gather_random (void))(void (*)(const void*, size_t,
int (*fnc)(void (*)(const void*, size_t, enum random_origins),
enum random_origins, size_t, int);
+#if USE_RNDGETENTROPY
+ fnc = _gcry_rndgetentropy_gather_random;
+ return fnc;
+#endif
+
#if USE_RNDLINUX
if ( !access (NAME_OF_DEV_RANDOM, R_OK)
&& !access (NAME_OF_DEV_URANDOM, R_OK))