[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.191.192.250: ~ $
/*
 * 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 http://mozilla.org/MPL/2.0/.
 *
 * See the COPYRIGHT file distributed with this work for additional
 * information regarding copyright ownership.
 */


#ifndef DNS_TKEY_H
#define DNS_TKEY_H 1

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

#include <isc/lang.h>

#include <dns/types.h>

#include <dst/dst.h>
#include <dst/gssapi.h>

ISC_LANG_BEGINDECLS

/* Key agreement modes */
#define DNS_TKEYMODE_SERVERASSIGNED		1
#define DNS_TKEYMODE_DIFFIEHELLMAN		2
#define DNS_TKEYMODE_GSSAPI			3
#define DNS_TKEYMODE_RESOLVERASSIGNED		4
#define DNS_TKEYMODE_DELETE			5

struct dns_tkeyctx {
	dst_key_t *dhkey;
	dns_name_t *domain;
	gss_cred_id_t gsscred;
	isc_mem_t *mctx;
	isc_entropy_t *ectx;
	char *gssapi_keytab;
};

isc_result_t
dns_tkeyctx_create(isc_mem_t *mctx, isc_entropy_t *ectx,
		   dns_tkeyctx_t **tctxp);
/*%<
 *	Create an empty TKEY context.
 *
 * 	Requires:
 *\li		'mctx' is not NULL
 *\li		'tctx' is not NULL
 *\li		'*tctx' is NULL
 *
 *	Returns
 *\li		#ISC_R_SUCCESS
 *\li		#ISC_R_NOMEMORY
 *\li		return codes from dns_name_fromtext()
 */

void
dns_tkeyctx_destroy(dns_tkeyctx_t **tctxp);
/*%<
 *      Frees all data associated with the TKEY context
 *
 * 	Requires:
 *\li		'tctx' is not NULL
 *\li		'*tctx' is not NULL
 */

isc_result_t
dns_tkey_processquery(dns_message_t *msg, dns_tkeyctx_t *tctx,
		      dns_tsig_keyring_t *ring);
/*%<
 *	Processes a query containing a TKEY record, adding or deleting TSIG
 *	keys if necessary, and modifies the message to contain the response.
 *
 *	Requires:
 *\li		'msg' is a valid message
 *\li		'tctx' is a valid TKEY context
 *\li		'ring' is a valid TSIG keyring
 *
 *	Returns
 *\li		#ISC_R_SUCCESS	msg was updated (the TKEY operation succeeded,
 *				or msg now includes a TKEY with an error set)
 *		DNS_R_FORMERR	the packet was malformed (missing a TKEY
 *				or KEY).
 *\li		other		An error occurred while processing the message
 */

isc_result_t
dns_tkey_builddhquery(dns_message_t *msg, dst_key_t *key, dns_name_t *name,
		      dns_name_t *algorithm, isc_buffer_t *nonce,
		      isc_uint32_t lifetime);
/*%<
 *	Builds a query containing a TKEY that will generate a shared
 *	secret using a Diffie-Hellman key exchange.  The shared key
 *	will be of the specified algorithm (only DNS_TSIG_HMACMD5_NAME
 *	is supported), and will be named either 'name',
 *	'name' + server chosen domain, or random data + server chosen domain
 *	if 'name' == dns_rootname.  If nonce is not NULL, it supplies
 *	random data used in the shared secret computation.  The key is
 *	requested to have the specified lifetime (in seconds)
 *
 *
 *	Requires:
 *\li		'msg' is a valid message
 *\li		'key' is a valid Diffie Hellman dst key
 *\li		'name' is a valid name
 *\li		'algorithm' is a valid name
 *
 *	Returns:
 *\li		#ISC_R_SUCCESS	msg was successfully updated to include the
 *				query to be sent
 *\li		other		an error occurred while building the message
 */

isc_result_t
dns_tkey_buildgssquery(dns_message_t *msg, dns_name_t *name, dns_name_t *gname,
		       isc_buffer_t *intoken, isc_uint32_t lifetime,
		       gss_ctx_id_t *context, isc_boolean_t win2k,
		       isc_mem_t *mctx, char **err_message);
/*%<
 *	Builds a query containing a TKEY that will generate a GSSAPI context.
 *	The key is requested to have the specified lifetime (in seconds).
 *
 *	Requires:
 *\li		'msg'	  is a valid message
 *\li		'name'	  is a valid name
 *\li		'gname'	  is a valid name
 *\li		'context' is a pointer to a valid gss_ctx_id_t
 *			  (which may have the value GSS_C_NO_CONTEXT)
 *\li		'win2k'   when true says to turn on some hacks to work
 *			  with the non-standard GSS-TSIG of Windows 2000
 *
 *	Returns:
 *\li		ISC_R_SUCCESS	msg was successfully updated to include the
 *				query to be sent
 *\li		other		an error occurred while building the message
 *\li		*err_message	optional error message
 */


isc_result_t
dns_tkey_builddeletequery(dns_message_t *msg, dns_tsigkey_t *key);
/*%<
 *	Builds a query containing a TKEY record that will delete the
 *	specified shared secret from the server.
 *
 *	Requires:
 *\li		'msg' is a valid message
 *\li		'key' is a valid TSIG key
 *
 *	Returns:
 *\li		#ISC_R_SUCCESS	msg was successfully updated to include the
 *				query to be sent
 *\li		other		an error occurred while building the message
 */

isc_result_t
dns_tkey_processdhresponse(dns_message_t *qmsg, dns_message_t *rmsg,
			   dst_key_t *key, isc_buffer_t *nonce,
			   dns_tsigkey_t **outkey, dns_tsig_keyring_t *ring);
/*%<
 *	Processes a response to a query containing a TKEY that was
 *	designed to generate a shared secret using a Diffie-Hellman key
 *	exchange.  If the query was successful, a new shared key
 *	is created and added to the list of shared keys.
 *
 *	Requires:
 *\li		'qmsg' is a valid message (the query)
 *\li		'rmsg' is a valid message (the response)
 *\li		'key' is a valid Diffie Hellman dst key
 *\li		'outkey' is either NULL or a pointer to NULL
 *\li		'ring' is a valid keyring or NULL
 *
 *	Returns:
 *\li		#ISC_R_SUCCESS	the shared key was successfully added
 *\li		#ISC_R_NOTFOUND	an error occurred while looking for a
 *				component of the query or response
 */

isc_result_t
dns_tkey_processgssresponse(dns_message_t *qmsg, dns_message_t *rmsg,
			    dns_name_t *gname, gss_ctx_id_t *context,
			    isc_buffer_t *outtoken, dns_tsigkey_t **outkey,
			    dns_tsig_keyring_t *ring, char **err_message);
/*%<
 * XXX
 */

isc_result_t
dns_tkey_processdeleteresponse(dns_message_t *qmsg, dns_message_t *rmsg,
			       dns_tsig_keyring_t *ring);
/*%<
 *	Processes a response to a query containing a TKEY that was
 *	designed to delete a shared secret.  If the query was successful,
 *	the shared key is deleted from the list of shared keys.
 *
 *	Requires:
 *\li		'qmsg' is a valid message (the query)
 *\li		'rmsg' is a valid message (the response)
 *\li		'ring' is not NULL
 *
 *	Returns:
 *\li		#ISC_R_SUCCESS	the shared key was successfully deleted
 *\li		#ISC_R_NOTFOUND	an error occurred while looking for a
 *				component of the query or response
 */

isc_result_t
dns_tkey_gssnegotiate(dns_message_t *qmsg, dns_message_t *rmsg,
		      dns_name_t *server, gss_ctx_id_t *context,
		      dns_tsigkey_t **outkey, dns_tsig_keyring_t *ring,
		      isc_boolean_t win2k, char **err_message);

/*
 *	Client side negotiation of GSS-TSIG.  Process the response
 *	to a TKEY, and establish a TSIG key if negotiation was successful.
 *	Build a response to the input TKEY message.  Can take multiple
 *	calls to successfully establish the context.
 *
 *	Requires:
 *		'qmsg'    is a valid message, the original TKEY request;
 *			     it will be filled with the new message to send
 *		'rmsg'    is a valid message, the incoming TKEY message
 *		'server'  is the server name
 *		'context' is the input context handle
 *		'outkey'  receives the established key, if non-NULL;
 *			      if non-NULL must point to NULL
 *		'ring'	  is the keyring in which to establish the key,
 *			      or NULL
 *		'win2k'   when true says to turn on some hacks to work
 *			      with the non-standard GSS-TSIG of Windows 2000
 *
 *	Returns:
 *		ISC_R_SUCCESS	context was successfully established
 *		ISC_R_NOTFOUND  couldn't find a needed part of the query
 *					or response
 *		DNS_R_CONTINUE  additional context negotiation is required;
 *					send the new qmsg to the server
 */

ISC_LANG_ENDDECLS

#endif /* DNS_TKEY_H */

Filemanager

Name Type Size Permission Actions
acache.h File 13.99 KB 0644
acl.h File 7.1 KB 0644
adb.h File 22.03 KB 0644
badcache.h File 3.28 KB 0644
bit.h File 856 B 0644
byaddr.h File 3.89 KB 0644
cache.h File 7.95 KB 0644
callbacks.h File 2.22 KB 0644
catz.h File 11.54 KB 0644
cert.h File 1.43 KB 0644
client.h File 21.52 KB 0644
clientinfo.h File 1.95 KB 0644
compress.h File 6.51 KB 0644
db.h File 44.68 KB 0644
dbiterator.h File 7.26 KB 0644
dbtable.h File 3.09 KB 0644
diff.h File 6.82 KB 0644
dispatch.h File 16.05 KB 0644
dlz.h File 10.38 KB 0644
dlz_dlopen.h File 4.54 KB 0644
dns64.h File 5.51 KB 0644
dnssec.h File 12 KB 0644
dnstap.h File 9.2 KB 0644
ds.h File 1.19 KB 0644
dsdigest.h File 1.68 KB 0644
dyndb.h File 4.72 KB 0644
ecdb.h File 808 B 0644
edns.h File 721 B 0644
enumclass.h File 1.19 KB 0644
enumtype.h File 7.74 KB 0644
events.h File 3.96 KB 0644
fixedname.h File 1.56 KB 0644
forward.h File 3.37 KB 0644
geoip.h File 2.34 KB 0644
ipkeylist.h File 2.12 KB 0644
iptable.h File 1.6 KB 0644
journal.h File 8.05 KB 0644
keydata.h File 1.02 KB 0644
keyflags.h File 1.25 KB 0644
keytable.h File 9.28 KB 0644
keyvalues.h File 4.06 KB 0644
lib.h File 1.16 KB 0644
log.h File 3.87 KB 0644
lookup.h File 2.85 KB 0644
master.h File 11.08 KB 0644
masterdump.h File 12.35 KB 0644
message.h File 37.27 KB 0644
name.h File 36.49 KB 0644
ncache.h File 4.8 KB 0644
nsec.h File 2.88 KB 0644
nsec3.h File 8.17 KB 0644
nta.h File 4.32 KB 0644
opcode.h File 1006 B 0644
order.h File 1.95 KB 0644
peer.h File 6.06 KB 0644
portlist.h File 2.05 KB 0644
private.h File 1.9 KB 0644
rbt.h File 39.7 KB 0644
rcode.h File 2.42 KB 0644
rdata.h File 20.92 KB 0644
rdataclass.h File 2.2 KB 0644
rdatalist.h File 2.51 KB 0644
rdataset.h File 20.47 KB 0644
rdatasetiter.h File 3.83 KB 0644
rdataslab.h File 4.29 KB 0644
rdatastruct.h File 57.57 KB 0644
rdatatype.h File 2.24 KB 0644
request.h File 10.89 KB 0644
resolver.h File 18.63 KB 0644
result.h File 8.57 KB 0644
rootns.h File 891 B 0644
rpz.h File 10.09 KB 0644
rriterator.h File 4.17 KB 0644
rrl.h File 6.49 KB 0644
sdb.h File 7.04 KB 0644
sdlz.h File 13.87 KB 0644
secalg.h File 1.67 KB 0644
secproto.h File 1.52 KB 0644
soa.h File 2.17 KB 0644
ssu.h File 8.09 KB 0644
stats.h File 13.15 KB 0644
tcpmsg.h File 3.05 KB 0644
time.h File 1.66 KB 0644
timer.h File 1.02 KB 0644
tkey.h File 7.43 KB 0644
tsec.h File 2.88 KB 0644
tsig.h File 8.06 KB 0644
ttl.h File 1.93 KB 0644
types.h File 13.65 KB 0644
update.h File 1.61 KB 0644
validator.h File 7.02 KB 0644
version.h File 867 B 0644
view.h File 34.69 KB 0644
xfrin.h File 2.85 KB 0644
zone.h File 59.8 KB 0644
zonekey.h File 763 B 0644
zt.h File 5.31 KB 0644