--- /dev/null
+#!/bin/sh
+# NSC -- DNSSEC key generator
+# (c) 2019 Martin Mares <mj@ucw.cz>
+
+set -e
+. bin/shell-env
+
+if [ -z "$1" ] ; then
+ echo >&2 "Usage: $0 <domain> [<extra-keygen-params>]"
+ exit 1
+fi
+D="$1"
+shift
+
+mkdir -p $KEYDIR/$D
+dnssec-keygen $KEYGEN_OPTIONS -K $KEYDIR/$D "$@" $D
+bin/key-update $D
--- /dev/null
+#!/bin/bash
+# NSC -- DNSSEC key hash updater
+# (c) 2019 Martin Mares <mj@ucw.cz>
+
+set -e
+shopt -s nullglob
+. bin/shell-env
+
+if [ $# -gt 1 ] ; then
+ echo >&2 "Usage: $0 [<domain>]"
+ exit 1
+fi
+
+update ()
+{
+ local D=$1
+ local K=$KEYDIR/$D
+ local H=$K.hash
+ cat $K/*.key | sha1sum | cut -f1 -d' ' >$H.new
+ if [ ! -f $H ] || ! cmp -s $H $H.new ; then
+ echo "** $D: New key hash"
+ mv $H.new $H
+ else
+ echo "-- $D: No change"
+ rm $H.new
+ fi
+}
+
+if [ -z "$1" ] ; then
+ for DD in $KEYDIR/* ; do
+ if [ -d "$DD" ] ; then
+ update $(basename $DD)
+ fi
+ done
+ for H in $KEYDIR/*.hash ; do
+ B=$(basename $H .hash)
+ if [ ! -d $KEYDIR/$B ] ; then
+ echo "## $B: Deleted obsolete hash"
+ rm $H
+ fi
+ done
+else
+ update $1
+fi
#!/bin/sh
# NSC -- Makefile & Config file build script
-# (c) 1997--2008 Martin Mares <mj@ucw.cz>
+# (c) 1997--2019 Martin Mares <mj@ucw.cz>
set -e
exit 1
fi
-mkdir -p zone bak hash ver
+mkdir -p zone bak hash ver keys dss
$M4 m4/mkconf.m4 $DOMAINS >named.conf
$M4 m4/mkmf.m4 $DOMAINS >Makefile
$M4 -DM4=$M4 m4/mkshell-env.m4 >bin/shell-env
define(`BAKDIR', `bak')
define(`VERSDIR', `ver')
define(`HASHDIR', `hash')
+define(`KEYDIR', `keys')
+define(`DSSDIR', `dss')
define(`ROOTCACHE', `root.cache')
define(`REFRESH', HOURS(8))
',`'))
define(`MAINTNAME', `root'.`nsc_corr_dot(NSNAME)')
+define(`KEYGEN_OPTIONS', `-a RSASHA256 -b 1024')
+define(`SIGNZONE_OPTIONS', `-e +'DAYS(365))
+
# And finally we change comments to semicolons to be compatible with the zone files
changecom(;)
touch VERSDIR/.version
clean:
- find BAKDIR ZONEDIR HASHDIR -maxdepth 1 -type f | xargs rm -f
+ find BAKDIR ZONEDIR HASHDIR DSSDIR -maxdepth 1 -type f | xargs rm -f
clobber: clean
rm -f Makefile named.conf bin/shell-env
`BAKDIR'=BAKDIR
`VERSDIR'=VERSDIR
`HASHDIR'=HASHDIR
+`KEYDIR'=KEYDIR
+`DSSDIR'=DSSDIR
`ROOTCACHE'=ROOTCACHE
`M4'=M4
+`KEYGEN_OPTIONS'="KEYGEN_OPTIONS"
+`SIGNZONE_OPTIONS'="SIGNZONE_OPTIONS"