include/isc/deprecated.h \
include/isc/dir.h \
include/isc/endian.h \
+ include/isc/entropy.h \
include/isc/errno.h \
include/isc/error.h \
include/isc/event.h \
crc64.c \
dir.c \
entropy.c \
- entropy_private.h \
errno.c \
errno2result.c \
errno2result.h \
* information regarding copyright ownership.
*/
-#include <openssl/err.h>
-#include <openssl/rand.h>
-
+#include <isc/entropy.h>
#include <isc/types.h>
#include <isc/util.h>
-
-#include "entropy_private.h"
+#include <isc/uv.h>
void
isc_entropy_get(void *buf, size_t buflen) {
- if (RAND_bytes(buf, buflen) < 1) {
- FATAL_ERROR(__FILE__, __LINE__, "RAND_bytes(): %s",
- ERR_error_string(ERR_get_error(), NULL));
- }
+ int r = uv_random(NULL, NULL, buf, buflen, 0, NULL);
+
+ UV_RUNTIME_CHECK(uv_random, r);
}
#include <stdbool.h>
#include <stddef.h>
-#include "entropy_private.h"
-#include "isc/ascii.h"
-#include "isc/hash.h" /* IWYU pragma: keep */
-#include "isc/once.h"
-#include "isc/random.h"
-#include "isc/result.h"
-#include "isc/siphash.h"
-#include "isc/string.h"
-#include "isc/types.h"
-#include "isc/util.h"
+#include <isc/ascii.h>
+#include <isc/entropy.h>
+#include <isc/hash.h> /* IWYU pragma: keep */
+#include <isc/once.h>
+#include <isc/random.h>
+#include <isc/result.h>
+#include <isc/siphash.h>
+#include <isc/string.h>
+#include <isc/types.h>
+#include <isc/util.h>
static uint8_t isc_hash_key[16];
static uint8_t isc_hash32_key[8];
#include <isc/lang.h>
-/*! \file isc/entropy_private.h
+/*! \file isc/entropy.h
* \brief Implements wrapper around CSPRNG cryptographic library calls
* for getting cryptographically secure pseudo-random numbers.
*
- * - If OpenSSL is used, it uses RAND_bytes()
- * - If PKCS#11 is used, it uses pkcs_C_GenerateRandom()
- *
+ * Uses synchronous version of uv_random().
*/
ISC_LANG_BEGINDECLS
* information regarding copyright ownership.
*/
+#include <isc/entropy.h>
#include <isc/nonce.h>
-#include "entropy_private.h"
-
void
isc_nonce_buf(void *buf, size_t buflen) {
isc_entropy_get(buf, buflen);
#include <string.h>
#include <unistd.h>
+#include <isc/entropy.h>
#include <isc/random.h>
#include <isc/result.h>
#include <isc/thread.h>
#include <isc/types.h>
#include <isc/util.h>
-#include "entropy_private.h"
#include "random_p.h"
/*