/
usr
/
include
/
isc
/
/usr/include/isc
mkdir
upload
Name
Size
Mode
Actions
app.h
10535
0644
edit
dl
rm
assertions.h
3314
0644
edit
dl
rm
atomic.h
4258
0644
edit
dl
rm
base64.h
2967
0644
edit
dl
rm
bind9.h
1185
0644
edit
dl
rm
bitstring.h
4478
0644
edit
dl
rm
boolean.h
1212
0644
edit
dl
rm
buffer.h
22941
0644
edit
dl
rm
bufferlist.h
1979
0644
edit
dl
rm
commandline.h
1823
0644
edit
dl
rm
condition.h
2011
0644
edit
dl
rm
counter.h
2328
0644
edit
dl
rm
dir.h
2569
0644
edit
dl
rm
entropy.h
9444
0644
edit
dl
rm
error.h
1871
0644
edit
dl
rm
event.h
3360
0644
edit
dl
rm
eventclass.h
1915
0644
edit
dl
rm
file.h
9259
0644
edit
dl
rm
formatcheck.h
1423
0644
edit
dl
rm
fsaccess.h
7954
0644
edit
dl
rm
hash.h
5973
0644
edit
dl
rm
heap.h
5754
0644
edit
dl
rm
hex.h
2911
0644
edit
dl
rm
hmacmd5.h
1964
0644
edit
dl
rm
httpd.h
2029
0644
edit
dl
rm
int.h
1873
0644
edit
dl
rm
interfaceiter.h
3631
0644
edit
dl
rm
iterated_hash.h
1512
0644
edit
dl
rm
keyboard.h
1510
0644
edit
dl
rm
lang.h
1158
0644
edit
dl
rm
lex.h
9653
0644
edit
dl
rm
lfsr.h
3480
0644
edit
dl
rm
lib.h
1594
0644
edit
dl
rm
list.h
5887
0644
edit
dl
rm
log.h
28964
0644
edit
dl
rm
magic.h
1471
0644
edit
dl
rm
md5.h
2527
0644
edit
dl
rm
mem.h
21767
0644
edit
dl
rm
msgcat.h
3256
0644
edit
dl
rm
msgs.h
8862
0644
edit
dl
rm
mutex.h
4061
0644
edit
dl
rm
mutexblock.h
1902
0644
edit
dl
rm
namespace.h
7184
0644
edit
dl
rm
net.h
9269
0644
edit
dl
rm
netaddr.h
4917
0644
edit
dl
rm
netdb.h
1392
0644
edit
dl
rm
offset.h
1898
0644
edit
dl
rm
once.h
1510
0644
edit
dl
rm
ondestroy.h
3327
0644
edit
dl
rm
os.h
1191
0644
edit
dl
rm
parseint.h
2058
0644
edit
dl
rm
platform.h
8623
0644
edit
dl
rm
print.h
2449
0644
edit
dl
rm
quota.h
2873
0644
edit
dl
rm
radix.h
7058
0644
edit
dl
rm
random.h
1826
0644
edit
dl
rm
ratelimiter.h
3564
0644
edit
dl
rm
refcount.h
6203
0644
edit
dl
rm
region.h
2497
0644
edit
dl
rm
resource.h
3396
0644
edit
dl
rm
result.h
4814
0644
edit
dl
rm
resultclass.h
2077
0644
edit
dl
rm
rwlock.h
3843
0644
edit
dl
rm
serial.h
1959
0644
edit
dl
rm
sha1.h
1806
0644
edit
dl
rm
sha2.h
5861
0644
edit
dl
rm
sockaddr.h
6578
0644
edit
dl
rm
socket.h
32969
0644
edit
dl
rm
stdio.h
2243
0644
edit
dl
rm
stdlib.h
1221
0644
edit
dl
rm
stdtime.h
1880
0644
edit
dl
rm
string.h
6404
0644
edit
dl
rm
symtab.h
4748
0644
edit
dl
rm
syslog.h
1373
0644
edit
dl
rm
task.h
19753
0644
edit
dl
rm
taskpool.h
3787
0644
edit
dl
rm
thread.h
1878
0644
edit
dl
rm
time.h
8045
0644
edit
dl
rm
timer.h
11285
0644
edit
dl
rm
types.h
5929
0644
edit
dl
rm
util.h
7934
0644
edit
dl
rm
version.h
1207
0644
edit
dl
rm
xml.h
1556
0644
edit
dl
rm
Edit:
/usr/include/isc/lfsr.h
(3480B)
/* * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ /* $Id: lfsr.h,v 1.17 2007-06-19 23:47:18 tbox Exp $ */ #ifndef ISC_LFSR_H #define ISC_LFSR_H 1 /*! \file isc/lfsr.h */ #include <isc/lang.h> #include <isc/types.h> typedef struct isc_lfsr isc_lfsr_t; /*% * This function is called when reseeding is needed. It is allowed to * modify any state in the LFSR in any way it sees fit OTHER THAN "bits". * * It MUST set "count" to a new value or the lfsr will never reseed again. * * Also, a reseed will never occur in the middle of an extraction. This * is purely an optimization, and is probably what one would want. */ typedef void (*isc_lfsrreseed_t)(isc_lfsr_t *, void *); /*% * The members of this structure can be used by the application, but care * needs to be taken to not change state once the lfsr is in operation. */ struct isc_lfsr { isc_uint32_t state; /*%< previous state */ unsigned int bits; /*%< length */ isc_uint32_t tap; /*%< bit taps */ unsigned int count; /*%< reseed count (in BITS!) */ isc_lfsrreseed_t reseed; /*%< reseed function */ void *arg; /*%< reseed function argument */ }; ISC_LANG_BEGINDECLS void isc_lfsr_init(isc_lfsr_t *lfsr, isc_uint32_t state, unsigned int bits, isc_uint32_t tap, unsigned int count, isc_lfsrreseed_t reseed, void *arg); /*%< * Initialize an LFSR. * * Note: * *\li Putting untrusted values into this function will cause the LFSR to * generate (perhaps) non-maximal length sequences. * * Requires: * *\li lfsr != NULL * *\li 8 <= bits <= 32 * *\li tap != 0 */ void isc_lfsr_generate(isc_lfsr_t *lfsr, void *data, unsigned int count); /*%< * Returns "count" bytes of data from the LFSR. * * Requires: * *\li lfsr be valid. * *\li data != NULL. * *\li count > 0. */ void isc_lfsr_skip(isc_lfsr_t *lfsr, unsigned int skip); /*%< * Skip "skip" states. * * Requires: * *\li lfsr be valid. */ isc_uint32_t isc_lfsr_generate32(isc_lfsr_t *lfsr1, isc_lfsr_t *lfsr2); /*%< * Given two LFSRs, use the current state from each to skip entries in the * other. The next states are then xor'd together and returned. * * WARNING: * *\li This function is used only for very, very low security data, such * as DNS message IDs where it is desired to have an unpredictable * stream of bytes that are harder to predict than a simple flooding * attack. * * Notes: * *\li Since the current state from each of the LFSRs is used to skip * state in the other, it is important that no state be leaked * from either LFSR. * * Requires: * *\li lfsr1 and lfsr2 be valid. * *\li 1 <= skipbits <= 31 */ ISC_LANG_ENDDECLS #endif /* ISC_LFSR_H */
Save
cmd:
run