2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-09-04 16:45:24 +00:00

tsig structure/function name change

This commit is contained in:
Brian Wellington
1999-10-08 18:37:24 +00:00
parent 139154bd98
commit 3f6dc1703f
9 changed files with 61 additions and 59 deletions

View File

@@ -15,7 +15,7 @@
* SOFTWARE. * SOFTWARE.
*/ */
/* $Id: xfrin.c,v 1.10 1999/10/02 02:54:12 tale Exp $ */ /* $Id: xfrin.c,v 1.11 1999/10/08 18:37:23 bwelling Exp $ */
#include <config.h> #include <config.h>
@@ -140,7 +140,7 @@ struct xfrin_ctx {
unsigned int nmsg; /* Number of messages recvd */ unsigned int nmsg; /* Number of messages recvd */
dns_tsig_key_t *tsigkey; /* Key used to create TSIG */ dns_tsigkey_t *tsigkey; /* Key used to create TSIG */
dns_rdata_any_tsig_t *lasttsig; /* The last TSIG */ dns_rdata_any_tsig_t *lasttsig; /* The last TSIG */
void *tsigctx; /* TSIG verification context */ void *tsigctx; /* TSIG verification context */
unsigned int sincetsig; /* recvd since the last TSIG */ unsigned int sincetsig; /* recvd since the last TSIG */
@@ -180,7 +180,7 @@ xfrin_create(isc_mem_t *mctx,
dns_rdatatype_t reqtype, dns_rdatatype_t reqtype,
char *addrstr, /* XXX */ char *addrstr, /* XXX */
in_port_t port, in_port_t port,
dns_tsig_key_t *tsigkey, dns_tsigkey_t *tsigkey,
xfrin_ctx_t **xfrp); xfrin_ctx_t **xfrp);
static dns_result_t axfr_init(xfrin_ctx_t *xfr); static dns_result_t axfr_init(xfrin_ctx_t *xfr);
@@ -536,7 +536,7 @@ xfrin_test_dbi(ns_dbinfo_t *dbi) {
dns_db_t *db; dns_db_t *db;
dns_rdatatype_t xfrtype; dns_rdatatype_t xfrtype;
unsigned int len; unsigned int len;
dns_tsig_key_t *key = NULL; dns_tsigkey_t *key = NULL;
printf("attempting zone transfer of zone \"%s\"...\n", dbi->origin); printf("attempting zone transfer of zone \"%s\"...\n", dbi->origin);
@@ -619,7 +619,7 @@ xfrin_create(isc_mem_t *mctx,
dns_rdatatype_t reqtype, dns_rdatatype_t reqtype,
char *addrstr, /* XXX */ char *addrstr, /* XXX */
in_port_t port, in_port_t port,
dns_tsig_key_t *tsigkey, dns_tsigkey_t *tsigkey,
xfrin_ctx_t **xfrp) xfrin_ctx_t **xfrp)
{ {
xfrin_ctx_t *xfr = NULL; xfrin_ctx_t *xfr = NULL;

View File

@@ -15,7 +15,7 @@
* SOFTWARE. * SOFTWARE.
*/ */
/* $Id: xfrout.c,v 1.11 1999/10/07 19:33:12 halley Exp $ */ /* $Id: xfrout.c,v 1.12 1999/10/08 18:37:24 bwelling Exp $ */
#include <config.h> #include <config.h>
@@ -713,7 +713,7 @@ typedef struct {
unsigned int txmemlen; unsigned int txmemlen;
unsigned int nmsg; /* Number of messages sent */ unsigned int nmsg; /* Number of messages sent */
dns_tsig_key_t *tsigkey; /* Key used to create TSIG */ dns_tsigkey_t *tsigkey; /* Key used to create TSIG */
dns_rdata_any_tsig_t *lasttsig; /* the last TSIG */ dns_rdata_any_tsig_t *lasttsig; /* the last TSIG */
} xfrout_ctx_t; } xfrout_ctx_t;
@@ -721,7 +721,7 @@ static dns_result_t
xfrout_ctx_create(isc_mem_t *mctx, ns_client_t *client, xfrout_ctx_create(isc_mem_t *mctx, ns_client_t *client,
unsigned int id, dns_name_t *qname, dns_rdatatype_t qtype, unsigned int id, dns_name_t *qname, dns_rdatatype_t qtype,
dns_db_t *db, dns_dbversion_t *ver, dns_db_t *db, dns_dbversion_t *ver,
rrstream_t *stream, dns_tsig_key_t *tsigkey, rrstream_t *stream, dns_tsigkey_t *tsigkey,
dns_rdata_any_tsig_t *lasttsig, xfrout_ctx_t **xfrp); dns_rdata_any_tsig_t *lasttsig, xfrout_ctx_t **xfrp);
static void sendstream(xfrout_ctx_t *xfr); static void sendstream(xfrout_ctx_t *xfr);
@@ -948,7 +948,7 @@ static dns_result_t
xfrout_ctx_create(isc_mem_t *mctx, ns_client_t *client, unsigned int id, xfrout_ctx_create(isc_mem_t *mctx, ns_client_t *client, unsigned int id,
dns_name_t *qname, dns_rdatatype_t qtype, dns_name_t *qname, dns_rdatatype_t qtype,
dns_db_t *db, dns_dbversion_t *ver, dns_db_t *db, dns_dbversion_t *ver,
rrstream_t *stream, dns_tsig_key_t *tsigkey, rrstream_t *stream, dns_tsigkey_t *tsigkey,
dns_rdata_any_tsig_t *lasttsig, xfrout_ctx_t **xfrp) dns_rdata_any_tsig_t *lasttsig, xfrout_ctx_t **xfrp)
{ {
xfrout_ctx_t *xfr; xfrout_ctx_t *xfr;

View File

@@ -184,7 +184,7 @@ struct dns_message {
dns_rcode_t querytsigstatus; dns_rcode_t querytsigstatus;
dns_rdata_any_tsig_t *tsig; dns_rdata_any_tsig_t *tsig;
dns_rdata_any_tsig_t *querytsig; dns_rdata_any_tsig_t *querytsig;
dns_tsig_key_t *tsigkey; dns_tsigkey_t *tsigkey;
void *tsigctx; void *tsigctx;
int tsigstart; int tsigstart;
}; };

View File

@@ -36,21 +36,22 @@ extern dns_name_t *dns_tsig_hmacmd5_name;
/* Default fudge value. */ /* Default fudge value. */
#define DNS_TSIG_FUDGE 300 #define DNS_TSIG_FUDGE 300
struct dns_tsig_key { struct dns_tsigkey {
unsigned int magic; /* Magic number. */ unsigned int magic; /* Magic number. */
isc_mem_t *mctx; isc_mem_t *mctx;
dst_key_t *key; /* Key */ dst_key_t *key; /* Key */
dns_name_t name; /* Key name */ dns_name_t name; /* Key name */
dns_name_t algorithm; /* Algorithm name */ dns_name_t algorithm; /* Algorithm name */
ISC_LINK(dns_tsig_key_t) link; isc_boolean_t transient; /* dynamically created? */
ISC_LINK(dns_tsigkey_t) link;
}; };
#define dns_tsig_emptykey(tsigkey) ((tsigkey)->key == NULL) #define dns_tsigkey_empty(tsigkey) ((tsigkey)->key == NULL)
isc_result_t isc_result_t
dns_tsig_key_create(dns_name_t *name, dns_name_t *algorithm, dns_tsigkey_create(dns_name_t *name, dns_name_t *algorithm,
unsigned char *secret, int length, isc_mem_t *mctx, unsigned char *secret, int length, isc_boolean_t transient,
dns_tsig_key_t **key); isc_mem_t *mctx, dns_tsigkey_t **key);
/* /*
* Creates a tsig key structure pointed to by 'key'. * Creates a tsig key structure pointed to by 'key'.
* *
@@ -70,7 +71,7 @@ dns_tsig_key_create(dns_name_t *name, dns_name_t *algorithm,
*/ */
void void
dns_tsig_key_free(dns_tsig_key_t **key); dns_tsigkey_free(dns_tsigkey_t **key);
/* /*
* Frees the tsig key structure pointed to by 'key'. * Frees the tsig key structure pointed to by 'key'.
* *
@@ -137,7 +138,7 @@ dns_tsig_verify_tcp(isc_buffer_t *source, dns_message_t *msg);
*/ */
isc_result_t isc_result_t
dns_tsig_findkey(dns_tsig_key_t **tsigkey, dns_name_t *name, dns_tsigkey_find(dns_tsigkey_t **tsigkey, dns_name_t *name,
dns_name_t *algorithm); dns_name_t *algorithm);
/* /*
* Returns the TSIG key corresponding to this name and algorithm * Returns the TSIG key corresponding to this name and algorithm

View File

@@ -72,7 +72,7 @@ typedef isc_uint16_t dns_trust_t;
typedef struct dns_dispatch dns_dispatch_t; typedef struct dns_dispatch dns_dispatch_t;
typedef struct dns_dispentry dns_dispentry_t; typedef struct dns_dispentry dns_dispentry_t;
typedef struct dns_dispatchevent dns_dispatchevent_t; typedef struct dns_dispatchevent dns_dispatchevent_t;
typedef struct dns_tsig_key dns_tsig_key_t; typedef struct dns_tsigkey dns_tsigkey_t;
typedef struct dns_view dns_view_t; typedef struct dns_view dns_view_t;
typedef ISC_LIST(dns_view_t) dns_viewlist_t; typedef ISC_LIST(dns_view_t) dns_viewlist_t;
typedef struct dns_zone dns_zone_t; typedef struct dns_zone dns_zone_t;

View File

@@ -434,8 +434,8 @@ msgreset(dns_message_t *msg, isc_boolean_t everything)
sizeof(dns_rdata_any_tsig_t)); sizeof(dns_rdata_any_tsig_t));
} }
if (msg->tsigkey != NULL && dns_tsig_emptykey(msg->tsigkey)) if (msg->tsigkey != NULL && dns_tsigkey_empty(msg->tsigkey))
dns_tsig_key_free(&msg->tsigkey); dns_tsigkey_free(&msg->tsigkey);
/* /*
* cleanup the buffer cleanup list * cleanup the buffer cleanup list

View File

@@ -72,7 +72,7 @@ typedef struct query {
ISC_LINK(struct query) link; ISC_LINK(struct query) link;
isc_buffer_t buffer; isc_buffer_t buffer;
dns_rdata_any_tsig_t *tsig; dns_rdata_any_tsig_t *tsig;
dns_tsig_key_t *tsigkey; dns_tsigkey_t *tsigkey;
unsigned char data[512]; unsigned char data[512];
} resquery_t; } resquery_t;

View File

@@ -16,7 +16,7 @@
*/ */
/* /*
* $Id: tsig.c,v 1.15 1999/10/08 16:39:17 bwelling Exp $ * $Id: tsig.c,v 1.16 1999/10/08 18:36:51 bwelling Exp $
* Principal Author: Brian Wellington * Principal Author: Brian Wellington
*/ */
@@ -52,7 +52,7 @@
#define VALID_TSIG_KEY(x) ((x) != NULL && (x)->magic == TSIG_MAGIC) #define VALID_TSIG_KEY(x) ((x) != NULL && (x)->magic == TSIG_MAGIC)
/* XXXBEW If an unsorted list isn't good enough, this can be updated */ /* XXXBEW If an unsorted list isn't good enough, this can be updated */
static ISC_LIST(dns_tsig_key_t) tsigkeys; static ISC_LIST(dns_tsigkey_t) tsigkeys;
static isc_rwlock_t tsiglock; static isc_rwlock_t tsiglock;
static isc_mem_t *tsig_mctx = NULL; static isc_mem_t *tsig_mctx = NULL;
@@ -61,14 +61,14 @@ dns_name_t *dns_tsig_hmacmd5_name = NULL;
#define is_response(msg) (msg->flags & DNS_MESSAGEFLAG_QR) #define is_response(msg) (msg->flags & DNS_MESSAGEFLAG_QR)
isc_result_t isc_result_t
dns_tsig_key_create(dns_name_t *name, dns_name_t *algorithm, dns_tsigkey_create(dns_name_t *name, dns_name_t *algorithm,
unsigned char *secret, int length, unsigned char *secret, int length, isc_boolean_t transient,
isc_mem_t *mctx, dns_tsig_key_t **key) isc_mem_t *mctx, dns_tsigkey_t **key)
{ {
isc_buffer_t b, nameb; isc_buffer_t b, nameb;
char namestr[1024]; char namestr[1024];
isc_uint16_t alg; isc_uint16_t alg;
dns_tsig_key_t *tkey; dns_tsigkey_t *tkey;
isc_result_t ret; isc_result_t ret;
REQUIRE(key != NULL); REQUIRE(key != NULL);
@@ -85,7 +85,7 @@ dns_tsig_key_create(dns_name_t *name, dns_name_t *algorithm,
else else
alg = DST_ALG_HMACMD5; alg = DST_ALG_HMACMD5;
*key = (dns_tsig_key_t *) isc_mem_get(mctx, sizeof(dns_tsig_key_t)); *key = (dns_tsigkey_t *) isc_mem_get(mctx, sizeof(dns_tsigkey_t));
if (*key == NULL) if (*key == NULL)
return (ISC_R_NOMEMORY); return (ISC_R_NOMEMORY);
tkey = *key; tkey = *key;
@@ -125,6 +125,7 @@ dns_tsig_key_create(dns_name_t *name, dns_name_t *algorithm,
else else
tkey->key = NULL; tkey->key = NULL;
tkey->transient = transient;
tkey->mctx = mctx; tkey->mctx = mctx;
tkey->magic = TSIG_MAGIC; tkey->magic = TSIG_MAGIC;
return (ISC_R_SUCCESS); return (ISC_R_SUCCESS);
@@ -134,15 +135,15 @@ cleanup_algorithm:
cleanup_name: cleanup_name:
dns_name_free(&tkey->name, mctx); dns_name_free(&tkey->name, mctx);
cleanup_key: cleanup_key:
isc_mem_put(mctx, *key, sizeof(dns_tsig_key_t)); isc_mem_put(mctx, *key, sizeof(dns_tsigkey_t));
return (ret); return (ret);
} }
/* Caller must be sure that this key is not in use. */ /* Caller must be sure that this key is not in use. */
void void
dns_tsig_key_free(dns_tsig_key_t **key) { dns_tsigkey_free(dns_tsigkey_t **key) {
dns_tsig_key_t *tkey; dns_tsigkey_t *tkey;
REQUIRE(key != NULL); REQUIRE(key != NULL);
REQUIRE(VALID_TSIG_KEY(*key)); REQUIRE(VALID_TSIG_KEY(*key));
@@ -158,12 +159,12 @@ dns_tsig_key_free(dns_tsig_key_t **key) {
dns_name_free(&tkey->algorithm, tkey->mctx); dns_name_free(&tkey->algorithm, tkey->mctx);
if (tkey->key != NULL) if (tkey->key != NULL)
dst_key_free(tkey->key); dst_key_free(tkey->key);
isc_mem_put(tkey->mctx, tkey, sizeof(dns_tsig_key_t)); isc_mem_put(tkey->mctx, tkey, sizeof(dns_tsigkey_t));
} }
isc_result_t isc_result_t
dns_tsig_sign(dns_message_t *msg) { dns_tsig_sign(dns_message_t *msg) {
dns_tsig_key_t *key; dns_tsigkey_t *key;
dns_rdata_any_tsig_t *tsig; dns_rdata_any_tsig_t *tsig;
unsigned char data[128]; unsigned char data[128];
isc_buffer_t databuf, sigbuf; isc_buffer_t databuf, sigbuf;
@@ -214,14 +215,14 @@ dns_tsig_sign(dns_message_t *msg) {
isc_buffer_init(&databuf, data, sizeof(data), ISC_BUFFERTYPE_BINARY); isc_buffer_init(&databuf, data, sizeof(data), ISC_BUFFERTYPE_BINARY);
if (!dns_tsig_emptykey(key)) { if (!dns_tsigkey_empty(key)) {
ret = dst_sign(DST_SIGMODE_INIT, key->key, &ctx, NULL, NULL); ret = dst_sign(DST_SIGMODE_INIT, key->key, &ctx, NULL, NULL);
if (ret != ISC_R_SUCCESS) if (ret != ISC_R_SUCCESS)
goto cleanup_algorithm; goto cleanup_algorithm;
} }
if (is_response(msg)) { if (is_response(msg)) {
if (!dns_tsig_emptykey(key)) { if (!dns_tsigkey_empty(key)) {
isc_buffer_putuint16(&databuf, msg->querytsig->siglen); isc_buffer_putuint16(&databuf, msg->querytsig->siglen);
isc_buffer_available(&databuf, &r); isc_buffer_available(&databuf, &r);
if (r.length < msg->querytsig->siglen) if (r.length < msg->querytsig->siglen)
@@ -258,7 +259,7 @@ dns_tsig_sign(dns_message_t *msg) {
isc_buffer_putuint32(&otherbuf, tsig->timesigned & 0xFFFFFFFF); isc_buffer_putuint32(&otherbuf, tsig->timesigned & 0xFFFFFFFF);
} }
if (!dns_tsig_emptykey(key)) { if (!dns_tsigkey_empty(key)) {
unsigned char header[DNS_MESSAGE_HEADERLEN]; unsigned char header[DNS_MESSAGE_HEADERLEN];
isc_buffer_t headerbuf; isc_buffer_t headerbuf;
@@ -451,7 +452,7 @@ dns_tsig_verify(isc_buffer_t *source, dns_message_t *msg) {
dns_rdata_t rdata; dns_rdata_t rdata;
isc_stdtime_t now; isc_stdtime_t now;
isc_result_t ret; isc_result_t ret;
dns_tsig_key_t *tsigkey = NULL; dns_tsigkey_t *tsigkey = NULL;
dst_key_t *key = NULL; dst_key_t *key = NULL;
unsigned char header[DNS_MESSAGE_HEADERLEN]; unsigned char header[DNS_MESSAGE_HEADERLEN];
dst_context_t ctx; dst_context_t ctx;
@@ -511,17 +512,17 @@ dns_tsig_verify(isc_buffer_t *source, dns_message_t *msg) {
return (DNS_R_TSIGVERIFYFAILURE); return (DNS_R_TSIGVERIFYFAILURE);
} }
/* Find dns_tsig_key_t based on keyname */ /* Find dns_tsigkey_t based on keyname */
ret = dns_tsig_findkey(&tsigkey, keyname, &tsig->algorithm); ret = dns_tsigkey_find(&tsigkey, keyname, &tsig->algorithm);
if (ret != ISC_R_SUCCESS) { if (ret != ISC_R_SUCCESS) {
msg->tsigstatus = dns_tsigerror_badkey; msg->tsigstatus = dns_tsigerror_badkey;
msg->tsigkey = NULL; msg->tsigkey = NULL;
/* /*
* this key must be deleted later - an empty key can be found * this key must be deleted later - an empty key can be found
* by calling dns_tsig_emptykey() * by calling dns_tsigkey_empty()
*/ */
ret = dns_tsig_key_create(keyname, &tsig->algorithm, NULL, 0, ret = dns_tsigkey_create(keyname, &tsig->algorithm, NULL, 0,
mctx, &msg->tsigkey); ISC_TRUE, mctx, &msg->tsigkey);
if (ret != ISC_R_SUCCESS) if (ret != ISC_R_SUCCESS)
goto cleanup_struct; goto cleanup_struct;
return (DNS_R_TSIGVERIFYFAILURE); return (DNS_R_TSIGVERIFYFAILURE);
@@ -664,8 +665,8 @@ dns_tsig_verify(isc_buffer_t *source, dns_message_t *msg) {
return (ISC_R_SUCCESS); return (ISC_R_SUCCESS);
cleanup_key: cleanup_key:
if (dns_tsig_emptykey(msg->tsigkey)) { if (dns_tsigkey_empty(msg->tsigkey)) {
dns_tsig_key_free(&msg->tsigkey); dns_tsigkey_free(&msg->tsigkey);
msg->tsigkey = NULL; msg->tsigkey = NULL;
} }
cleanup_struct: cleanup_struct:
@@ -839,10 +840,10 @@ cleanup_emptystruct:
} }
isc_result_t isc_result_t
dns_tsig_findkey(dns_tsig_key_t **tsigkey, dns_name_t *name, dns_tsigkey_find(dns_tsigkey_t **tsigkey, dns_name_t *name,
dns_name_t *algorithm) dns_name_t *algorithm)
{ {
dns_tsig_key_t *key; dns_tsigkey_t *key;
REQUIRE(tsigkey != NULL); REQUIRE(tsigkey != NULL);
REQUIRE(name != NULL); REQUIRE(name != NULL);
@@ -909,8 +910,8 @@ dns_tsig_init(isc_mem_t *mctx) {
void void
dns_tsig_destroy() { dns_tsig_destroy() {
while (!ISC_LIST_EMPTY(tsigkeys)) { while (!ISC_LIST_EMPTY(tsigkeys)) {
dns_tsig_key_t *key = ISC_LIST_HEAD(tsigkeys); dns_tsigkey_t *key = ISC_LIST_HEAD(tsigkeys);
dns_tsig_key_free(&key); dns_tsigkey_free(&key);
} }
dns_name_free(dns_tsig_hmacmd5_name, tsig_mctx); dns_name_free(dns_tsig_hmacmd5_name, tsig_mctx);
isc_mem_put(tsig_mctx, dns_tsig_hmacmd5_name, sizeof(dns_name_t)); isc_mem_put(tsig_mctx, dns_tsig_hmacmd5_name, sizeof(dns_name_t));

View File

@@ -15,7 +15,7 @@
* SOFTWARE. * SOFTWARE.
*/ */
/* $Id: xfrin.c,v 1.10 1999/10/02 02:54:12 tale Exp $ */ /* $Id: xfrin.c,v 1.11 1999/10/08 18:37:23 bwelling Exp $ */
#include <config.h> #include <config.h>
@@ -140,7 +140,7 @@ struct xfrin_ctx {
unsigned int nmsg; /* Number of messages recvd */ unsigned int nmsg; /* Number of messages recvd */
dns_tsig_key_t *tsigkey; /* Key used to create TSIG */ dns_tsigkey_t *tsigkey; /* Key used to create TSIG */
dns_rdata_any_tsig_t *lasttsig; /* The last TSIG */ dns_rdata_any_tsig_t *lasttsig; /* The last TSIG */
void *tsigctx; /* TSIG verification context */ void *tsigctx; /* TSIG verification context */
unsigned int sincetsig; /* recvd since the last TSIG */ unsigned int sincetsig; /* recvd since the last TSIG */
@@ -180,7 +180,7 @@ xfrin_create(isc_mem_t *mctx,
dns_rdatatype_t reqtype, dns_rdatatype_t reqtype,
char *addrstr, /* XXX */ char *addrstr, /* XXX */
in_port_t port, in_port_t port,
dns_tsig_key_t *tsigkey, dns_tsigkey_t *tsigkey,
xfrin_ctx_t **xfrp); xfrin_ctx_t **xfrp);
static dns_result_t axfr_init(xfrin_ctx_t *xfr); static dns_result_t axfr_init(xfrin_ctx_t *xfr);
@@ -536,7 +536,7 @@ xfrin_test_dbi(ns_dbinfo_t *dbi) {
dns_db_t *db; dns_db_t *db;
dns_rdatatype_t xfrtype; dns_rdatatype_t xfrtype;
unsigned int len; unsigned int len;
dns_tsig_key_t *key = NULL; dns_tsigkey_t *key = NULL;
printf("attempting zone transfer of zone \"%s\"...\n", dbi->origin); printf("attempting zone transfer of zone \"%s\"...\n", dbi->origin);
@@ -619,7 +619,7 @@ xfrin_create(isc_mem_t *mctx,
dns_rdatatype_t reqtype, dns_rdatatype_t reqtype,
char *addrstr, /* XXX */ char *addrstr, /* XXX */
in_port_t port, in_port_t port,
dns_tsig_key_t *tsigkey, dns_tsigkey_t *tsigkey,
xfrin_ctx_t **xfrp) xfrin_ctx_t **xfrp)
{ {
xfrin_ctx_t *xfr = NULL; xfrin_ctx_t *xfr = NULL;