PHP 7.4.33
Preview: lfsr.h Size: 2.89 KB
/home/godevadmin/public_html/upload_images/home/000~ROOT~000/usr/include/bind9/isc/lfsr.h

/*
 * 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_LFSR_H
#define ISC_LFSR_H 1

/*! \file isc/lfsr.h */

#include <inttypes.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 {
	uint32_t		state;	/*%< previous state */
	unsigned int		bits;	/*%< length */
	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, uint32_t state, unsigned int bits,
		   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.
 */

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 */

Directory Contents

Dirs: 0 × Files: 108

Name Size Perms Modified Actions
1.05 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
10.23 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
2.84 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
4.07 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
3.80 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
4.35 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
2.80 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
830 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
594 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
25.65 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.42 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.35 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.67 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.44 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.88 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
998 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
623 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.56 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
4.67 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
10.13 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
659 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
902 B lrw-r--r-- 2025-02-20 09:05:37
Edit Download
1.40 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
2.98 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.35 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
11.39 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
893 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
7.27 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
7.48 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
5.14 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
2.74 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.75 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
4.41 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
4.29 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
2.26 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.06 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
3.05 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.02 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.42 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
989 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
637 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
9.54 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
2.89 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.04 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
818 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
5.62 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
28.06 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
994 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
2.32 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
20.62 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
710 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
2.66 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
8.22 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
3.44 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.34 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
10.29 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
4.48 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
863 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
967 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
700 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
983 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
2.73 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
671 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.51 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
9.49 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
3.42 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
3.22 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
2.42 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
5.08 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
2.38 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
6.34 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
3.50 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
3.42 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
8.00 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
767 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.99 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
2.79 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
4.87 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.56 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
3.72 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.32 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.34 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.52 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
5.60 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
734 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
5.90 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
35.80 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
806 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
3.62 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
5.13 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.75 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
704 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.04 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
777 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
5.88 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
4.22 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
844 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
21.04 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
3.62 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.47 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
8.67 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
10.54 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
895 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
5.64 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
928 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
10.29 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download
689 B lrw-r--r-- 2025-02-20 09:05:24
Edit Download
1.07 KB lrw-r--r-- 2025-02-20 09:05:24
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).