SILENT KILLERPanel

Current Path: > > > usr > > include > bind9 > dns


Operation   : Linux premium88.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
Software     : Apache
Server IP    : 185.61.154.216 | Your IP: 216.73.216.44
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: ///usr//include/bind9/dns

NameTypeSizeLast ModifiedActions
acache.h File 14232 bytes February 20 2025 09:05:25.
acl.h File 7242 bytes February 20 2025 09:05:25.
adb.h File 22595 bytes February 20 2025 09:05:25.
badcache.h File 3369 bytes February 20 2025 09:05:25.
bit.h File 807 bytes February 20 2025 09:05:25.
byaddr.h File 4002 bytes February 20 2025 09:05:25.
cache.h File 8643 bytes February 20 2025 09:05:25.
callbacks.h File 2271 bytes February 20 2025 09:05:25.
catz.h File 11833 bytes February 20 2025 09:05:25.
cert.h File 1466 bytes February 20 2025 09:05:25.
client.h File 22042 bytes February 20 2025 09:05:25.
clientinfo.h File 2006 bytes February 20 2025 09:05:25.
compress.h File 6646 bytes February 20 2025 09:05:25.
db.h File 46567 bytes February 20 2025 09:05:25.
dbiterator.h File 7422 bytes February 20 2025 09:05:25.
dbtable.h File 3165 bytes February 20 2025 09:05:25.
diff.h File 6980 bytes February 20 2025 09:05:25.
dispatch.h File 16427 bytes February 20 2025 09:05:25.
dlz.h File 10618 bytes February 20 2025 09:05:25.
dlz_dlopen.h File 4677 bytes February 20 2025 09:05:25.
dns64.h File 5635 bytes February 20 2025 09:05:25.
dnssec.h File 12115 bytes February 20 2025 09:05:25.
dnstap.h File 9364 bytes February 20 2025 09:05:25.
ds.h File 1225 bytes February 20 2025 09:05:25.
dsdigest.h File 1722 bytes February 20 2025 09:05:25.
dyndb.h File 4835 bytes February 20 2025 09:05:25.
ecdb.h File 809 bytes February 20 2025 09:05:25.
edns.h File 722 bytes February 20 2025 09:05:25.
enumclass.h File 1220 bytes February 20 2025 09:05:25.
enumtype.h File 8300 bytes February 20 2025 09:05:25.
events.h File 4059 bytes February 20 2025 09:05:25.
fixedname.h File 1663 bytes February 20 2025 09:05:25.
forward.h File 3452 bytes February 20 2025 09:05:25.
geoip.h File 2792 bytes February 20 2025 09:05:25.
ipkeylist.h File 2186 bytes February 20 2025 09:05:25.
iptable.h File 1621 bytes February 20 2025 09:05:25.
journal.h File 8227 bytes February 20 2025 09:05:25.
keydata.h File 1059 bytes February 20 2025 09:05:25.
keyflags.h File 1278 bytes February 20 2025 09:05:25.
keytable.h File 9462 bytes February 20 2025 09:05:25.
keyvalues.h File 4159 bytes February 20 2025 09:05:25.
lib.h File 1192 bytes February 20 2025 09:05:25.
log.h File 3964 bytes February 20 2025 09:05:25.
lookup.h File 2924 bytes February 20 2025 09:05:25.
master.h File 11289 bytes February 20 2025 09:05:25.
masterdump.h File 12647 bytes February 20 2025 09:05:25.
message.h File 38832 bytes February 20 2025 09:05:25.
name.h File 37115 bytes February 20 2025 09:05:25.
ncache.h File 4929 bytes February 20 2025 09:05:25.
nsec.h File 2928 bytes February 20 2025 09:05:25.
nsec3.h File 8032 bytes February 20 2025 09:05:25.
nta.h File 4548 bytes February 20 2025 09:05:25.
opcode.h File 1007 bytes February 20 2025 09:05:25.
order.h File 1999 bytes February 20 2025 09:05:25.
peer.h File 5966 bytes February 20 2025 09:05:25.
portlist.h File 2101 bytes February 20 2025 09:05:25.
private.h File 1935 bytes February 20 2025 09:05:25.
rbt.h File 40618 bytes February 20 2025 09:05:25.
rcode.h File 2481 bytes February 20 2025 09:05:25.
rdata.h File 21613 bytes February 20 2025 09:05:25.
rdataclass.h File 2257 bytes February 20 2025 09:05:25.
rdatalist.h File 2569 bytes February 20 2025 09:05:25.
rdataset.h File 21536 bytes February 20 2025 09:05:25.
rdatasetiter.h File 3926 bytes February 20 2025 09:05:25.
rdataslab.h File 4384 bytes February 20 2025 09:05:25.
rdatastruct.h File 61584 bytes February 20 2025 09:05:25.
rdatatype.h File 2298 bytes February 20 2025 09:05:25.
request.h File 11156 bytes February 20 2025 09:05:25.
resolver.h File 20227 bytes February 20 2025 09:05:25.
result.h File 9284 bytes February 20 2025 09:05:25.
rootns.h File 892 bytes February 20 2025 09:05:25.
rpz.h File 10335 bytes February 20 2025 09:05:25.
rriterator.h File 4230 bytes February 20 2025 09:05:25.
rrl.h File 6640 bytes February 20 2025 09:05:25.
sdb.h File 7224 bytes February 20 2025 09:05:25.
sdlz.h File 14214 bytes February 20 2025 09:05:25.
secalg.h File 1706 bytes February 20 2025 09:05:25.
secproto.h File 1557 bytes February 20 2025 09:05:25.
soa.h File 2186 bytes February 20 2025 09:05:25.
ssu.h File 8308 bytes February 20 2025 09:05:25.
stats.h File 13451 bytes February 20 2025 09:05:25.
tcpmsg.h File 3145 bytes February 20 2025 09:05:25.
time.h File 1695 bytes February 20 2025 09:05:25.
timer.h File 1051 bytes February 20 2025 09:05:25.
tkey.h File 7631 bytes February 20 2025 09:05:25.
tsec.h File 2949 bytes February 20 2025 09:05:25.
tsig.h File 8384 bytes February 20 2025 09:05:25.
ttl.h File 1945 bytes February 20 2025 09:05:25.
types.h File 14158 bytes February 20 2025 09:05:25.
update.h File 1653 bytes February 20 2025 09:05:25.
validator.h File 7161 bytes February 20 2025 09:05:25.
version.h File 868 bytes February 20 2025 09:05:25.
view.h File 35274 bytes February 20 2025 09:05:25.
xfrin.h File 2924 bytes February 20 2025 09:05:25.
zone.h File 60864 bytes February 20 2025 09:05:25.
zonekey.h File 777 bytes February 20 2025 09:05:25.
zt.h File 5562 bytes February 20 2025 09:05:25.

