Current Path: > > usr > include > bind9 > isc >
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
aes.h | File | 1080 bytes | February 20 2025 09:05:24. | |
app.h | File | 10478 bytes | February 20 2025 09:05:24. | |
assertions.h | File | 2907 bytes | February 20 2025 09:05:24. | |
atomic.h | File | 4168 bytes | February 20 2025 09:05:24. | |
backtrace.h | File | 3891 bytes | February 20 2025 09:05:24. | |
base32.h | File | 4453 bytes | February 20 2025 09:05:24. | |
base64.h | File | 2866 bytes | February 20 2025 09:05:24. | |
bind9.h | File | 830 bytes | February 20 2025 09:05:24. | |
boolean.h | File | 594 bytes | February 20 2025 09:05:24. | |
buffer.h | File | 26268 bytes | February 20 2025 09:05:24. | |
bufferlist.h | File | 1452 bytes | February 20 2025 09:05:24. | |
cmocka.h | File | 1383 bytes | February 20 2025 09:05:24. | |
commandline.h | File | 1713 bytes | February 20 2025 09:05:24. | |
condition.h | File | 1478 bytes | February 20 2025 09:05:24. | |
counter.h | File | 1926 bytes | February 20 2025 09:05:24. | |
crc64.h | File | 998 bytes | February 20 2025 09:05:24. | |
deprecated.h | File | 623 bytes | February 20 2025 09:05:24. | |
dir.h | File | 1598 bytes | February 20 2025 09:05:24. | |
endian.h | File | 4778 bytes | February 20 2025 09:05:24. | |
entropy.h | File | 10373 bytes | February 20 2025 09:05:24. | |
errno.h | File | 659 bytes | February 20 2025 09:05:24. | |
errno2result.h | File | 902 bytes | February 20 2025 09:05:37. | |
error.h | File | 1430 bytes | February 20 2025 09:05:24. | |
event.h | File | 3053 bytes | February 20 2025 09:05:24. | |
eventclass.h | File | 1381 bytes | February 20 2025 09:05:24. | |
file.h | File | 11667 bytes | February 20 2025 09:05:24. | |
formatcheck.h | File | 893 bytes | February 20 2025 09:05:24. | |
fsaccess.h | File | 7442 bytes | February 20 2025 09:05:24. | |
hash.h | File | 7662 bytes | February 20 2025 09:05:24. | |
heap.h | File | 5264 bytes | February 20 2025 09:05:24. | |
hex.h | File | 2806 bytes | February 20 2025 09:05:24. | |
hmacmd5.h | File | 1787 bytes | February 20 2025 09:05:24. | |
hmacsha.h | File | 4511 bytes | February 20 2025 09:05:24. | |
ht.h | File | 4396 bytes | February 20 2025 09:05:24. | |
httpd.h | File | 2318 bytes | February 20 2025 09:05:24. | |
int.h | File | 1088 bytes | February 20 2025 09:05:24. | |
interfaceiter.h | File | 3120 bytes | February 20 2025 09:05:24. | |
iterated_hash.h | File | 1046 bytes | February 20 2025 09:05:24. | |
json.h | File | 1459 bytes | February 20 2025 09:05:24. | |
keyboard.h | File | 989 bytes | February 20 2025 09:05:24. | |
lang.h | File | 637 bytes | February 20 2025 09:05:24. | |
lex.h | File | 9771 bytes | February 20 2025 09:05:24. | |
lfsr.h | File | 2958 bytes | February 20 2025 09:05:24. | |
lib.h | File | 1068 bytes | February 20 2025 09:05:24. | |
likely.h | File | 818 bytes | February 20 2025 09:05:24. | |
list.h | File | 5751 bytes | February 20 2025 09:05:24. | |
log.h | File | 28734 bytes | February 20 2025 09:05:24. | |
magic.h | File | 994 bytes | February 20 2025 09:05:24. | |
md5.h | File | 2380 bytes | February 20 2025 09:05:24. | |
mem.h | File | 21110 bytes | February 20 2025 09:05:24. | |
meminfo.h | File | 710 bytes | February 20 2025 09:05:24. | |
msgcat.h | File | 2726 bytes | February 20 2025 09:05:24. | |
msgs.h | File | 8422 bytes | February 20 2025 09:05:24. | |
mutex.h | File | 3524 bytes | February 20 2025 09:05:24. | |
mutexblock.h | File | 1375 bytes | February 20 2025 09:05:24. | |
net.h | File | 10534 bytes | February 20 2025 09:05:24. | |
netaddr.h | File | 4590 bytes | February 20 2025 09:05:24. | |
netdb.h | File | 863 bytes | February 20 2025 09:05:24. | |
netscope.h | File | 967 bytes | February 20 2025 09:05:24. | |
offset.h | File | 700 bytes | February 20 2025 09:05:24. | |
once.h | File | 983 bytes | February 20 2025 09:05:24. | |
ondestroy.h | File | 2799 bytes | February 20 2025 09:05:24. | |
os.h | File | 671 bytes | February 20 2025 09:05:24. | |
parseint.h | File | 1542 bytes | February 20 2025 09:05:24. | |
platform.h | File | 9717 bytes | February 20 2025 09:05:24. | |
pool.h | File | 3502 bytes | February 20 2025 09:05:24. | |
portset.h | File | 3295 bytes | February 20 2025 09:05:24. | |
print.h | File | 2475 bytes | February 20 2025 09:05:24. | |
queue.h | File | 5204 bytes | February 20 2025 09:05:24. | |
quota.h | File | 2440 bytes | February 20 2025 09:05:24. | |
radix.h | File | 6491 bytes | February 20 2025 09:05:24. | |
random.h | File | 3582 bytes | February 20 2025 09:05:24. | |
ratelimiter.h | File | 3497 bytes | February 20 2025 09:05:24. | |
refcount.h | File | 8193 bytes | February 20 2025 09:05:24. | |
regex.h | File | 767 bytes | February 20 2025 09:05:24. | |
region.h | File | 2034 bytes | February 20 2025 09:05:24. | |
resource.h | File | 2862 bytes | February 20 2025 09:05:24. | |
result.h | File | 4982 bytes | February 20 2025 09:05:24. | |
resultclass.h | File | 1599 bytes | February 20 2025 09:05:24. | |
rwlock.h | File | 3807 bytes | February 20 2025 09:05:24. | |
safe.h | File | 1352 bytes | February 20 2025 09:05:24. | |
serial.h | File | 1368 bytes | February 20 2025 09:05:24. | |
sha1.h | File | 1556 bytes | February 20 2025 09:05:24. | |
sha2.h | File | 5733 bytes | February 20 2025 09:05:24. | |
siphash.h | File | 734 bytes | February 20 2025 09:05:24. | |
sockaddr.h | File | 6039 bytes | February 20 2025 09:05:24. | |
socket.h | File | 36655 bytes | February 20 2025 09:05:24. | |
stat.h | File | 806 bytes | February 20 2025 09:05:24. | |
stats.h | File | 3709 bytes | February 20 2025 09:05:24. | |
stdatomic.h | File | 5250 bytes | February 20 2025 09:05:24. | |
stdio.h | File | 1787 bytes | February 20 2025 09:05:24. | |
stdlib.h | File | 704 bytes | February 20 2025 09:05:24. | |
stdtime.h | File | 1065 bytes | February 20 2025 09:05:24. | |
strerror.h | File | 777 bytes | February 20 2025 09:05:24. | |
string.h | File | 6019 bytes | February 20 2025 09:05:24. | |
symtab.h | File | 4326 bytes | February 20 2025 09:05:24. | |
syslog.h | File | 844 bytes | February 20 2025 09:05:24. | |
task.h | File | 21544 bytes | February 20 2025 09:05:24. | |
taskpool.h | File | 3709 bytes | February 20 2025 09:05:24. | |
thread.h | File | 1506 bytes | February 20 2025 09:05:24. | |
time.h | File | 8876 bytes | February 20 2025 09:05:24. | |
timer.h | File | 10795 bytes | February 20 2025 09:05:24. | |
tm.h | File | 895 bytes | February 20 2025 09:05:24. | |
types.h | File | 5780 bytes | February 20 2025 09:05:24. | |
utf8.h | File | 928 bytes | February 20 2025 09:05:24. | |
util.h | File | 10537 bytes | February 20 2025 09:05:24. | |
version.h | File | 689 bytes | February 20 2025 09:05:24. | |
xml.h | File | 1094 bytes | February 20 2025 09:05:24. |
/* * 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_ENTROPY_H #define ISC_ENTROPY_H 1 /***** ***** Module Info *****/ /*! \file isc/entropy.h * \brief The entropy API * * \li MP: * The entropy object is locked internally. All callbacks into * application-provided functions (for setup, gathering, and * shutdown of sources) are guaranteed to be called with the * entropy API lock held. This means these functions are * not permitted to call back into the entropy API. * * \li Reliability: * No anticipated impact. * * \li Resources: * A buffer, used as an entropy pool. * * \li Security: * While this code is believed to implement good entropy gathering * and distribution, it has not been reviewed by a cryptographic * expert. * Since the added entropy is only as good as the sources used, * this module could hand out bad data and never know it. * * \li Standards: * None. */ /*** *** Imports ***/ #include <stdbool.h> #include <stdio.h> #include <isc/lang.h> #include <isc/types.h> /*@{*/ /*% Entropy callback function. */ typedef isc_result_t (*isc_entropystart_t)(isc_entropysource_t *source, void *arg, bool blocking); typedef isc_result_t (*isc_entropyget_t)(isc_entropysource_t *source, void *arg, bool blocking); typedef void (*isc_entropystop_t)(isc_entropysource_t *source, void *arg); /*@}*/ /*** *** Flags. ***/ /*! * \brief * Extract only "good" data; return failure if there is not enough * data available and there are no sources which we can poll to get * data, or those sources are empty. * * */ #define ISC_ENTROPY_GOODONLY 0x00000001U /*! * \brief * Extract as much good data as possible, but if there isn't enough * at hand, return what is available. This flag only makes sense * when used with _GOODONLY. */ #define ISC_ENTROPY_PARTIAL 0x00000002U /*! * \brief * Block the task until data is available. This is contrary to the * ISC task system, where tasks should never block. However, if * this is a special purpose application where blocking a task is * acceptable (say, an offline zone signer) this flag may be set. * This flag only makes sense when used with _GOODONLY, and will * block regardless of the setting for _PARTIAL. */ #define ISC_ENTROPY_BLOCKING 0x00000004U /*! * \brief * Estimate the amount of entropy contained in the sample pool. * If this is not set, the source will be gathered and periodically * mixed into the entropy pool, but no increment in contained entropy * will be assumed. This flag only makes sense on sample sources. */ #define ISC_ENTROPYSOURCE_ESTIMATE 0x00000001U /* * For use with isc_entropy_usebestsource(). */ /*! * \brief * Use the keyboard as the only entropy source. */ #define ISC_ENTROPY_KEYBOARDYES 1 /*! * \brief * Never use the keyboard as an entropy source. */ #define ISC_ENTROPY_KEYBOARDNO 2 /*! * \brief * Use the keyboard as an entropy source only if opening the * random device fails. */ #define ISC_ENTROPY_KEYBOARDMAYBE 3 ISC_LANG_BEGINDECLS /*** *** Functions ***/ isc_result_t isc_entropy_create(isc_mem_t *mctx, isc_entropy_t **entp); /*!< * \brief Create a new entropy object. */ void isc_entropy_attach(isc_entropy_t *ent, isc_entropy_t **entp); /*!< * Attaches to an entropy object. */ void isc_entropy_detach(isc_entropy_t **entp); /*!< * \brief Detaches from an entropy object. */ isc_result_t isc_entropy_createfilesource(isc_entropy_t *ent, const char *fname); /*!< * \brief Create a new entropy source from a file. * * The file is assumed to contain good randomness, and will be mixed directly * into the pool with every byte adding 8 bits of entropy. * * The file will be put into non-blocking mode, so it may be a device file, * such as /dev/random. /dev/urandom should not be used here if it can * be avoided, since it will always provide data even if it isn't good. * We will make as much pseudorandom data as we need internally if our * caller asks for it. * * If we hit end-of-file, we will stop reading from this source. Callers * who require strong random data will get failure when our pool drains. * The file will never be opened/read again once EOF is reached. */ void isc_entropy_destroysource(isc_entropysource_t **sourcep); /*!< * \brief Removes an entropy source from the entropy system. */ isc_result_t isc_entropy_createsamplesource(isc_entropy_t *ent, isc_entropysource_t **sourcep); /*!< * \brief Create an entropy source that consists of samples. Each sample is * added to the source via isc_entropy_addsamples(), below. */ isc_result_t isc_entropy_createcallbacksource(isc_entropy_t *ent, isc_entropystart_t start, isc_entropyget_t get, isc_entropystop_t stop, void *arg, isc_entropysource_t **sourcep); /*!< * \brief Create an entropy source that is polled via a callback. * * This would be used when keyboard input is used, or a GUI input method. * It can also be used to hook in any external entropy source. * * Samples are added via isc_entropy_addcallbacksample(), below. * _addcallbacksample() is the only function which may be called from * within an entropy API callback function. */ void isc_entropy_stopcallbacksources(isc_entropy_t *ent); /*!< * \brief Call the stop functions for callback sources that have had their * start functions called. */ /*@{*/ isc_result_t isc_entropy_addcallbacksample(isc_entropysource_t *source, uint32_t sample, uint32_t extra); isc_result_t isc_entropy_addsample(isc_entropysource_t *source, uint32_t sample, uint32_t extra); /*!< * \brief Add a sample to the sample source. * * The sample MUST be a timestamp * that increases over time, with the exception of wrap-around for * extremely high resolution timers which will quickly wrap-around * a 32-bit integer. * * The "extra" parameter is used only to add a bit more unpredictable * data. It is not used other than included in the hash of samples. * * When in an entropy API callback function, _addcallbacksource() must be * used. At all other times, _addsample() must be used. */ /*@}*/ isc_result_t isc_entropy_getdata(isc_entropy_t *ent, void *data, unsigned int length, unsigned int *returned, unsigned int flags); /*!< * \brief Get random data from entropy pool 'ent'. * * If a hook has been set up using isc_entropy_sethook() and * isc_entropy_usehook(), then the hook function will be called to get * random data. * * Otherwise, randomness is extracted from the entropy pool set up in BIND. * This may cause the pool to be loaded from various sources. Ths is done * by stirring the pool and returning a part of hash as randomness. * (Note that no secrets are given away here since parts of the hash are * XORed together before returning.) * * 'flags' may contain ISC_ENTROPY_GOODONLY, ISC_ENTROPY_PARTIAL, or * ISC_ENTROPY_BLOCKING. These will be honored if the hook function is * not in use. If it is, the flags will be passed to the hook function * but it may ignore them. * * Up to 'length' bytes of randomness are retrieved and copied into 'data'. * (If 'returned' is not NULL, and the number of bytes copied is less than * 'length' - which may happen if ISC_ENTROPY_PARTIAL was used - then the * number of bytes copied will be stored in *returned.) * * Returns: * \li ISC_R_SUCCESS on success * \li ISC_R_NOENTROPY if entropy pool is empty * \li other error codes are possible when a hook is in use */ void isc_entropy_putdata(isc_entropy_t *ent, void *data, unsigned int length, uint32_t entropy); /*!< * \brief Add "length" bytes in "data" to the entropy pool, incrementing the * pool's entropy count by "entropy." * * These bytes will prime the pseudorandom portion even if no entropy is * actually added. */ void isc_entropy_stats(isc_entropy_t *ent, FILE *out); /*!< * \brief Dump some (trivial) stats to the stdio stream "out". */ unsigned int isc_entropy_status(isc_entropy_t *end); /* * Returns the number of bits the pool currently contains. This is just * an estimate. */ isc_result_t isc_entropy_usebestsource(isc_entropy_t *ectx, isc_entropysource_t **source, const char *randomfile, int use_keyboard); /*!< * \brief Use whatever source of entropy is best. * * Notes: *\li If "randomfile" is not NULL, open it with * isc_entropy_createfilesource(). * *\li If "randomfile" is NULL and the system's random device was detected * when the program was configured and built, open that device with * isc_entropy_createfilesource(). * *\li If "use_keyboard" is #ISC_ENTROPY_KEYBOARDYES, then always open * the keyboard as an entropy source (possibly in addition to * "randomfile" or the random device). * *\li If "use_keyboard" is #ISC_ENTROPY_KEYBOARDMAYBE, open the keyboard only * if opening the random file/device fails. A message will be * printed describing the need for keyboard input. * *\li If "use_keyboard" is #ISC_ENTROPY_KEYBOARDNO, the keyboard will * never be opened. * * Returns: *\li #ISC_R_SUCCESS if at least one source of entropy could be started. * *\li #ISC_R_NOENTROPY if use_keyboard is #ISC_ENTROPY_KEYBOARDNO and * there is no random device pathname compiled into the program. * *\li A return code from isc_entropy_createfilesource() or * isc_entropy_createcallbacksource(). */ void isc_entropy_usehook(isc_entropy_t *ectx, bool onoff); /*!< * \brief Configure entropy context 'ectx' to use the hook function * * Sets the entropy context to call the hook function for random number * generation, if such a function has been configured via * isc_entropy_sethook(), whenever isc_entropy_getdata() is called. */ void isc_entropy_sethook(isc_entropy_getdata_t myhook); /*!< * \brief Set the hook function. * * The hook function is a global value: only one hook function * can be set in the system. Individual entropy contexts may be * configured to use it, or not, by calling isc_entropy_usehook(). */ ISC_LANG_ENDDECLS #endif /* ISC_ENTROPY_H */
SILENT KILLER Tool