1 /* Copyright 2024 The BoringSSL Authors 2 * 3 * Permission to use, copy, modify, and/or distribute this software for any 4 * purpose with or without fee is hereby granted, provided that the above 5 * copyright notice and this permission notice appear in all copies. 6 * 7 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 8 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 9 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 10 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 11 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 12 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 13 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ 14 15 #ifndef OPENSSL_HEADER_CRYPTO_SYSRAND_INTERNAL_H 16 #define OPENSSL_HEADER_CRYPTO_SYSRAND_INTERNAL_H 17 18 #include <openssl/base.h> 19 20 #if defined(BORINGSSL_UNSAFE_DETERMINISTIC_MODE) 21 #define OPENSSL_RAND_DETERMINISTIC 22 #elif defined(OPENSSL_TRUSTY) 23 #define OPENSSL_RAND_TRUSTY 24 #elif defined(OPENSSL_WINDOWS) 25 #define OPENSSL_RAND_WINDOWS 26 #elif defined(OPENSSL_LINUX) 27 #define OPENSSL_RAND_URANDOM 28 #elif defined(OPENSSL_APPLE) && !defined(OPENSSL_MACOS) 29 // Unlike macOS, iOS and similar hide away getentropy(). 30 #define OPENSSL_RAND_IOS 31 #else 32 // By default if you are integrating BoringSSL we expect you to 33 // provide getentropy from the <unistd.h> header file. 34 #define OPENSSL_RAND_GETENTROPY 35 #endif 36 37 #endif // OPENSSL_HEADER_CRYPTO__SYSRAND_INTERNAL_H 38