Reading File: ///usr//include/bind9/dns/tsig.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 DNS_TSIG_H
#define DNS_TSIG_H 1

/*! \file dns/tsig.h */

#include <stdbool.h>

#include <isc/lang.h>
#include <isc/refcount.h>
#include <isc/rwlock.h>
#include <isc/stdio.h>
#include <isc/stdtime.h>

#include <pk11/site.h>

#include <dns/types.h>
#include <dns/name.h>

#include <dst/dst.h>

/*
 * Algorithms.
 */
#ifndef PK11_MD5_DISABLE
LIBDNS_EXTERNAL_DATA extern dns_name_t *dns_tsig_hmacmd5_name;
#define DNS_TSIG_HMACMD5_NAME		dns_tsig_hmacmd5_name
#endif
LIBDNS_EXTERNAL_DATA extern dns_name_t *dns_tsig_gssapi_name;
#define DNS_TSIG_GSSAPI_NAME		dns_tsig_gssapi_name
LIBDNS_EXTERNAL_DATA extern dns_name_t *dns_tsig_gssapims_name;
#define DNS_TSIG_GSSAPIMS_NAME		dns_tsig_gssapims_name
LIBDNS_EXTERNAL_DATA extern dns_name_t *dns_tsig_hmacsha1_name;
#define DNS_TSIG_HMACSHA1_NAME		dns_tsig_hmacsha1_name
LIBDNS_EXTERNAL_DATA extern dns_name_t *dns_tsig_hmacsha224_name;
#define DNS_TSIG_HMACSHA224_NAME	dns_tsig_hmacsha224_name
LIBDNS_EXTERNAL_DATA extern dns_name_t *dns_tsig_hmacsha256_name;
#define DNS_TSIG_HMACSHA256_NAME	dns_tsig_hmacsha256_name
LIBDNS_EXTERNAL_DATA extern dns_name_t *dns_tsig_hmacsha384_name;
#define DNS_TSIG_HMACSHA384_NAME	dns_tsig_hmacsha384_name
LIBDNS_EXTERNAL_DATA extern dns_name_t *dns_tsig_hmacsha512_name;
#define DNS_TSIG_HMACSHA512_NAME	dns_tsig_hmacsha512_name

