--- a/dnssec-creatkey Wed Jul 14 12:05:41 2010 +0200
+++ b/dnssec-creatkey Wed Jul 14 15:37:27 2010 +0200
@@ -1,12 +1,14 @@
#!/bin/bash
set -e
+#import aus der dnstools.conf
source dnstools.conf
-
master_dir=$MASTER_DIR
key_counter_end=$KEY_COUNTER_END
-function test_zsk_new { # prueft ob es einen ZSK gibt
+
+# gibt alle zonen ohne zsk in die standard-ausgabe
+function test_zsk_new {
for zone in $master_dir/*
do
test -f $zone/${zone##*/}.signed || continue
@@ -14,7 +16,9 @@
done
}
-function test_ksk_new { # prueft ob es einen KSK gibt
+
+# gibt alle zonen ohne ksk in die standard-ausgabe
+function test_ksk_new {
for zone in $master_dir/*
do
test -f $zone/${zone##*/}.signed || continue
@@ -22,11 +26,12 @@
done
}
+
+# gibt alle zonen mitabgelaufenen keycounter in die standardausgabe
function test_zsk_time { # prueft den keycounter
for zone in $master_dir/*
do
test -f $zone/${zone##*/}.signed || continue
- key_counter_end=$1
test -f $zone/keycounter || echo 0 > $zone/keycounter
key_counter=`< $zone/keycounter`
@@ -37,26 +42,29 @@
done
}
-#prüft die eingegebnen domains
+
+#prüft die eingegebnen domains und erstellt eine liste
for utf8domain in $@
do
domain=$(idn --quiet "$utf8domain")
if [ -d $master_dir/$domain ]
then
- zsk_aenderung="$zsk_aenderung $domain"
+ zsk_manuell="$zsk_manuell $domain"
else
echo $domain ist keine verwaltete Zone
fi
done
-zsk_time=`test_zsk_time $key_counter_end`
+# übergibt die standard-ausgabe aus den funktionen in listen
+zsk_time=`test_zsk_time`
zsk_new=`test_zsk_new`
ksk_new=`test_ksk_new`
-for NEW_ZSK_ZONE in $zsk_time $zsk_aenderung # Erstellt ZSK
+# erstellt zsks
+for NEW_ZSK_ZONE in $zsk_time $zsk_manuell
do
cd $master_dir/$NEW_ZSK_ZONE
echo "erzeugt zsk fuer" $NEW_ZSK_ZONE
@@ -67,7 +75,9 @@
echo 0 > keycounter
done
-for NEW_KSK_ZONE in $zsk_aenderung # Erstellt KSK
+
+# erstellt ksks
+for NEW_KSK_ZONE in $zsk_manuell
do
cd $master_dir/$NEW_KSK_ZONE
echo "erzeugt ksk fuer" $NEW_KSK_ZONE
@@ -77,18 +87,18 @@
done
-
-for ZONE in $zsk_time $zsk_new $ksk_new $zsk_aenderung
+# fuegt die schluessel in die zone-datei
+for zone in $zsk_time $zsk_manuell
do
- cd $master_dir/$ZONE
+ cd $master_dir/$zone
#loescht alle Schluessel die nicht in der indexdatei stehen
- rm $(ls K*[key,private] | grep -v "`cat .index.zsk`" | grep -v "`cat .index.ksk`") 2> /dev/null
+ rm $(ls K*[key,private] | grep -v "`cat .index.zsk`" | grep -v "`cat .index.ksk`") 2>/dev/null || true
#erzeugt ein backup und entfernt alle schluessel aus der zonedatei
- mv $ZONE $ZONE.old
- grep -v 'DNSKEY' $ZONE.old >> $ZONE
+ mv $zone .$zone
+ grep -v 'DNSKEY' .$zone >> $zone
#fuegt die existirenden schluessel in die zonedatei ein
- cat K$ZONE.*key >> $ZONE
+ cat K$zone.*key >> $zone
done