⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tkey.h

📁 package of develop dns
💻 H
字号:
/* * Copyright (C) 2004  Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2001  Internet Software Consortium. * * Permission to use, copy, modify, and 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: tkey.h,v 1.18.206.1 2004/03/06 08:14:00 marka Exp $ */#ifndef DNS_TKEY_H#define DNS_TKEY_H 1#include <isc/lang.h>#include <dns/types.h>#include <dst/dst.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			5struct dns_tkeyctx {	dst_key_t *dhkey;	dns_name_t *domain;	void *gsscred;	isc_mem_t *mctx;	isc_entropy_t *ectx;};isc_result_tdns_tkeyctx_create(isc_mem_t *mctx, isc_entropy_t *ectx, dns_tkeyctx_t **tctxp);/* *	Create an empty TKEY context. * * 	Requires: *		'mctx' is not NULL *		'tctx' is not NULL *		'*tctx' is NULL * *	Returns *		ISC_R_SUCCESS *		ISC_R_NOMEMORY *		return codes from dns_name_fromtext() */voiddns_tkeyctx_destroy(dns_tkeyctx_t **tctxp);/* *      Frees all data associated with the TKEY context * * 	Requires: *		'tctx' is not NULL *		'*tctx' is not NULL */isc_result_tdns_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: *		'msg' is a valid message *		'tctx' is a valid TKEY context *		'ring' is a valid TSIG keyring * *	Returns *		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). *		other		An error occurred while processing the message */isc_result_tdns_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: *		'msg' is a valid message *		'key' is a valid Diffie Hellman dst key *		'name' is a valid name *		'algorithm' is a valid name * *	Returns: *		ISC_R_SUCCESS	msg was successfully updated to include the *				query to be sent *		other		an error occurred while building the message */isc_result_tdns_tkey_buildgssquery(dns_message_t *msg, dns_name_t *name,		       dns_name_t *gname, void *cred,		       isc_uint32_t lifetime, void **context);/* * XXX */isc_result_tdns_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: *		'msg' is a valid message *		'key' is a valid TSIG key * *	Returns: *		ISC_R_SUCCESS	msg was successfully updated to include the *				query to be sent *		other		an error occurred while building the message */isc_result_tdns_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: *		'qmsg' is a valid message (the query) *		'rmsg' is a valid message (the response) *		'key' is a valid Diffie Hellman dst key *		'outkey' is either NULL or a pointer to NULL *		'ring' is a valid keyring or NULL * *	Returns: *		ISC_R_SUCCESS	the shared key was successfully added *		ISC_R_NOTFOUND	an error occurred while looking for a *				component of the query or response */isc_result_tdns_tkey_processgssresponse(dns_message_t *qmsg, dns_message_t *rmsg,			    dns_name_t *gname, void *cred, void **context,			    dns_tsigkey_t **outkey, dns_tsig_keyring_t *ring);/* * XXX */isc_result_tdns_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: *		'qmsg' is a valid message (the query) *		'rmsg' is a valid message (the response) *		'ring' is not NULL * *	Returns: *		ISC_R_SUCCESS	the shared key was successfully deleted *		ISC_R_NOTFOUND	an error occurred while looking for a *				component of the query or response */ISC_LANG_ENDDECLS#endif /* DNS_TKEY_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -