diff --git a/lib/isc/entropy.c b/lib/isc/entropy.c index 949a306581..f7596ff315 100644 --- a/lib/isc/entropy.c +++ b/lib/isc/entropy.c @@ -12,6 +12,7 @@ #include #include +#include #include "entropy_private.h" diff --git a/lib/isc/include/isc/random.h b/lib/isc/include/isc/random.h index 6fe2da068c..edb06cec18 100644 --- a/lib/isc/include/isc/random.h +++ b/lib/isc/include/isc/random.h @@ -15,6 +15,7 @@ #include #include +#include /*! \file isc/random.h * \brief Implements wrapper around a non-cryptographically secure @@ -24,19 +25,19 @@ ISC_LANG_BEGINDECLS -uint8_t +isc_uint8_t isc_random8(void); /*!< * \brief Returns a single 8-bit random value. */ -uint16_t +isc_uint16_t isc_random16(void); /*!< * \brief Returns a single 16-bit random value. */ -uint32_t +isc_uint32_t isc_random32(void); /*!< * \brief Returns a single 32-bit random value. @@ -48,8 +49,8 @@ isc_random_buf(void *buf, size_t buflen); * \brief Fills the region buf of length buflen with random data. */ -uint32_t -isc_random_uniform(uint32_t upper_bound); +isc_uint32_t +isc_random_uniform(isc_uint32_t upper_bound); /*!< * \brief Will return a single 32-bit value, uniformly distributed but * less than upper_bound. This is recommended over diff --git a/lib/isc/random.c b/lib/isc/random.c index 490f0d95ad..f74a08665b 100644 --- a/lib/isc/random.c +++ b/lib/isc/random.c @@ -69,21 +69,21 @@ isc_random_initialize(void) { isc_entropy_get(seed, sizeof(seed)); } -uint8_t +isc_uint8_t isc_random8(void) { RUNTIME_CHECK(isc_once_do(&isc_random_once, isc_random_initialize) == ISC_R_SUCCESS); return (next() & 0xff); } -uint16_t +isc_uint16_t isc_random16(void) { RUNTIME_CHECK(isc_once_do(&isc_random_once, isc_random_initialize) == ISC_R_SUCCESS); return (next() & 0xffff); } -uint32_t +isc_uint32_t isc_random32(void) { RUNTIME_CHECK(isc_once_do(&isc_random_once, isc_random_initialize) == ISC_R_SUCCESS); @@ -99,7 +99,7 @@ isc_random_buf(void *buf, size_t buflen) { isc_random_initialize) == ISC_R_SUCCESS); int i; - uint32_t r; + isc_uint32_t r; for (i = 0; i + sizeof(r) <= buflen; i += sizeof(r)) { r = next(); @@ -114,10 +114,10 @@ isc_random_buf(void *buf, size_t buflen) { return; } -uint32_t +isc_uint32_t isc_random_uniform(uint32_t upper_bound) { /* Copy of arc4random_uniform from OpenBSD */ - uint32_t r, min; + isc_uint32_t r, min; RUNTIME_CHECK(isc_once_do(&isc_random_once, isc_random_initialize) == ISC_R_SUCCESS); diff --git a/lib/isc/xoshiro128starstar.c b/lib/isc/xoshiro128starstar.c index f101885bff..e44b8c022e 100644 --- a/lib/isc/xoshiro128starstar.c +++ b/lib/isc/xoshiro128starstar.c @@ -63,19 +63,19 @@ static pthread_mutex_t _mutex = PTHREAD_MUTEX_INITIALIZER; #define _UNLOCK() pthread_mutex_unlock(&_mutex) #endif /* defined(_WIN32) || defined(_WIN64) */ -static inline uint32_t rotl(const uint32_t x, int k) { +static inline isc_uint32_t rotl(const isc_uint32_t x, int k) { return (x << k) | (x >> (32 - k)); } -static uint32_t seed[4]; +static isc_uint32_t seed[4]; -static inline uint32_t +static inline isc_uint32_t next(void) { _LOCK(); - const uint32_t result_starstar = rotl(seed[0] * 5, 7) * 9; + const isc_uint32_t result_starstar = rotl(seed[0] * 5, 7) * 9; - const uint32_t t = seed[1] << 9; + const isc_uint32_t t = seed[1] << 9; seed[2] ^= seed[0]; seed[3] ^= seed[1];