bind9/bin/dnssec
Matthijs Mekking 39c0c5022d Wait with NSEC3 during a DNSSEC policy change
When doing a dnssec-policy reconfiguration from a zone with NSEC only
keys to a zone that uses NSEC3, figure out to wait with building the
NSEC3 chain.

Previously, BIND 9 would attempt to sign such a zone, but failed to
do so because the NSEC3 chain conflicted with existing DNSKEY records
in the zone that were not compatible with NSEC3.

There exists logic for detecting such a case in the functions
dnskey_sane() (in lib/dns/zone.c) and check_dnssec() (in
lib/ns/update.c). Both functions look very similar so refactor them
to use the same code and call the new function (called
dns_zone_check_dnskey_nsec3()).

Also update the dns_nsec_nseconly() function to take an additional
parameter 'diff' that, if provided, will be checked whether an
offending NSEC only DNSKEY will be deleted from the zone. If so,
this key will not be considered when checking the zone for NSEC only
DNSKEYs. This is needed to allow a transition from an NSEC zone with
NSEC only DNSKEYs to an NSEC3 zone.

(cherry picked from commit 09a81dc84ce0fee37442f03cdbd63c2398215376)
2022-08-22 19:21:39 +02:00
..
.gitignore [master] dnssec-cds 2017-10-05 01:04:18 -07:00
dnssec-cds.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 08:42:18 +01:00
dnssec-cds.rst Add internal hyperlinks to See Also section of manual pages 2022-03-14 11:01:32 +01:00
dnssec-dsfromkey.c Replace ISC_NORETURN with C11's noreturn 2022-03-25 08:42:18 +01:00
dnssec-dsfromkey.rst Add internal hyperlinks to See Also section of manual pages 2022-03-14 11:01:32 +01:00
dnssec-importkey.c Replace ISC_NORETURN with C11's noreturn 2022-03-25 08:42:18 +01:00
dnssec-importkey.rst Teach dnssec-settime to read unset times that it writes 2022-05-23 15:15:10 +02:00
dnssec-keyfromlabel.c Replace ISC_NORETURN with C11's noreturn 2022-03-25 08:42:18 +01:00
dnssec-keyfromlabel.rst Clarify dnssec-keyfromlabel -a in man page 2022-06-10 07:55:12 +02:00
dnssec-keygen.c Replace ISC_NORETURN with C11's noreturn 2022-03-25 08:42:18 +01:00
dnssec-keygen.rst Update NSEC3 guidance to match draft-ietf-dnsop-nsec3-guidance-10 2022-06-15 17:57:40 +02:00
dnssec-revoke.c Replace ISC_NORETURN with C11's noreturn 2022-03-25 08:42:18 +01:00
dnssec-revoke.rst Add internal hyperlinks to See Also section of manual pages 2022-03-14 11:01:32 +01:00
dnssec-settime.c Replace ISC_NORETURN with C11's noreturn 2022-03-25 08:42:18 +01:00
dnssec-settime.rst Teach dnssec-settime to read unset times that it writes 2022-05-23 15:15:10 +02:00
dnssec-signzone.c Wait with NSEC3 during a DNSSEC policy change 2022-08-22 19:21:39 +02:00
dnssec-signzone.rst Update NSEC3 guidance to match draft-ietf-dnsop-nsec3-guidance-10 2022-06-15 17:57:40 +02:00
dnssec-verify.c Replace ISC_NORETURN with C11's noreturn 2022-03-25 08:42:18 +01:00
dnssec-verify.rst Add internal hyperlinks to See Also section of manual pages 2022-03-14 11:01:32 +01:00
dnssectool.c Teach dnssec-settime to read unset times that it writes 2022-05-23 15:15:10 +02:00
dnssectool.h Replace ISC_NORETURN with C11's noreturn 2022-03-25 08:42:18 +01:00
Makefile.am Move the include Makefile.tests to the bottom of Makefile.am(s) 2021-06-24 15:33:52 +02:00