/*%
 * Default fudge value.
 */
#define DNS_TSIG_FUDGE			300

struct dns_tsig_keyring {
	dns_rbt_t *keys;
	unsigned int writecount;
	isc_rwlock_t lock;
	isc_mem_t *mctx;
	/*
	 * LRU list of generated key along with a count of the keys on the
	 * list and a maximum size.
	 */
	unsigned int generated;
	unsigned int maxgenerated;
	ISC_LIST(dns_tsigkey_t) lru;
	isc_refcount_t references;
};

struct dns_tsigkey {
	/* Unlocked */
	unsigned int		magic;		/*%< Magic number. */
	isc_mem_t		*mctx;
	dst_key_t		*key;		/*%< Key */
	dns_name_t		name;		/*%< Key name */
	dns_name_t		*algorithm;	/*%< Algorithm name */
	dns_name_t		*creator;	/*%< name that created secret */
	bool		generated;	/*%< was this generated? */
	isc_stdtime_t		inception;	/*%< start of validity period */
	isc_stdtime_t		expire;		/*%< end of validity period */
	dns_tsig_keyring_t	*ring;		/*%< the enclosing keyring */
	isc_refcount_t		refs;		/*%< reference counter */
	ISC_LINK(dns_tsigkey_t) link;
};

ISC_LANG_BEGINDECLS

const dns_name_t *
dns_tsigkey_identity(const dns_tsigkey_t *tsigkey);
/*%<
 *	Returns the identity of the provided TSIG key.
 *
 *	Requires:
 *\li		'tsigkey' is a valid TSIG key or NULL
 *
 *	Returns:
 *\li		NULL if 'tsigkey' was NULL
 *\li		identity of the provided TSIG key
 */

isc_result_t
dns_tsigkey_create(dns_name_t *name, dns_name_t *algorithm,
		   unsigned char *secret, int length, bool generated,
		   dns_name_t *creator, isc_stdtime_t inception,
		   isc_stdtime_t expire, isc_mem_t *mctx,
		   dns_tsig_keyring_t *ring, dns_tsigkey_t **key);

isc_result_t
dns_tsigkey_createfromkey(dns_name_t *name, dns_name_t *algorithm,
			  dst_key_t *dstkey, bool generated,
			  dns_name_t *creator, isc_stdtime_t inception,
			  isc_stdtime_t expire, isc_mem_t *mctx,
			  dns_tsig_keyring_t *ring, dns_tsigkey_t **key);
/*%<
 *	Creates a tsig key structure and saves it in the keyring.  If key is
 *	not NULL, *key will contain a copy of the key.  The keys validity
 *	period is specified by (inception, expire), and will not expire if
 *	inception == expire.  If the key was generated, the creating identity,
 *	if there is one, should be in the creator parameter.  Specifying an
 *	unimplemented algorithm will cause failure only if dstkey != NULL; this
 *	allows a transient key with an invalid algorithm to exist long enough
 *	to generate a BADKEY response.
 *
 *	If dns_tsigkey_createfromkey is successful a new reference to 'dstkey'
 *	will have been made.
 *
 *	Requires:
 *\li		'name' is a valid dns_name_t
 *\li		'algorithm' is a valid dns_name_t
 *\li		'secret' is a valid pointer
 *\li		'length' is an integer >= 0
 *\li		'dstkey' is a valid dst key or NULL
 *\li		'creator' points to a valid dns_name_t or is NULL
 *\li		'mctx' is a valid memory context
 *\li		'ring' is a valid TSIG keyring or NULL
 *\li		'key' or '*key' must be NULL
 *
 *	Returns:
 *\li		#ISC_R_SUCCESS
 *\li		#ISC_R_EXISTS - a key with this name already exists
 *\li		#ISC_R_NOTIMPLEMENTED - algorithm is not implemented
 *\li		#ISC_R_NOMEMORY
 */

void
dns_tsigkey_attach(dns_tsigkey_t *source, dns_tsigkey_t **targetp);
/*%<
 *	Attach '*targetp' to 'source'.
 *
 *	Requires:
 *\li		'key' is a valid TSIG key
 *
 *	Ensures:
 *\li		*targetp is attached to source.
 */

void
dns_tsigkey_detach(dns_tsigkey_t **keyp);
/*%<
 *	Detaches from the tsig key structure pointed to by '*key'.
 *
 *	Requires:
 *\li		'keyp' is not NULL and '*keyp' is a valid TSIG key
 *
 *	Ensures:
 *\li		'keyp' points to NULL
 */

