bind9/util
Matthijs Mekking 7e7aa5387c Introduce keymgr in named
Add a key manager to named.  If a 'dnssec-policy' is set, 'named'
will run a key manager on the matching keys.  This will do a couple
of things:

1. Create keys when needed (in case of rollover for example)
   according to the set policy.

2. Retire keys that are in excess of the policy.

3. Maintain key states according to "Flexible and Robust Key
   Rollover" [1]. After key manager ran, key files will be saved to
   disk.

   [1] https://matthijsmekking.nl/static/pdf/satin2012-Schaeffer.pdf

KEY GENERATION

Create keys according to DNSSEC policy.  Zones configured with
'dnssec-policy' will allow 'named' to create DNSSEC keys (similar
to dnssec-keymgr) if not available.

KEY ROLLOVER

Rather than determining the desired state from timing metadata,
add a key state goal.  Any keys that are created or picked from the
key ring and selected to be a successor has its key state goal set
to OMNIPRESENT (this key wants to be signing!). At the same time,
a key that is being retired has its key state goal set to HIDDEN.

The keymgr state machine with the three rules will make sure no
introduction or withdrawal of DNSSEC records happens too soon.

KEY TIMINGS

All timings are based on RFC 7583.

The keymgr will return when the next action is happening so
that the zone can set the proper rekey event. Prior to this change
the rekey event will run every hour by default (configurable),
but with kasp we can determine exactly when we need to run again.

The prepublication time is derived from policy.
2019-11-06 22:36:21 +01:00
..
bindkeys.pl "dnssec-keys" is now a synonym for "managed-keys" 2019-06-05 07:49:57 -07:00
branchsync.sh updated branchsync to deal with merge commits 2018-03-14 14:40:13 -07:00
check-ans-prereq.sh add check-ans-prereq 2019-02-12 08:26:42 +11:00
check-categories.sh Update license headers to not include years in copyright in all applicable files 2018-02-23 10:12:02 +01:00
check-changes ensure there is a blank line before a changes entry and a release marker 2018-05-23 20:46:38 -04:00
check-cocci Revert to patch generating check-cocci script 2019-07-23 15:32:35 -04:00
check-includes.pl Replace custom isc_boolean_t with C standard bool type 2018-08-08 09:37:30 +02:00
check-instincludes.sh Remove $Id markers, Principal Author and Reviewed tags from the full source tree 2018-05-11 13:17:46 +02:00
check-pullups.pl Remove $Id markers, Principal Author and Reviewed tags from the full source tree 2018-05-11 13:17:46 +02:00
check-sources.pl Remove $Id markers, Principal Author and Reviewed tags from the full source tree 2018-05-11 13:17:46 +02:00
check-win32util-configure add util/check-win32util-configure to precheck 2019-03-05 17:11:20 +11:00
checklibs.sh Remove config.h check from util/checklibs.sh 2019-03-08 15:15:05 +01:00
commit-arm.sh Remove $Id markers, Principal Author and Reviewed tags from the full source tree 2018-05-11 13:17:46 +02:00
COPYRIGHT Update scripts in util/ to drop the year information from the individual source files. 2018-02-23 10:10:52 +01:00
COPYRIGHT.BRIEF ensure COPYRIGHT file retains years; edit file headers for consistency 2018-03-15 18:32:29 -07:00
COPYRIGHT.BSDI ensure COPYRIGHT file retains years; edit file headers for consistency 2018-03-15 18:32:29 -07:00
COPYRIGHT.NAI ensure COPYRIGHT file retains years; edit file headers for consistency 2018-03-15 18:32:29 -07:00
COPYRIGHT.NOM ensure COPYRIGHT file retains years; edit file headers for consistency 2018-03-15 18:32:29 -07:00
COPYRIGHT.PORTION ensure COPYRIGHT file retains years; edit file headers for consistency 2018-03-15 18:32:29 -07:00
COPYRIGHT.TOP ensure COPYRIGHT file retains years; edit file headers for consistency 2018-03-15 18:32:29 -07:00
copyrights Introduce keymgr in named 2019-11-06 22:36:21 +01:00
git-replay-merge.sh Update the git-replay-merge to use the latest GitLab -o options 2019-10-31 09:18:01 -05:00
kit.sh use the correct repository, and get archive by tag not hash 2018-05-21 13:43:49 -07:00
mandoc2docbook.pl Remove $Id markers, Principal Author and Reviewed tags from the full source tree 2018-05-11 13:17:46 +02:00
mdnbuildtest.sh Remove $Id markers, Principal Author and Reviewed tags from the full source tree 2018-05-11 13:17:46 +02:00
memleak.pl Remove $Id markers, Principal Author and Reviewed tags from the full source tree 2018-05-11 13:17:46 +02:00
merge_copyrights Don't cover the .spatch files with copyright 2019-07-12 15:45:07 +02:00
mksymtbl.pl Don't generate #include <config.h> line from mksymtbl.pl 2019-03-08 15:15:05 +01:00
models.c model _assert_true 2018-11-21 12:56:27 +11:00
nanny.pl Remove $Id markers, Principal Author and Reviewed tags from the full source tree 2018-05-11 13:17:46 +02:00
new-func Remove $Id markers, Principal Author and Reviewed tags from the full source tree 2018-05-11 13:17:46 +02:00
nt-kit Remove $Id markers, Principal Author and Reviewed tags from the full source tree 2018-05-11 13:17:46 +02:00
prepare-softhsm2.sh SoftHSM 2.4.0 only supports softhsm2.conf now, rewrite GitLab CI commands to properly support that 2018-08-13 12:43:38 +02:00
spacewhack.pl Remove $Id markers, Principal Author and Reviewed tags from the full source tree 2018-05-11 13:17:46 +02:00
suppressions.txt Use util/suppressions.txt for Cppcheck suppressions list 2019-10-03 15:28:38 +02:00
tabify-changes Remove $Id markers, Principal Author and Reviewed tags from the full source tree 2018-05-11 13:17:46 +02:00
update-drafts.pl Remove $Id markers, Principal Author and Reviewed tags from the full source tree 2018-05-11 13:17:46 +02:00
update_branches Remove $Id markers, Principal Author and Reviewed tags from the full source tree 2018-05-11 13:17:46 +02:00
update_copyrights support files which have CR LF ending like those in win32utils 2019-04-12 14:09:01 +10:00
xc Remove $Id markers, Principal Author and Reviewed tags from the full source tree 2018-05-11 13:17:46 +02:00