diff options
author | NIIBE Yutaka <gniibe@fsij.org> | 2021-11-15 14:45:57 +0900 |
---|---|---|
committer | NIIBE Yutaka <gniibe@fsij.org> | 2021-11-15 14:45:57 +0900 |
commit | ec671cfa239888b67fcafda40b19006b61d9bbf2 (patch) | |
tree | 57669068d247d7d57f63aa89379697fa39fd33fa /random/random-drbg.c | |
parent | e562e34c824dda9ce1c4a0af58e8366699a3d88b (diff) | |
download | libgcrypt-ec671cfa239888b67fcafda40b19006b61d9bbf2.tar.gz |
random: Include getentropy random module.
* random/rand-internal.h (_gcry_rndgetentropy_gather_random): Add.
* random/random-csprng.c [USE_RNDLINUX] (_gcry_rngcsprng_close_fds)
(getfnc_gather_random): Support getentropy random module.
* random/random-drbg.c: Likewise.
* random/random-fips.c: Likewise.
* random/random-system.c: Likewise.
* src/global.c [USE_RNDLINUX] (print_config): Show getentropy.
--
GnuPG-bug-id: 5636
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
Diffstat (limited to 'random/random-drbg.c')
-rw-r--r-- | random/random-drbg.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/random/random-drbg.c b/random/random-drbg.c index 6124f5fb..dc8c7044 100644 --- a/random/random-drbg.c +++ b/random/random-drbg.c @@ -618,7 +618,10 @@ drbg_get_entropy (drbg_state_t drbg, unsigned char *buffer, read_cb_buffer = buffer; read_cb_size = len; read_cb_len = 0; -#if USE_RNDLINUX +#if USE_RNDGETENTROPY + rc = _gcry_rndgetentropy_gather_random (drbg_read_cb, 0, len, + GCRY_VERY_STRONG_RANDOM); +#elif USE_RNDLINUX rc = _gcry_rndlinux_gather_random (drbg_read_cb, 0, len, GCRY_VERY_STRONG_RANDOM); #elif USE_RNDUNIX @@ -1865,11 +1868,13 @@ _gcry_rngdrbg_reinit (const char *flagstr, gcry_buffer_t *pers, int npers) void _gcry_rngdrbg_close_fds (void) { -#if USE_RNDLINUX drbg_lock (); +#if USE_RNDGETENTROPY + _gcry_rndgetentropy_gather_random (NULL, 0, 0, 0); +#elif USE_RNDLINUX _gcry_rndlinux_gather_random (NULL, 0, 0, 0); - drbg_unlock (); #endif + drbg_unlock (); } /* Print some statistics about the RNG. */ |