/usr/include/bind9/isc
NameSizeModeActions
aes.h10800644editdlrm
app.h104780644editdlrm
assertions.h29070644editdlrm
atomic.h41680644editdlrm
backtrace.h38910644editdlrm
base32.h44530644editdlrm
base64.h28660644editdlrm
bind9.h8300644editdlrm
boolean.h5940644editdlrm
buffer.h262680644editdlrm
bufferlist.h14520644editdlrm
cmocka.h13830644editdlrm
commandline.h17130644editdlrm
condition.h14780644editdlrm
counter.h19260644editdlrm
crc64.h9980644editdlrm
deprecated.h6230644editdlrm
dir.h15980644editdlrm
endian.h47780644editdlrm
entropy.h103730644editdlrm
errno.h6590644editdlrm
errno2result.h9020644editdlrm
error.h14300644editdlrm
event.h30530644editdlrm
eventclass.h13810644editdlrm
file.h116670644editdlrm
formatcheck.h8930644editdlrm
fsaccess.h74420644editdlrm
hash.h76620644editdlrm
heap.h52640644editdlrm
hex.h28060644editdlrm
hmacmd5.h17870644editdlrm
hmacsha.h45110644editdlrm
ht.h43960644editdlrm
httpd.h23180644editdlrm
int.h10880644editdlrm
interfaceiter.h31200644editdlrm
iterated_hash.h10460644editdlrm
json.h14590644editdlrm
keyboard.h9890644editdlrm
lang.h6370644editdlrm
lex.h97710644editdlrm
lfsr.h29580644editdlrm
lib.h10680644editdlrm
likely.h8180644editdlrm
list.h57510644editdlrm
log.h287340644editdlrm
magic.h9940644editdlrm
md5.h23800644editdlrm
mem.h211100644editdlrm
meminfo.h7100644editdlrm
msgcat.h27260644editdlrm
msgs.h84220644editdlrm
mutex.h35240644editdlrm
mutexblock.h13750644editdlrm
net.h105340644editdlrm
netaddr.h45900644editdlrm
netdb.h8630644editdlrm
netscope.h9670644editdlrm
offset.h7000644editdlrm
once.h9830644editdlrm
ondestroy.h27990644editdlrm
os.h6710644editdlrm
parseint.h15420644editdlrm
platform.h97170644editdlrm
pool.h35020644editdlrm
portset.h32950644editdlrm
print.h24750644editdlrm
queue.h52040644editdlrm
quota.h24400644editdlrm
radix.h64910644editdlrm
random.h35820644editdlrm
ratelimiter.h34970644editdlrm
refcount.h81930644editdlrm
regex.h7670644editdlrm
region.h20340644editdlrm
resource.h28620644editdlrm
result.h49820644editdlrm
resultclass.h15990644editdlrm
rwlock.h38070644editdlrm
safe.h13520644editdlrm
serial.h13680644editdlrm
sha1.h15560644editdlrm
sha2.h57330644editdlrm
siphash.h7340644editdlrm
sockaddr.h60390644editdlrm
socket.h366550644editdlrm
stat.h8060644editdlrm
stats.h37090644editdlrm
stdatomic.h52500644editdlrm
stdio.h17870644editdlrm
stdlib.h7040644editdlrm
stdtime.h10650644editdlrm
strerror.h7770644editdlrm
string.h60190644editdlrm
symtab.h43260644editdlrm
syslog.h8440644editdlrm
task.h215440644editdlrm
taskpool.h37090644editdlrm
thread.h15060644editdlrm
time.h88760644editdlrm
timer.h107950644editdlrm
tm.h8950644editdlrm
types.h57800644editdlrm
utf8.h9280644editdlrm
util.h105370644editdlrm
version.h6890644editdlrm
xml.h10940644editdlrm
Edit: /usr/include/bind9/isc/random.h (3582B)
/* * Copyright (C) Internet Systems Consortium, Inc. ("ISC") * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, you can obtain one at https://mozilla.org/MPL/2.0/. * * See the COPYRIGHT file distributed with this work for additional * information regarding copyright ownership. */ #ifndef ISC_RANDOM_H #define ISC_RANDOM_H 1 #include #include #include #include #include /*! \file isc/random.h * \brief Implements pseudo random number generators. * * Two pseudo-random number generators are implemented, in isc_random_* * and isc_rng_*. Neither one is very strong; they should not be used * in cryptography functions. * * isc_random_* is based on arc4random if it is available on the system. * Otherwise it is based on the posix srand() and rand() functions. * It is useful for jittering values a bit here and there, such as * timeouts, etc, but should not be relied upon to generate * unpredictable sequences (for example, when choosing transaction IDs). * * isc_rng_* is based on ChaCha20, and is seeded and stirred from the * system entropy source. It is stronger than isc_random_* and can * be used for generating unpredictable sequences. It is still not as * good as using system entropy directly (see entropy.h) and should not * be used for cryptographic functions such as key generation. */ ISC_LANG_BEGINDECLS typedef struct isc_rng isc_rng_t; /*%< * Opaque type */ void isc_random_seed(uint32_t seed); /*%< * Set the initial seed of the random state. */ void isc_random_get(uint32_t *val); /*%< * Get a random value. * * Requires: * val != NULL. */ uint32_t isc_random_jitter(uint32_t max, uint32_t jitter); /*%< * Get a random value between (max - jitter) and (max). * This is useful for jittering timer values. */ isc_result_t isc_rng_create(isc_mem_t *mctx, isc_entropy_t *entropy, isc_rng_t **rngp); /*%< * Creates and initializes a pseudo random number generator. The * returned RNG can be used to generate pseudo random numbers. * * The reference count of the returned RNG is set to 1. * * Requires: * \li mctx is a pointer to a valid memory context. * \li entropy is an optional entopy source (can be NULL) * \li rngp != NULL && *rngp == NULL is where a pointer to the RNG is * returned. * * Ensures: *\li If result is ISC_R_SUCCESS: * *rngp points to a valid RNG. * *\li If result is failure: * *rngp does not point to a valid RNG. * * Returns: *\li #ISC_R_SUCCESS Success *\li #ISC_R_NOMEMORY Resource limit: Out of Memory */ void isc_rng_attach(isc_rng_t *source, isc_rng_t **targetp); /*%< * Increments a reference count on the passed RNG. * * Requires: * \li source the RNG struct to attach to (is refcount is incremented) * \li targetp != NULL && *targetp == NULL where a pointer to the * reference incremented RNG is returned. */ void isc_rng_detach(isc_rng_t **rngp); /*%< * Decrements a reference count on the passed RNG. If the reference * count reaches 0, the RNG is destroyed. * * Requires: * \li rngp != NULL the RNG struct to decrement reference for */ uint16_t isc_rng_random(isc_rng_t *rngctx); /*%< * Returns a pseudo random 16-bit unsigned integer. */ uint16_t isc_rng_uniformrandom(isc_rng_t *rngctx, uint16_t upper_bound); /*%< * Returns a uniformly distributed pseudo-random 16-bit unsigned integer * less than 'upper_bound'. */ ISC_LANG_ENDDECLS #endif /* ISC_RANDOM_H */