Lines Matching defs:kasp

1 /*	$NetBSD: kasp.c,v 1.8 2025/01/26 16:25:23 christos Exp $	*/
28 #include <dns/kasp.h>
39 dns_kasp_t *kasp;
50 kasp = isc_mem_get(mctx, sizeof(*kasp));
51 *kasp = k;
53 kasp->mctx = NULL;
54 isc_mem_attach(mctx, &kasp->mctx);
55 kasp->name = isc_mem_strdup(mctx, name);
56 isc_mutex_init(&kasp->lock);
57 isc_refcount_init(&kasp->references, 1);
59 *kaspp = kasp;
73 destroy(dns_kasp_t *kasp) {
77 REQUIRE(!ISC_LINK_LINKED(kasp, link));
79 for (key = ISC_LIST_HEAD(kasp->keys); key != NULL; key = key_next) {
81 ISC_LIST_UNLINK(kasp->keys, key, link);
84 INSIST(ISC_LIST_EMPTY(kasp->keys));
86 for (digest = ISC_LIST_HEAD(kasp->digests); digest != NULL;
90 ISC_LIST_UNLINK(kasp->digests, digest, link);
91 isc_mem_put(kasp->mctx, digest, sizeof(*digest));
93 INSIST(ISC_LIST_EMPTY(kasp->digests));
95 isc_mutex_destroy(&kasp->lock);
96 isc_mem_free(kasp->mctx, kasp->name);
97 isc_mem_putanddetach(&kasp->mctx, kasp, sizeof(*kasp));
104 dns_kasp_t *kasp = *kaspp;
107 if (isc_refcount_decrement(&kasp->references) == 1) {
108 destroy(kasp);
113 dns_kasp_getname(dns_kasp_t *kasp) {
114 REQUIRE(DNS_KASP_VALID(kasp));
116 return kasp->name;
120 dns_kasp_freeze(dns_kasp_t *kasp) {
121 REQUIRE(DNS_KASP_VALID(kasp));
122 REQUIRE(!kasp->frozen);
124 kasp->frozen = true;
128 dns_kasp_thaw(dns_kasp_t *kasp) {
129 REQUIRE(DNS_KASP_VALID(kasp));
130 REQUIRE(kasp->frozen);
132 kasp->frozen = false;
136 dns_kasp_signdelay(dns_kasp_t *kasp) {
137 REQUIRE(DNS_KASP_VALID(kasp));
138 REQUIRE(kasp->frozen);
140 return kasp->signatures_validity - kasp->signatures_refresh;
144 dns_kasp_sigjitter(dns_kasp_t *kasp) {
145 REQUIRE(DNS_KASP_VALID(kasp));
146 REQUIRE(kasp->frozen);
148 return kasp->signatures_jitter;
152 dns_kasp_setsigjitter(dns_kasp_t *kasp, uint32_t value) {
153 REQUIRE(DNS_KASP_VALID(kasp));
154 REQUIRE(!kasp->frozen);
156 kasp->signatures_jitter = value;
160 dns_kasp_sigrefresh(dns_kasp_t *kasp) {
161 REQUIRE(DNS_KASP_VALID(kasp));
162 REQUIRE(kasp->frozen);
164 return kasp->signatures_refresh;
168 dns_kasp_setsigrefresh(dns_kasp_t *kasp, uint32_t value) {
169 REQUIRE(DNS_KASP_VALID(kasp));
170 REQUIRE(!kasp->frozen);
172 kasp->signatures_refresh = value;
176 dns_kasp_sigvalidity(dns_kasp_t *kasp) {
177 REQUIRE(DNS_KASP_VALID(kasp));
178 REQUIRE(kasp->frozen);
180 return kasp->signatures_validity;
184 dns_kasp_setsigvalidity(dns_kasp_t *kasp, uint32_t value) {
185 REQUIRE(DNS_KASP_VALID(kasp));
186 REQUIRE(!kasp->frozen);
188 kasp->signatures_validity = value;
192 dns_kasp_sigvalidity_dnskey(dns_kasp_t *kasp) {
193 REQUIRE(DNS_KASP_VALID(kasp));
194 REQUIRE(kasp->frozen);
196 return kasp->signatures_validity_dnskey;
200 dns_kasp_setsigvalidity_dnskey(dns_kasp_t *kasp, uint32_t value) {
201 REQUIRE(DNS_KASP_VALID(kasp));
202 REQUIRE(!kasp->frozen);
204 kasp->signatures_validity_dnskey = value;
208 dns_kasp_dnskeyttl(dns_kasp_t *kasp) {
209 REQUIRE(DNS_KASP_VALID(kasp));
210 REQUIRE(kasp->frozen);
212 return kasp->dnskey_ttl;
216 dns_kasp_setdnskeyttl(dns_kasp_t *kasp, dns_ttl_t ttl) {
217 REQUIRE(DNS_KASP_VALID(kasp));
218 REQUIRE(!kasp->frozen);
220 kasp->dnskey_ttl = ttl;
224 dns_kasp_purgekeys(dns_kasp_t *kasp) {
225 REQUIRE(DNS_KASP_VALID(kasp));
226 REQUIRE(kasp->frozen);
228 return kasp->purge_keys;
232 dns_kasp_setpurgekeys(dns_kasp_t *kasp, uint32_t value) {
233 REQUIRE(DNS_KASP_VALID(kasp));
234 REQUIRE(!kasp->frozen);
236 kasp->purge_keys = value;
240 dns_kasp_publishsafety(dns_kasp_t *kasp) {
241 REQUIRE(DNS_KASP_VALID(kasp));
242 REQUIRE(kasp->frozen);
244 return kasp->publish_safety;
248 dns_kasp_setpublishsafety(dns_kasp_t *kasp, uint32_t value) {
249 REQUIRE(DNS_KASP_VALID(kasp));
250 REQUIRE(!kasp->frozen);
252 kasp->publish_safety = value;
256 dns_kasp_retiresafety(dns_kasp_t *kasp) {
257 REQUIRE(DNS_KASP_VALID(kasp));
258 REQUIRE(kasp->frozen);
260 return kasp->retire_safety;
264 dns_kasp_setretiresafety(dns_kasp_t *kasp, uint32_t value) {
265 REQUIRE(DNS_KASP_VALID(kasp));
266 REQUIRE(!kasp->frozen);
268 kasp->retire_safety = value;
272 dns_kasp_inlinesigning(dns_kasp_t *kasp) {
273 REQUIRE(DNS_KASP_VALID(kasp));
274 REQUIRE(kasp->frozen);
276 return kasp->inline_signing;
280 dns_kasp_setinlinesigning(dns_kasp_t *kasp, bool value) {
281 REQUIRE(DNS_KASP_VALID(kasp));
282 REQUIRE(!kasp->frozen);
284 kasp->inline_signing = value;
288 dns_kasp_zonemaxttl(dns_kasp_t *kasp, bool fallback) {
289 REQUIRE(DNS_KASP_VALID(kasp));
290 REQUIRE(kasp->frozen);
292 if (kasp->zone_max_ttl == 0 && fallback) {
295 return kasp->zone_max_ttl;
299 dns_kasp_setzonemaxttl(dns_kasp_t *kasp, dns_ttl_t ttl) {
300 REQUIRE(DNS_KASP_VALID(kasp));
301 REQUIRE(!kasp->frozen);
303 kasp->zone_max_ttl = ttl;
307 dns_kasp_zonepropagationdelay(dns_kasp_t *kasp) {
308 REQUIRE(DNS_KASP_VALID(kasp));
309 REQUIRE(kasp->frozen);
311 return kasp->zone_propagation_delay;
315 dns_kasp_setzonepropagationdelay(dns_kasp_t *kasp, uint32_t value) {
316 REQUIRE(DNS_KASP_VALID(kasp));
317 REQUIRE(!kasp->frozen);
319 kasp->zone_propagation_delay = value;
323 dns_kasp_dsttl(dns_kasp_t *kasp) {
324 REQUIRE(DNS_KASP_VALID(kasp));
325 REQUIRE(kasp->frozen);
327 return kasp->parent_ds_ttl;
331 dns_kasp_setdsttl(dns_kasp_t *kasp, dns_ttl_t ttl) {
332 REQUIRE(DNS_KASP_VALID(kasp));
333 REQUIRE(!kasp->frozen);
335 kasp->parent_ds_ttl = ttl;
339 dns_kasp_parentpropagationdelay(dns_kasp_t *kasp) {
340 REQUIRE(DNS_KASP_VALID(kasp));
341 REQUIRE(kasp->frozen);
343 return kasp->parent_propagation_delay;
347 dns_kasp_setparentpropagationdelay(dns_kasp_t *kasp, uint32_t value) {
348 REQUIRE(DNS_KASP_VALID(kasp));
349 REQUIRE(!kasp->frozen);
351 kasp->parent_propagation_delay = value;
356 dns_kasp_t *kasp = NULL;
364 for (kasp = ISC_LIST_HEAD(*list); kasp != NULL;
365 kasp = ISC_LIST_NEXT(kasp, link))
367 if (strcmp(kasp->name, name) == 0) {
372 if (kasp == NULL) {
376 dns_kasp_attach(kasp, kaspp);
381 dns_kasp_keys(dns_kasp_t *kasp) {
382 REQUIRE(DNS_KASP_VALID(kasp));
383 REQUIRE(kasp->frozen);
385 return kasp->keys;
389 dns_kasp_keylist_empty(dns_kasp_t *kasp) {
390 REQUIRE(DNS_KASP_VALID(kasp));
392 return ISC_LIST_EMPTY(kasp->keys);
396 dns_kasp_addkey(dns_kasp_t *kasp, dns_kasp_key_t *key) {
397 REQUIRE(DNS_KASP_VALID(kasp));
398 REQUIRE(!kasp->frozen);
401 ISC_LIST_APPEND(kasp->keys, key, link);
405 dns_kasp_key_create(dns_kasp_t *kasp, dns_kasp_key_t **keyp) {
409 REQUIRE(DNS_KASP_VALID(kasp));
412 key = isc_mem_get(kasp->mctx, sizeof(*key));
416 isc_mem_attach(kasp->mctx, &key->mctx);
565 dns_kasp_nsec3iter(dns_kasp_t *kasp) {
566 REQUIRE(kasp != NULL);
567 REQUIRE(kasp->frozen);
568 REQUIRE(kasp->nsec3);
570 return kasp->nsec3param.iterations;
574 dns_kasp_nsec3flags(dns_kasp_t *kasp) {
575 REQUIRE(kasp != NULL);
576 REQUIRE(kasp->frozen);
577 REQUIRE(kasp->nsec3);
579 if (kasp->nsec3param.optout) {
586 dns_kasp_nsec3saltlen(dns_kasp_t *kasp) {
587 REQUIRE(kasp != NULL);
588 REQUIRE(kasp->frozen);
589 REQUIRE(kasp->nsec3);
591 return kasp->nsec3param.saltlen;
595 dns_kasp_nsec3(dns_kasp_t *kasp) {
596 REQUIRE(kasp != NULL);
597 REQUIRE(kasp->frozen);
599 return kasp->nsec3;
603 dns_kasp_setnsec3(dns_kasp_t *kasp, bool nsec3) {
604 REQUIRE(kasp != NULL);
605 REQUIRE(!kasp->frozen);
607 kasp->nsec3 = nsec3;
611 dns_kasp_setnsec3param(dns_kasp_t *kasp, uint8_t iter, bool optout,
613 REQUIRE(kasp != NULL);
614 REQUIRE(!kasp->frozen);
615 REQUIRE(kasp->nsec3);
617 kasp->nsec3param.iterations = iter;
618 kasp->nsec3param.optout = optout;
619 kasp->nsec3param.saltlen = saltlen;
623 dns_kasp_offlineksk(dns_kasp_t *kasp) {
624 REQUIRE(kasp != NULL);
625 REQUIRE(kasp->frozen);
627 return kasp->offlineksk;
631 dns_kasp_setofflineksk(dns_kasp_t *kasp, bool offlineksk) {
632 REQUIRE(kasp != NULL);
633 REQUIRE(!kasp->frozen);
635 kasp->offlineksk = offlineksk;
639 dns_kasp_cdnskey(dns_kasp_t *kasp) {
640 REQUIRE(kasp != NULL);
641 REQUIRE(kasp->frozen);
643 return kasp->cdnskey;
647 dns_kasp_setcdnskey(dns_kasp_t *kasp, bool cdnskey) {
648 REQUIRE(kasp != NULL);
649 REQUIRE(!kasp->frozen);
651 kasp->cdnskey = cdnskey;
655 dns_kasp_digests(dns_kasp_t *kasp) {
656 REQUIRE(DNS_KASP_VALID(kasp));
657 REQUIRE(kasp->frozen);
659 return kasp->digests;
663 dns_kasp_adddigest(dns_kasp_t *kasp, dns_dsdigest_t alg) {
666 REQUIRE(DNS_KASP_VALID(kasp));
667 REQUIRE(!kasp->frozen);
675 for (dns_kasp_digest_t *d = ISC_LIST_HEAD(kasp->digests); d != NULL;
683 digest = isc_mem_get(kasp->mctx, sizeof(*digest));
686 ISC_LIST_APPEND(kasp->digests, digest, link);