summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNIIBE Yutaka <gniibe@fsij.org>2023-04-10 11:45:00 +0900
committerNIIBE Yutaka <gniibe@fsij.org>2023-04-11 15:01:43 +0900
commitd41177937cea4aa1e9042ebcd195a349c40e8071 (patch)
tree33cfa7fee2369b9fbaa2f2e6ef2242695d2c05cb
parent08f133c527eb50a84d30d8a2a3f1d1ec75c0ec9e (diff)
downloadlibgcrypt-d41177937cea4aa1e9042ebcd195a349c40e8071.tar.gz
random: Use getrandom only when it's appropriate.
* random/rndgetentropy.c (_gcry_rndgetentropy_gather_random) [GRND_RANDOM]: Conditionalize the use of getrandom, as it's not a portable function. -- Cherry-picked master commit of: fa21ddc158b5d7b5900856e5b131071302217a51 Fixes-commit: aab1d63e4def41593312f76de016c885ffafecde GnuPG-bug-id: 6442 Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
-rw-r--r--random/rndgetentropy.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/random/rndgetentropy.c b/random/rndgetentropy.c
index 513da0b9..a6f3c4ab 100644
--- a/random/rndgetentropy.c
+++ b/random/rndgetentropy.c
@@ -81,6 +81,7 @@ _gcry_rndgetentropy_gather_random (void (*add)(const void*, size_t,
do
{
_gcry_pre_syscall ();
+#ifdef GRND_RANDOM
if (fips_mode ())
{
/* DRBG chaining defined in SP 800-90A (rev 1) specify
@@ -98,6 +99,7 @@ _gcry_rndgetentropy_gather_random (void (*add)(const void*, size_t,
ret = getrandom (buffer, nbytes, GRND_RANDOM);
}
else
+#endif
{
nbytes = length < sizeof (buffer) ? length : sizeof (buffer);
ret = getentropy (buffer, nbytes);