1*00b67f09SDavid van Moolenbroek#!/bin/sh -e 2*00b67f09SDavid van Moolenbroek# 3*00b67f09SDavid van Moolenbroek# Copyright (C) 2011-2014 Internet Systems Consortium, Inc. ("ISC") 4*00b67f09SDavid van Moolenbroek# 5*00b67f09SDavid van Moolenbroek# Permission to use, copy, modify, and/or distribute this software for any 6*00b67f09SDavid van Moolenbroek# purpose with or without fee is hereby granted, provided that the above 7*00b67f09SDavid van Moolenbroek# copyright notice and this permission notice appear in all copies. 8*00b67f09SDavid van Moolenbroek# 9*00b67f09SDavid van Moolenbroek# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 10*00b67f09SDavid van Moolenbroek# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 11*00b67f09SDavid van Moolenbroek# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 12*00b67f09SDavid van Moolenbroek# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 13*00b67f09SDavid van Moolenbroek# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 14*00b67f09SDavid van Moolenbroek# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 15*00b67f09SDavid van Moolenbroek# PERFORMANCE OF THIS SOFTWARE. 16*00b67f09SDavid van Moolenbroek 17*00b67f09SDavid van MoolenbroekSYSTEMTESTTOP=../.. 18*00b67f09SDavid van Moolenbroek. $SYSTEMTESTTOP/conf.sh 19*00b67f09SDavid van Moolenbroek 20*00b67f09SDavid van Moolenbroekzone=bits 21*00b67f09SDavid van Moolenbroekrm -f K${zone}.+*+*.key 22*00b67f09SDavid van Moolenbroekrm -f K${zone}.+*+*.private 23*00b67f09SDavid van Moolenbroekkeyname=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 768 -n zone $zone` 24*00b67f09SDavid van Moolenbroekkeyname=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 1024 -n zone -f KSK $zone` 25*00b67f09SDavid van Moolenbroek$DSFROMKEY -T 1200 $keyname >> ../ns1/root.db 26*00b67f09SDavid van Moolenbroek 27*00b67f09SDavid van Moolenbroekzone=noixfr 28*00b67f09SDavid van Moolenbroekrm -f K${zone}.+*+*.key 29*00b67f09SDavid van Moolenbroekrm -f K${zone}.+*+*.private 30*00b67f09SDavid van Moolenbroekkeyname=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 768 -n zone $zone` 31*00b67f09SDavid van Moolenbroekkeyname=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 1024 -n zone -f KSK $zone` 32*00b67f09SDavid van Moolenbroek$DSFROMKEY -T 1200 $keyname >> ../ns1/root.db 33*00b67f09SDavid van Moolenbroek 34*00b67f09SDavid van Moolenbroekzone=master 35*00b67f09SDavid van Moolenbroekrm -f K${zone}.+*+*.key 36*00b67f09SDavid van Moolenbroekrm -f K${zone}.+*+*.private 37*00b67f09SDavid van Moolenbroekkeyname=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 768 -n zone $zone` 38*00b67f09SDavid van Moolenbroekkeyname=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 1024 -n zone -f KSK $zone` 39*00b67f09SDavid van Moolenbroek$DSFROMKEY -T 1200 $keyname >> ../ns1/root.db 40*00b67f09SDavid van Moolenbroek 41*00b67f09SDavid van Moolenbroekzone=dynamic 42*00b67f09SDavid van Moolenbroekrm -f K${zone}.+*+*.key 43*00b67f09SDavid van Moolenbroekrm -f K${zone}.+*+*.private 44*00b67f09SDavid van Moolenbroekkeyname=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 768 -n zone $zone` 45*00b67f09SDavid van Moolenbroekkeyname=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 1024 -n zone -f KSK $zone` 46*00b67f09SDavid van Moolenbroek$DSFROMKEY -T 1200 $keyname >> ../ns1/root.db 47*00b67f09SDavid van Moolenbroek 48*00b67f09SDavid van Moolenbroekzone=updated 49*00b67f09SDavid van Moolenbroekrm -f K${zone}.+*+*.key 50*00b67f09SDavid van Moolenbroekrm -f K${zone}.+*+*.private 51*00b67f09SDavid van Moolenbroekkeyname=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 768 -n zone $zone` 52*00b67f09SDavid van Moolenbroekkeyname=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 1024 -n zone -f KSK $zone` 53*00b67f09SDavid van Moolenbroek$DSFROMKEY -T 1200 $keyname >> ../ns1/root.db 54*00b67f09SDavid van Moolenbroek$SIGNER -S -O raw -L 2000042407 -o ${zone} ${zone}.db > /dev/null 2>&1 55*00b67f09SDavid van Moolenbroekcp master2.db.in updated.db 56*00b67f09SDavid van Moolenbroek 57*00b67f09SDavid van Moolenbroek# signatures are expired and should be regenerated on startup 58*00b67f09SDavid van Moolenbroekzone=expired 59*00b67f09SDavid van Moolenbroekrm -f K${zone}.+*+*.key 60*00b67f09SDavid van Moolenbroekrm -f K${zone}.+*+*.private 61*00b67f09SDavid van Moolenbroekkeyname=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 768 -n zone $zone` 62*00b67f09SDavid van Moolenbroekkeyname=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 1024 -n zone -f KSK $zone` 63*00b67f09SDavid van Moolenbroek$DSFROMKEY -T 1200 $keyname >> ../ns1/root.db 64*00b67f09SDavid van Moolenbroek$SIGNER -PS -s 20100101000000 -e 20110101000000 -O raw -L 2000042407 -o ${zone} ${zone}.db > /dev/null 2>&1 65*00b67f09SDavid van Moolenbroek 66*00b67f09SDavid van Moolenbroekzone=retransfer 67*00b67f09SDavid van Moolenbroekrm -f K${zone}.+*+*.key 68*00b67f09SDavid van Moolenbroekrm -f K${zone}.+*+*.private 69*00b67f09SDavid van Moolenbroekkeyname=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 768 -n zone $zone` 70*00b67f09SDavid van Moolenbroekkeyname=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 1024 -n zone -f KSK $zone` 71*00b67f09SDavid van Moolenbroek$DSFROMKEY -T 1200 $keyname >> ../ns1/root.db 72*00b67f09SDavid van Moolenbroek 73*00b67f09SDavid van Moolenbroekzone=nsec3 74*00b67f09SDavid van Moolenbroekrm -f K${zone}.+*+*.key 75*00b67f09SDavid van Moolenbroekrm -f K${zone}.+*+*.private 76*00b67f09SDavid van Moolenbroekkeyname=`$KEYGEN -q -r $RANDFILE -a NSEC3RSASHA1 -b 1024 -n zone -f KSK $zone` 77*00b67f09SDavid van Moolenbroek$DSFROMKEY -T 1200 $keyname >> ../ns1/root.db 78*00b67f09SDavid van Moolenbroek 79*00b67f09SDavid van Moolenbroekzone=retransfer3 80*00b67f09SDavid van Moolenbroekrm -f K${zone}.+*+*.key 81*00b67f09SDavid van Moolenbroekrm -f K${zone}.+*+*.private 82*00b67f09SDavid van Moolenbroekkeyname=`$KEYGEN -q -r $RANDFILE -a NSEC3RSASHA1 -b 768 -n zone $zone` 83*00b67f09SDavid van Moolenbroekkeyname=`$KEYGEN -q -r $RANDFILE -a NSEC3RSASHA1 -b 1024 -n zone -f KSK $zone` 84*00b67f09SDavid van Moolenbroek$DSFROMKEY -T 1200 $keyname >> ../ns1/root.db 85*00b67f09SDavid van Moolenbroek 86*00b67f09SDavid van Moolenbroekfor s in a c d h k l m q z 87*00b67f09SDavid van Moolenbroekdo 88*00b67f09SDavid van Moolenbroek zone=test-$s 89*00b67f09SDavid van Moolenbroek keyname=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 768 -n zone $zone` 90*00b67f09SDavid van Moolenbroekdone 91*00b67f09SDavid van Moolenbroek 92*00b67f09SDavid van Moolenbroekfor s in b f i o p t v 93*00b67f09SDavid van Moolenbroekdo 94*00b67f09SDavid van Moolenbroek zone=test-$s 95*00b67f09SDavid van Moolenbroek keyname=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 768 -n zone $zone` 96*00b67f09SDavid van Moolenbroek keyname=`$KEYGEN -q -r $RANDFILE -a RSASHA1 -b 1024 -n zone -f KSK $zone` 97*00b67f09SDavid van Moolenbroekdone 98*00b67f09SDavid van Moolenbroek 99*00b67f09SDavid van Moolenbroekzone=externalkey 100*00b67f09SDavid van Moolenbroekrm -f K${zone}.+*+*.key 101*00b67f09SDavid van Moolenbroekrm -f K${zone}.+*+*.private 102*00b67f09SDavid van Moolenbroek 103*00b67f09SDavid van Moolenbroekfor alg in ECCGOST ECDSAP256SHA256 NSEC3RSASHA1 DSA 104*00b67f09SDavid van Moolenbroekdo 105*00b67f09SDavid van Moolenbroek case $alg in 106*00b67f09SDavid van Moolenbroek DSA) 107*00b67f09SDavid van Moolenbroek $SHELL ../checkdsa.sh 2> /dev/null || continue 108*00b67f09SDavid van Moolenbroek checkfile=../checkdsa 109*00b67f09SDavid van Moolenbroek touch $checkfile ;; 110*00b67f09SDavid van Moolenbroek ECCGOST) 111*00b67f09SDavid van Moolenbroek fail=0 112*00b67f09SDavid van Moolenbroek $KEYGEN -q -r $RANDFILE -a eccgost test > /dev/null 2>&1 || fail=1 113*00b67f09SDavid van Moolenbroek rm -f Ktest* 114*00b67f09SDavid van Moolenbroek [ $fail != 0 ] && continue 115*00b67f09SDavid van Moolenbroek checkfile=../checkgost 116*00b67f09SDavid van Moolenbroek touch $checkfile ;; 117*00b67f09SDavid van Moolenbroek ECDSAP256SHA256) 118*00b67f09SDavid van Moolenbroek fail=0 119*00b67f09SDavid van Moolenbroek $KEYGEN -q -r $RANDFILE -a ecdsap256sha256 test > /dev/null 2>&1 || fail=1 120*00b67f09SDavid van Moolenbroek rm -f Ktest* 121*00b67f09SDavid van Moolenbroek [ $fail != 0 ] && continue 122*00b67f09SDavid van Moolenbroek $SHELL ../checkdsa.sh 2> /dev/null || continue 123*00b67f09SDavid van Moolenbroek checkfile=../checkecdsa 124*00b67f09SDavid van Moolenbroek touch $checkfile ;; 125*00b67f09SDavid van Moolenbroek *) ;; 126*00b67f09SDavid van Moolenbroek esac 127*00b67f09SDavid van Moolenbroek 128*00b67f09SDavid van Moolenbroek k1=`$KEYGEN -q -r $RANDFILE -a $alg -b 1024 -n zone -f KSK $zone` 129*00b67f09SDavid van Moolenbroek k2=`$KEYGEN -q -r $RANDFILE -a $alg -b 1024 -n zone $zone` 130*00b67f09SDavid van Moolenbroek k3=`$KEYGEN -q -r $RANDFILE -a $alg -b 1024 -n zone $zone` 131*00b67f09SDavid van Moolenbroek k4=`$KEYGEN -q -r $RANDFILE -a $alg -b 1024 -n zone -f KSK $zone` 132*00b67f09SDavid van Moolenbroek $DSFROMKEY -T 1200 $k4 >> ../ns1/root.db 133*00b67f09SDavid van Moolenbroek 134*00b67f09SDavid van Moolenbroek # Convert k1 and k2 in to External Keys. 135*00b67f09SDavid van Moolenbroek rm -f $k1.private 136*00b67f09SDavid van Moolenbroek mv $k1.key a-file 137*00b67f09SDavid van Moolenbroek $IMPORTKEY -P now -D now+3600 -f a-file $zone > /dev/null 2>&1 || 138*00b67f09SDavid van Moolenbroek ( echo "importkey failed: $alg"; rm -f $checkfile ) 139*00b67f09SDavid van Moolenbroek rm -f $k2.private 140*00b67f09SDavid van Moolenbroek mv $k2.key a-file 141*00b67f09SDavid van Moolenbroek $IMPORTKEY -f a-file $zone > /dev/null 2>&1 || 142*00b67f09SDavid van Moolenbroek ( echo "importkey failed: $alg"; rm -f $checkfile ) 143*00b67f09SDavid van Moolenbroekdone 144