diff options
author | David CARLIER <devnexen@gmail.com> | 2021-06-26 14:12:38 +0100 |
---|---|---|
committer | Pauli <pauli@openssl.org> | 2021-06-29 19:03:28 +1000 |
commit | f0b9e75e4f9d6ae74389cd1b019b77cf2bd01033 (patch) | |
tree | 6c6f3ac28999d94ef8002b4a65024b1523369db1 /providers/implementations/rands | |
parent | 19c0b46b83335b36a9816abef4e82f74863a4e0a (diff) |
darwin platform replacing getentropy usage by platform api instead.
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/15924)
Diffstat (limited to 'providers/implementations/rands')
-rw-r--r-- | providers/implementations/rands/seeding/rand_unix.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/providers/implementations/rands/seeding/rand_unix.c b/providers/implementations/rands/seeding/rand_unix.c index 2e6429344c..eab08a8150 100644 --- a/providers/implementations/rands/seeding/rand_unix.c +++ b/providers/implementations/rands/seeding/rand_unix.c @@ -40,6 +40,9 @@ # include <sys/param.h> # include <sys/random.h> #endif +#if defined(__APPLE__) +# include <CommonCrypto/CommonRandom.h> +#endif #if (defined(OPENSSL_SYS_UNIX) && !defined(OPENSSL_SYS_VXWORKS)) \ || defined(__DJGPP__) @@ -366,6 +369,12 @@ static ssize_t syscall_random(void *buf, size_t buflen) if (errno != ENOSYS) return -1; } +# elif defined(__APPLE__) + + if (CCRandomGenerateBytes(buf, buflen) == kCCSuccess) + return (ssize_t)buflen; + + return -1; # else union { void *p; |