OXIESEC PANEL
- Current Dir:
/
/
usr
/
include
/
bind9
/
dns
Server IP: 103.185.75.71
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
11/10/2025 03:35:42 AM
rwxr-xr-x
📄
acl.h
6.33 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
adb.h
21.75 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
badcache.h
3.31 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
bit.h
798 bytes
11/05/2021 09:03:26 AM
rw-r--r--
📄
byaddr.h
3.51 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
cache.h
8.53 KB
11/10/2025 03:33:48 AM
rw-r--r--
📄
callbacks.h
2.23 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
catz.h
11.6 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
cert.h
1.43 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
client.h
14.19 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
clientinfo.h
1.97 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
compress.h
6.88 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
db.h
49.26 KB
11/10/2025 03:33:48 AM
rw-r--r--
📄
dbiterator.h
7.21 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
dbtable.h
3.09 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
diff.h
6.87 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
dispatch.h
15.17 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
dlz.h
10.62 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
dlz_dlopen.h
4.29 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
dns64.h
5.59 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
dnsrps.h
2.51 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
dnssec.h
12.29 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
dnstap.h
9.95 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
ds.h
1.63 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
dsdigest.h
1.67 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
dyndb.h
4.75 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
ecdb.h
806 bytes
11/05/2021 09:03:26 AM
rw-r--r--
📄
ecs.h
1.22 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
edns.h
783 bytes
11/05/2021 09:03:26 AM
rw-r--r--
📄
enumclass.h
1.19 KB
11/10/2025 03:34:13 AM
rw-r--r--
📄
enumtype.h
8.29 KB
11/10/2025 03:34:13 AM
rw-r--r--
📄
events.h
4.35 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
fixedname.h
1.61 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
forward.h
2.99 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
geoip.h
2.29 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
ipkeylist.h
2.17 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
iptable.h
1.49 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
journal.h
9.48 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
kasp.h
11.84 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
keydata.h
1.02 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
keyflags.h
1.25 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
keymgr.h
4.01 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
keytable.h
7.69 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
keyvalues.h
3.99 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
lib.h
993 bytes
11/05/2021 09:03:26 AM
rw-r--r--
📄
librpz.h
30.67 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
lmdb.h
779 bytes
11/05/2021 09:03:26 AM
rw-r--r--
📄
log.h
3.93 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
lookup.h
2.85 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
master.h
8.58 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
masterdump.h
9.9 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
message.h
38.64 KB
11/10/2025 03:33:48 AM
rw-r--r--
📄
name.h
36.9 KB
11/10/2025 03:33:48 AM
rw-r--r--
📄
ncache.h
4.84 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
nsec.h
2.99 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
nsec3.h
8.06 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
nta.h
4.73 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
opcode.h
1006 bytes
11/05/2021 09:03:26 AM
rw-r--r--
📄
order.h
1.96 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
peer.h
6.32 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
portlist.h
2.05 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
private.h
1.92 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
rbt.h
36.61 KB
11/10/2025 03:33:48 AM
rw-r--r--
📄
rcode.h
2.41 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
rdata.h
22.04 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
rdataclass.h
2.2 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
rdatalist.h
2.5 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
rdataset.h
18.28 KB
11/10/2025 03:33:48 AM
rw-r--r--
📄
rdatasetiter.h
3.82 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
rdataslab.h
4.14 KB
11/10/2025 03:33:48 AM
rw-r--r--
📄
rdatastruct.h
61.23 KB
11/10/2025 03:34:13 AM
rw-r--r--
📄
rdatatype.h
2.24 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
request.h
8.97 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
resolver.h
19.68 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
result.h
8.98 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
rootns.h
891 bytes
11/05/2021 09:03:26 AM
rw-r--r--
📄
rpz.h
11.87 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
rriterator.h
4.12 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
rrl.h
6.8 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
sdb.h
7.18 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
sdlz.h
13.76 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
secalg.h
1.67 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
secproto.h
1.52 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
soa.h
2.13 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
ssu.h
7.01 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
stats.h
24.11 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
tcpmsg.h
3.05 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
time.h
1.65 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
timer.h
1.03 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
tkey.h
7.48 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
tsec.h
2.88 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
tsig.h
8.3 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
ttl.h
1.83 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
types.h
14.19 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
update.h
1.96 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
validator.h
6.52 KB
11/10/2025 03:33:48 AM
rw-r--r--
📄
version.h
679 bytes
11/05/2021 09:03:26 AM
rw-r--r--
📄
view.h
34.51 KB
11/10/2025 03:33:48 AM
rw-r--r--
📄
xfrin.h
2.26 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
zone.h
64.01 KB
11/10/2025 03:33:48 AM
rw-r--r--
📄
zonekey.h
776 bytes
11/05/2021 09:03:26 AM
rw-r--r--
📄
zoneverify.h
1.36 KB
11/05/2021 09:03:26 AM
rw-r--r--
📄
zt.h
5.12 KB
11/10/2025 03:33:48 AM
rw-r--r--
Editing: keytable.h
Close
/* * 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 https://mozilla.org/MPL/2.0/. * * See the COPYRIGHT file distributed with this work for additional * information regarding copyright ownership. */ #ifndef DNS_KEYTABLE_H #define DNS_KEYTABLE_H 1 /***** ***** Module Info *****/ /*! \file * \brief * The keytable module provides services for storing and retrieving DNSSEC * trusted keys, as well as the ability to find the deepest matching key * for a given domain name. * * MP: *\li The module ensures appropriate synchronization of data structures it * creates and manipulates. * * Resources: *\li TBS * * Security: *\li No anticipated impact. */ #include <stdbool.h> #include <isc/lang.h> #include <isc/magic.h> #include <isc/refcount.h> #include <isc/rwlock.h> #include <isc/stdtime.h> #include <dns/rdatastruct.h> #include <dns/types.h> #include <dst/dst.h> ISC_LANG_BEGINDECLS isc_result_t dns_keytable_create(isc_mem_t *mctx, dns_keytable_t **keytablep); /*%< * Create a keytable. * * Requires: * *\li 'mctx' is a valid memory context. * *\li keytablep != NULL && *keytablep == NULL * * Ensures: * *\li On success, *keytablep is a valid, empty key table. * * Returns: * *\li ISC_R_SUCCESS * *\li Any other result indicates failure. */ void dns_keytable_attach(dns_keytable_t *source, dns_keytable_t **targetp); /*%< * Attach *targetp to source. * * Requires: * *\li 'source' is a valid keytable. * *\li 'targetp' points to a NULL dns_keytable_t *. * * Ensures: * *\li *targetp is attached to source. */ void dns_keytable_detach(dns_keytable_t **keytablep); /*%< * Detach *keytablep from its keytable. * * Requires: * *\li 'keytablep' points to a valid keytable. * * Ensures: * *\li *keytablep is NULL. * *\li If '*keytablep' is the last reference to the keytable, * all resources used by the keytable will be freed */ isc_result_t dns_keytable_add(dns_keytable_t *keytable, bool managed, bool initial, dns_name_t *name, dns_rdata_ds_t *ds); /*%< * Add a key to 'keytable'. The keynode associated with 'name' * is updated with the DS specified in 'ds'. * * The value of keynode->managed is set to 'managed', and the * value of keynode->initial is set to 'initial'. (Note: 'initial' * should only be used when adding managed-keys from configuration. * This indicates the key is in "initializing" state, and has not yet * been confirmed with a key refresh query. Once a key refresh query * has validated, we update the keynode with initial == false.) * * Notes: * *\li If the key already exists in the table, adding it again * has no effect and ISC_R_SUCCESS is returned. * * Requires: * *\li 'keytable' points to a valid keytable. *\li 'ds' is not NULL. *\li if 'initial' is true then 'managed' must also be true. * * Returns: * *\li ISC_R_SUCCESS *\li ISC_R_EXISTS * *\li Any other result indicates failure. */ isc_result_t dns_keytable_marksecure(dns_keytable_t *keytable, const dns_name_t *name); /*%< * Add a null key to 'keytable' for name 'name'. This marks the * name as a secure domain, but doesn't supply any key data to allow the * domain to be validated. (Used when automated trust anchor management * has gotten broken by a zone misconfiguration; for example, when the * active key has been revoked but the stand-by key was still in its 30-day * waiting period for validity.) * * Notes: * *\li If a key already exists in the table, ISC_R_EXISTS is * returned and nothing is done. * * Requires: * *\li 'keytable' points to a valid keytable. * *\li keyp != NULL && *keyp is a valid dst_key_t *. * * Returns: * *\li ISC_R_SUCCESS *\li ISC_R_EXISTS * *\li Any other result indicates failure. */ isc_result_t dns_keytable_delete(dns_keytable_t *keytable, const dns_name_t *keyname); /*%< * Delete all trust anchors from 'keytable' matching name 'keyname' * * Requires: * *\li 'keytable' points to a valid keytable. * *\li 'name' is not NULL * * Returns: * *\li ISC_R_SUCCESS * *\li Any other result indicates failure. */ isc_result_t dns_keytable_deletekey(dns_keytable_t *keytable, const dns_name_t *keyname, dns_rdata_dnskey_t *dnskey); /*%< * Remove the trust anchor matching the name 'keyname' and the DNSKEY * rdata struct 'dnskey' from 'keytable'. * * Requires: * *\li 'keytable' points to a valid keytable. *\li 'dnskey' is not NULL * * Returns: * *\li ISC_R_SUCCESS * *\li Any other result indicates failure. */ isc_result_t dns_keytable_find(dns_keytable_t *keytable, const dns_name_t *keyname, dns_keynode_t **keynodep); /*%< * Search for the first instance of a trust anchor named 'name' in * 'keytable', without regard to keyid and algorithm. * * Requires: * *\li 'keytable' is a valid keytable. * *\li 'name' is a valid absolute name. * *\li keynodep != NULL && *keynodep == NULL * * Returns: * *\li ISC_R_SUCCESS *\li ISC_R_NOTFOUND * *\li Any other result indicates an error. */ isc_result_t dns_keytable_finddeepestmatch(dns_keytable_t *keytable, const dns_name_t *name, dns_name_t *foundname); /*%< * Search for the deepest match of 'name' in 'keytable'. * * Requires: * *\li 'keytable' is a valid keytable. * *\li 'name' is a valid absolute name. * *\li 'foundname' is a name with a dedicated buffer. * * Returns: * *\li ISC_R_SUCCESS *\li ISC_R_NOTFOUND * *\li Any other result indicates an error. */ void dns_keytable_detachkeynode(dns_keytable_t *keytable, dns_keynode_t **keynodep); /*%< * Detach a keynode found via dns_keytable_find(). * * Requires: * *\li *keynodep is a valid keynode returned by a call to dns_keytable_find(). * * Ensures: * *\li *keynodep == NULL */ isc_result_t dns_keytable_issecuredomain(dns_keytable_t *keytable, const dns_name_t *name, dns_name_t *foundname, bool *wantdnssecp); /*%< * Is 'name' at or beneath a trusted key? * * Requires: * *\li 'keytable' is a valid keytable. * *\li 'name' is a valid absolute name. * *\li 'foundanme' is NULL or is a pointer to an initialized dns_name_t * *\li '*wantsdnssecp' is a valid bool. * * Ensures: * *\li On success, *wantsdnssecp will be true if and only if 'name' * is at or beneath a trusted key. If 'foundname' is not NULL, then * it will be updated to contain the name of the closest enclosing * trust anchor. * * Returns: * *\li ISC_R_SUCCESS * *\li Any other result is an error. */ isc_result_t dns_keytable_dump(dns_keytable_t *keytable, FILE *fp); /*%< * Dump the keytable on fp. */ isc_result_t dns_keytable_totext(dns_keytable_t *keytable, isc_buffer_t **buf); /*%< * Dump the keytable to buffer at 'buf' */ bool dns_keynode_dsset(dns_keynode_t *keynode, dns_rdataset_t *rdataset); /*%< * Clone the DS RRset associated with 'keynode' into 'rdataset' if * it exists. 'dns_rdataset_disassociate(rdataset)' needs to be * called when done. * * Returns: *\li true if there is a DS RRset. *\li false if there isn't DS RRset. * * Requires: *\li 'keynode' is valid. *\li 'rdataset' is valid or NULL. */ bool dns_keynode_managed(dns_keynode_t *keynode); /*%< * Is this flagged as a managed key? */ bool dns_keynode_initial(dns_keynode_t *keynode); /*%< * Is this flagged as an initializing key? */ void dns_keynode_trust(dns_keynode_t *keynode); /*%< * Sets keynode->initial to false in order to mark the key as * trusted: no longer an initializing key. */ isc_result_t dns_keytable_forall(dns_keytable_t *keytable, void (*func)(dns_keytable_t *, dns_keynode_t *, dns_name_t *, void *), void *arg); ISC_LANG_ENDDECLS #endif /* DNS_KEYTABLE_H */