diff options
Diffstat (limited to 'lib/dns/tkeyconf.c')
-rw-r--r-- | lib/dns/tkeyconf.c | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/lib/dns/tkeyconf.c b/lib/dns/tkeyconf.c deleted file mode 100644 index 62ade362..00000000 --- a/lib/dns/tkeyconf.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 1999, 2000 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 INTERNET SOFTWARE CONSORTIUM DISCLAIMS - * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE - * CONSORTIUM 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: tkeyconf.c,v 1.11 2000/06/22 21:54:50 tale Exp $ */ - -#include <config.h> - -#include <isc/buffer.h> -#include <isc/string.h> /* Required for HP/UX (and others?) */ -#include <isc/mem.h> - -#include <dns/keyvalues.h> -#include <dns/name.h> -#include <dns/tkey.h> -#include <dns/tkeyconf.h> - -#define RETERR(x) do { \ - result = (x); \ - if (result != ISC_R_SUCCESS) \ - goto failure; \ - } while (0) - - -isc_result_t -dns_tkeyctx_fromconfig(dns_c_ctx_t *cfg, isc_mem_t *mctx, isc_entropy_t *ectx, - dns_tkeyctx_t **tctxp) -{ - isc_result_t result; - dns_tkeyctx_t *tctx = NULL; - char *s; - isc_uint32_t n; - isc_buffer_t b, namebuf; - unsigned char data[1024]; - dns_name_t domain, keyname; - - result = dns_tkeyctx_create(mctx, ectx, &tctx); - if (result != ISC_R_SUCCESS) - return (result); - - s = NULL; - result = dns_c_ctx_gettkeydhkey(cfg, &s, &n); - if (result == ISC_R_NOTFOUND) { - *tctxp = tctx; - return (ISC_R_SUCCESS); - } - isc_buffer_init(&namebuf, data, sizeof(data)); - dns_name_init(&keyname, NULL); - isc_buffer_init(&b, s, strlen(s)); - isc_buffer_add(&b, strlen(s)); - dns_name_fromtext(&keyname, &b, dns_rootname, ISC_FALSE, &namebuf); - RETERR(dst_key_fromfile(&keyname, n, DNS_KEYALG_DH, - DST_TYPE_PUBLIC|DST_TYPE_PRIVATE, - NULL, mctx, &tctx->dhkey)); - s = NULL; - RETERR(dns_c_ctx_gettkeydomain(cfg, &s)); - dns_name_init(&domain, NULL); - tctx->domain = (dns_name_t *) isc_mem_get(mctx, sizeof(dns_name_t)); - if (tctx->domain == NULL) { - result = ISC_R_NOMEMORY; - goto failure; - } - dns_name_init(tctx->domain, NULL); - isc_buffer_init(&b, s, strlen(s)); - isc_buffer_add(&b, strlen(s)); - RETERR(dns_name_fromtext(&domain, &b, dns_rootname, ISC_FALSE, - &namebuf)); - RETERR(dns_name_dup(&domain, mctx, tctx->domain)); - - *tctxp = tctx; - return (ISC_R_SUCCESS); - - failure: - if (tctx->dhkey != NULL) - dst_key_free(&tctx->dhkey); - if (tctx->domain != NULL) { - dns_name_free(tctx->domain, mctx); - isc_mem_put(mctx, tctx->domain, sizeof(dns_name_t)); - tctx->domain = NULL; - } - dns_tkeyctx_destroy(&tctx); - return (result); -} - |