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-10 11:45:00 +0900
commitfa21ddc158b5d7b5900856e5b131071302217a51 (patch)
treead5be9da3d9a9a1d595d6ffdf0a3fe4cb836cf28
parent137f1fd82bc9136d434ca41f58d62091b64df6db (diff)
downloadlibgcrypt-fa21ddc158b5d7b5900856e5b131071302217a51.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. -- 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);