1#!/bin/sh 2# 3# Copyright (C) 2013, 2014 Internet Systems Consortium, Inc. ("ISC") 4# 5# Permission to use, copy, modify, and/or distribute this software for any 6# purpose with or without fee is hereby granted, provided that the above 7# copyright notice and this permission notice appear in all copies. 8# 9# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 10# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 11# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 12# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 13# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 14# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 15# PERFORMANCE OF THIS SOFTWARE. 16 17SYSTEMTESTTOP=.. 18. $SYSTEMTESTTOP/conf.sh 19 20KEYGEN="$KEYGEN -qr $RANDFILE" 21 22$SHELL clean.sh 23 24ln -s $CHECKZONE named-compilezone 25 26# Test 1: KSK goes inactive before successor is active 27dir=01-ksk-inactive 28rm -f $dir/K*.key 29rm -f $dir/K*.private 30ksk1=`$KEYGEN -K $dir -3fk example.com` 31$SETTIME -K $dir -I +9mo -D +1y $ksk1 > /dev/null 2>&1 32ksk2=`$KEYGEN -K $dir -S $ksk1` 33$SETTIME -K $dir -I +7mo $ksk1 > /dev/null 2>&1 34zsk1=`$KEYGEN -K $dir -3 example.com` 35 36# Test 2: ZSK goes inactive before successor is active 37dir=02-zsk-inactive 38rm -f $dir/K*.key 39rm -f $dir/K*.private 40zsk1=`$KEYGEN -K $dir -3 example.com` 41$SETTIME -K $dir -I +9mo -D +1y $zsk1 > /dev/null 2>&1 42zsk2=`$KEYGEN -K $dir -S $zsk1` 43$SETTIME -K $dir -I +7mo $zsk1 > /dev/null 2>&1 44ksk1=`$KEYGEN -K $dir -3fk example.com` 45 46# Test 3: KSK is unpublished before its successor is published 47dir=03-ksk-unpublished 48rm -f $dir/K*.key 49rm -f $dir/K*.private 50ksk1=`$KEYGEN -K $dir -3fk example.com` 51$SETTIME -K $dir -I +9mo -D +1y $ksk1 > /dev/null 2>&1 52ksk2=`$KEYGEN -K $dir -S $ksk1` 53$SETTIME -K $dir -D +6mo $ksk1 > /dev/null 2>&1 54zsk1=`$KEYGEN -K $dir -3 example.com` 55 56# Test 4: ZSK is unpublished before its successor is published 57dir=04-zsk-unpublished 58rm -f $dir/K*.key 59rm -f $dir/K*.private 60zsk1=`$KEYGEN -K $dir -3 example.com` 61$SETTIME -K $dir -I +9mo -D +1y $zsk1 > /dev/null 2>&1 62zsk2=`$KEYGEN -K $dir -S $zsk1` 63$SETTIME -K $dir -D +6mo $zsk1 > /dev/null 2>&1 64ksk1=`$KEYGEN -K $dir -3fk example.com` 65 66# Test 5: KSK deleted and successor published before KSK is deactivated 67# and successor activated. 68dir=05-ksk-unpub-active 69rm -f $dir/K*.key 70rm -f $dir/K*.private 71ksk1=`$KEYGEN -K $dir -3fk example.com` 72$SETTIME -K $dir -I +9mo -D +8mo $ksk1 > /dev/null 2>&1 73ksk2=`$KEYGEN -K $dir -S $ksk1` 74zsk1=`$KEYGEN -K $dir -3 example.com` 75 76# Test 6: ZSK deleted and successor published before ZSK is deactivated 77# and successor activated. 78dir=06-zsk-unpub-active 79rm -f $dir/K*.key 80rm -f $dir/K*.private 81zsk1=`$KEYGEN -K $dir -3 example.com` 82$SETTIME -K $dir -I +9mo -D +8mo $zsk1 > /dev/null 2>&1 83zsk2=`$KEYGEN -K $dir -S $zsk1` 84ksk1=`$KEYGEN -K $dir -3fk example.com` 85 86# Test 7: KSK rolled with insufficient delay after prepublication. 87dir=07-ksk-ttl 88rm -f $dir/K*.key 89rm -f $dir/K*.private 90ksk1=`$KEYGEN -K $dir -3fk example.com` 91$SETTIME -K $dir -I +9mo -D +1y $ksk1 > /dev/null 2>&1 92ksk2=`$KEYGEN -K $dir -S $ksk1` 93# allow only 1 day between publication and activation 94$SETTIME -K $dir -P +269d $ksk2 > /dev/null 2>&1 95zsk1=`$KEYGEN -K $dir -3 example.com` 96 97# Test 8: ZSK rolled with insufficient delay after prepublication. 98dir=08-zsk-ttl 99rm -f $dir/K*.key 100rm -f $dir/K*.private 101zsk1=`$KEYGEN -K $dir -3 example.com` 102$SETTIME -K $dir -I +9mo -D +1y $zsk1 > /dev/null 2>&1 103zsk2=`$KEYGEN -K $dir -S $zsk1` 104# allow only 1 day between publication and activation 105$SETTIME -K $dir -P +269d $zsk2 > /dev/null 2>&1 106ksk1=`$KEYGEN -K $dir -3fk example.com` 107 108# Test 9: KSK goes inactive before successor is active, but checking ZSKs 109dir=09-check-zsk 110rm -f $dir/K*.key 111rm -f $dir/K*.private 112ksk1=`$KEYGEN -K $dir -3fk example.com` 113$SETTIME -K $dir -I +9mo -D +1y $ksk1 > /dev/null 2>&1 114ksk2=`$KEYGEN -K $dir -S $ksk1` 115$SETTIME -K $dir -I +7mo $ksk1 > /dev/null 2>&1 116zsk1=`$KEYGEN -K $dir -3 example.com` 117 118# Test 10: ZSK goes inactive before successor is active, but checking KSKs 119dir=10-check-ksk 120rm -f $dir/K*.key 121rm -f $dir/K*.private 122zsk1=`$KEYGEN -K $dir -3 example.com` 123$SETTIME -K $dir -I +9mo -D +1y $zsk1 > /dev/null 2>&1 124zsk2=`$KEYGEN -K $dir -S $zsk1` 125$SETTIME -K $dir -I +7mo $zsk1 > /dev/null 2>&1 126ksk1=`$KEYGEN -K $dir -3fk example.com` 127 128# Test 11: ZSK goes inactive before successor is active, but after cutoff 129dir=11-cutoff 130rm -f $dir/K*.key 131rm -f $dir/K*.private 132zsk1=`$KEYGEN -K $dir -3 example.com` 133$SETTIME -K $dir -I +18mo -D +2y $zsk1 > /dev/null 2>&1 134zsk2=`$KEYGEN -K $dir -S $zsk1` 135$SETTIME -K $dir -I +16mo $zsk1 > /dev/null 2>&1 136ksk1=`$KEYGEN -K $dir -3fk example.com` 137