dnssectool.h 2.69 KB
Newer Older
1
/*
2
 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
3
 *
4 5 6
 * 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/.
7 8 9
 *
 * See the COPYRIGHT file distributed with this work for additional
 * information regarding copyright ownership.
10 11
 */

David Lawrence's avatar
David Lawrence committed
12

13
#ifndef DNSSECTOOL_H
David Lawrence's avatar
David Lawrence committed
14
#define DNSSECTOOL_H 1
15

16
#include <isc/log.h>
17
#include <isc/stdtime.h>
18
#include <dns/rdatastruct.h>
19
#include <dst/dst.h>
20

21 22 23 24 25
#define check_dns_dbiterator_current(result) \
	check_result((result == DNS_R_NEWORIGIN) ? ISC_R_SUCCESS : result, \
		     "dns_dbiterator_current()")


26 27
typedef void (fatalcallback_t)(void);

Francis Dupont's avatar
Francis Dupont committed
28 29 30
ISC_PLATFORM_NORETURN_PRE void
fatal(const char *format, ...)
ISC_FORMAT_PRINTF(1, 2) ISC_PLATFORM_NORETURN_POST;
31

32 33 34
void
setfatalcallback(fatalcallback_t *callback);

David Lawrence's avatar
David Lawrence committed
35 36 37 38
void
check_result(isc_result_t result, const char *message);

void
39
vbprintf(int level, const char *fmt, ...) ISC_FORMAT_PRINTF(2, 3);
David Lawrence's avatar
David Lawrence committed
40

Evan Hunt's avatar
Evan Hunt committed
41 42
ISC_PLATFORM_NORETURN_PRE void
version(const char *program) ISC_PLATFORM_NORETURN_POST;
43

44 45
void
type_format(const dns_rdatatype_t type, char *cp, unsigned int size);
46
#define TYPE_FORMATSIZE 20
David Lawrence's avatar
David Lawrence committed
47

48
void
49
sig_format(dns_rdata_rrsig_t *sig, char *cp, unsigned int size);
50
#define SIG_FORMATSIZE (DNS_NAME_FORMATSIZE + DNS_SECALG_FORMATSIZE + sizeof("65535"))
51

David Lawrence's avatar
David Lawrence committed
52
void
53
setup_logging(isc_mem_t *mctx, isc_log_t **logp);
David Lawrence's avatar
David Lawrence committed
54

Brian Wellington's avatar
Brian Wellington committed
55 56 57
void
cleanup_logging(isc_log_t **logp);

Brian Wellington's avatar
Brian Wellington committed
58
void
59
setup_entropy(isc_mem_t *mctx, const char *randomfile, isc_entropy_t **ectx);
Brian Wellington's avatar
Brian Wellington committed
60 61 62 63

void
cleanup_entropy(isc_entropy_t **ectx);

64 65
dns_ttl_t strtottl(const char *str);

66
isc_stdtime_t
Evan Hunt's avatar
Evan Hunt committed
67 68
strtotime(const char *str, isc_int64_t now, isc_int64_t base,
	  isc_boolean_t *setp);
69 70 71

dns_rdataclass_t
strtoclass(const char *str);
72

73 74
isc_result_t
try_dir(const char *dirname);
75 76 77 78 79 80

void
check_keyversion(dst_key_t *key, char *keystr);

void
set_keyversion(dst_key_t *key);
81 82

isc_boolean_t
83 84 85
key_collision(dst_key_t *key, dns_name_t *name, const char *dir,
	      isc_mem_t *mctx, isc_boolean_t *exact);

86 87 88 89
isc_boolean_t
is_delegation(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *origin,
		      dns_name_t *name, dns_dbnode_t *node, isc_uint32_t *ttlp);

90 91 92 93 94 95 96
/*%
 * Return ISC_TRUE if version 'ver' of database 'db' contains a DNAME RRset at
 * 'node'; return ISC_FALSE otherwise.
 */
isc_boolean_t
has_dname(dns_db_t *db, dns_dbversion_t *ver, dns_dbnode_t *node);

97 98 99 100
void
verifyzone(dns_db_t *db, dns_dbversion_t *ver,
		   dns_name_t *origin, isc_mem_t *mctx,
		   isc_boolean_t ignore_kskflag, isc_boolean_t keyset_kskonly);
101 102 103 104

isc_boolean_t
isoptarg(const char *arg, char **argv, void (*usage)(void));

105 106 107 108 109
#ifdef _WIN32
void InitSockets(void);
void DestroySockets(void);
#endif

David Lawrence's avatar
David Lawrence committed
110
#endif /* DNSSEC_DNSSECTOOL_H */