]> mj.ucw.cz Git - nsc-5.git/blob - bin/key-update
DNSSEC: Key management scripts
[nsc-5.git] / bin / key-update
1 #!/bin/bash
2 # NSC -- DNSSEC key hash updater
3 # (c) 2019 Martin Mares <mj@ucw.cz>
4
5 set -e
6 shopt -s nullglob
7 . bin/shell-env
8
9 if [ $# -gt 1 ] ; then
10         echo >&2 "Usage: $0 [<domain>]"
11         exit 1
12 fi
13
14 update ()
15 {
16         local D=$1
17         local K=$KEYDIR/$D
18         local H=$K.hash
19         cat $K/*.key | sha1sum | cut -f1 -d' ' >$H.new
20         if [ ! -f $H ] || ! cmp -s $H $H.new ; then
21                 echo "** $D: New key hash"
22                 mv $H.new $H
23         else
24                 echo "-- $D: No change"
25                 rm $H.new
26         fi
27 }
28
29 if [ -z "$1" ] ; then
30         for DD in $KEYDIR/* ; do
31                 if [ -d "$DD" ] ; then
32                         update $(basename $DD)
33                 fi
34         done
35         for H in $KEYDIR/*.hash ; do
36                 B=$(basename $H .hash)
37                 if [ ! -d $KEYDIR/$B ] ; then
38                         echo "## $B: Deleted obsolete hash"
39                         rm $H
40                 fi
41         done
42 else
43         update $1
44 fi