void
dns_tsigkey_setdeleted(dns_tsigkey_t *key);
/*%<
 *	Prevents this key from being used again.  It will be deleted when
 *	no references exist.
 *
 *	Requires:
 *\li		'key' is a valid TSIG key on a keyring
 */

isc_result_t
dns_tsig_sign(dns_message_t *msg);
/*%<
 *	Generates a TSIG record for this message
 *
 *	Requires:
 *\li		'msg' is a valid message
 *\li		'msg->tsigkey' is a valid TSIG key
 *\li		'msg->tsig' is NULL
 *
 *	Returns:
 *\li		#ISC_R_SUCCESS
 *\li		#ISC_R_NOMEMORY
 *\li		#ISC_R_NOSPACE
 *\li		#DNS_R_EXPECTEDTSIG
 *			- this is a response & msg->querytsig is NULL
 */

isc_result_t
dns_tsig_verify(isc_buffer_t *source, dns_message_t *msg,
		dns_tsig_keyring_t *ring1, dns_tsig_keyring_t *ring2);
/*%<
 *	Verifies the TSIG record in this message
 *
 *	Requires:
 *\li		'source' is a valid buffer containing the unparsed message
 *\li		'msg' is a valid message
 *\li		'msg->tsigkey' is a valid TSIG key if this is a response
 *\li		'msg->tsig' is NULL
 *\li		'msg->querytsig' is not NULL if this is a response
 *\li		'ring1' and 'ring2' are each either a valid keyring or NULL
 *
 *	Returns:
 *\li		#ISC_R_SUCCESS
 *\li		#ISC_R_NOMEMORY
 *\li		#DNS_R_EXPECTEDTSIG - A TSIG was expected but not seen
 *\li		#DNS_R_UNEXPECTEDTSIG - A TSIG was seen but not expected
 *\li		#DNS_R_TSIGERRORSET - the TSIG verified but ->error was set
 *				     and this is a query
 *\li		#DNS_R_CLOCKSKEW - the TSIG failed to verify because of
 *				  the time was out of the allowed range.
 *\li		#DNS_R_TSIGVERIFYFAILURE - the TSIG failed to verify
 *\li		#DNS_R_EXPECTEDRESPONSE - the message was set over TCP and
 *					 should have been a response,
 *					 but was not.
 */

isc_result_t
dns_tsigkey_find(dns_tsigkey_t **tsigkey, dns_name_t *name,
		 dns_name_t *algorithm, dns_tsig_keyring_t *ring);
/*%<
 *	Returns the TSIG key corresponding to this name and (possibly)
 *	algorithm.  Also increments the key's reference counter.
 *
 *	Requires:
 *\li		'tsigkey' is not NULL
 *\li		'*tsigkey' is NULL
 *\li		'name' is a valid dns_name_t
 *\li		'algorithm' is a valid dns_name_t or NULL
 *\li		'ring' is a valid keyring
 *
 *	Returns:
 *\li		#ISC_R_SUCCESS
 *\li		#ISC_R_NOTFOUND
 */


isc_result_t
dns_tsigkeyring_create(isc_mem_t *mctx, dns_tsig_keyring_t **ringp);
/*%<
 *	Create an empty TSIG key ring.
 *
 *	Requires:
 *\li		'mctx' is not NULL
 *\li		'ringp' is not NULL, and '*ringp' is NULL
 *
 *	Returns:
 *\li		#ISC_R_SUCCESS
 *\li		#ISC_R_NOMEMORY
 */

isc_result_t
dns_tsigkeyring_add(dns_tsig_keyring_t *ring, dns_name_t *name,
		    dns_tsigkey_t *tkey);
/*%<
 *      Place a TSIG key onto a key ring.
 *
 *	Requires:
 *\li		'ring', 'name' and 'tkey' are not NULL
 *
 *	Returns:
 *\li		#ISC_R_SUCCESS
 *\li		Any other value indicates failure.
 */


void
dns_tsigkeyring_attach(dns_tsig_keyring_t *source, dns_tsig_keyring_t **target);

void
dns_tsigkeyring_detach(dns_tsig_keyring_t **ringp);

isc_result_t
dns_tsigkeyring_dumpanddetach(dns_tsig_keyring_t **ringp, FILE *fp);

/*%<
 *	Destroy a TSIG key ring.
 *
 *	Requires:
 *\li		'ringp' is not NULL
 */

void
dns_keyring_restore(dns_tsig_keyring_t *ring, FILE *fp);

ISC_LANG_ENDDECLS

#endif /* DNS_TSIG_H */

SILENT KILLER Tool