Annotation of src/external/mpl/bind/dist/bin/tests/system/cds/setup.sh, Revision 1.1.1.1.2.3
1.1.1.1.2.2 pgoyette 1: #!/bin/sh -e
2: #
3: # Copyright (C) Internet Systems Consortium, Inc. ("ISC")
4: #
5: # This Source Code Form is subject to the terms of the Mozilla Public
6: # License, v. 2.0. If a copy of the MPL was not distributed with this
7: # file, You can obtain one at http://mozilla.org/MPL/2.0/.
8: #
9: # See the COPYRIGHT file distributed with this work for additional
10: # information regarding copyright ownership.
11:
12: set -eu
13:
14: SYSTEMTESTTOP=..
15: . $SYSTEMTESTTOP/conf.sh
16:
17: $SHELL clean.sh
18:
19: touch empty
20:
21: Z=cds.test
22:
1.1.1.1.2.3! pgoyette 23: keyz=`$KEYGEN -q -a RSASHA256 $Z`
! 24: key1=`$KEYGEN -q -a RSASHA256 -f KSK $Z`
! 25: key2=`$KEYGEN -q -a RSASHA256 -f KSK $Z`
! 26:
! 27: idz=`echo $keyz | sed 's/.*+0*//'`
! 28: id1=`echo $key1 | sed 's/.*+0*//'`
! 29: id2=`echo $key2 | sed 's/.*+0*//'`
1.1.1.1.2.2 pgoyette 30:
31: cat <<EOF >vars.sh
32: Z=$Z
33: key1=$key1
34: key2=$key2
35: idz=$idz
36: id1=$id1
37: id2=$id2
38: EOF
39:
40: tac() {
41: perl -e 'print reverse <>' "$@"
42: }
43:
44: convert() {
1.1.1.1.2.3! pgoyette 45: key=$1
! 46: n=$2
1.1.1.1.2.2 pgoyette 47: $DSFROMKEY $key >DS.$n
48: grep ' 8 1 ' DS.$n >DS.$n-1
49: grep ' 8 2 ' DS.$n >DS.$n-2
50: sed 's/ IN DS / IN CDS /' <DS.$n >>CDS.$n
51: sed 's/ IN DNSKEY / IN CDNSKEY /' <$key.key >CDNSKEY.$n
52: sed 's/ IN DS / 3600 IN DS /' <DS.$n >DS.ttl$n
53: sed 's/ IN DS / 7200 IN DS /' <DS.$n >DS.ttlong$n
54: tac <DS.$n >DS.rev$n
55: }
56: convert $key1 1
57: convert $key2 2
58:
59: # consistent order wrt IDs
60: sort DS.1 DS.2 >DS.both
61:
62: cp DS.1 DS.inplace
63: $PERL -we 'utime time, time - 7200, "DS.inplace" or die'
64:
65: mangle="$PERL mangle.pl"
66:
67: $mangle " IN DS $id1 8 1 " <DS.1 >DS.broke1
68: $mangle " IN DS $id1 8 2 " <DS.1 >DS.broke2
69: $mangle " IN DS $id1 8 [12] " <DS.1 >DS.broke12
70:
71: sed 's/^/update add /
72: $a\
73: send
74: ' <DS.2 >UP.add2
75:
76: sed 's/^/update del /
77: $a\
78: send
79: ' <DS.1 >UP.del1
80:
81: cat UP.add2 UP.del1 | sed 3d >UP.swap
82:
83: sed 's/ add \(.*\) IN DS / add \1 3600 IN DS /' <UP.swap >UP.swapttl
84:
85: sign() {
86: cat >db.$1
1.1.1.1.2.3! pgoyette 87: $SIGNER >/dev/null 2>&1 \
1.1.1.1.2.2 pgoyette 88: -S -O full -o $Z -f sig.$1 db.$1
89: }
90:
91: sign null <<EOF
92: \$TTL 1h
93: @ SOA localhost. root.localhost. (
94: 1 ; serial
95: 1h ; refresh
96: 1h ; retry
97: 1w ; expiry
98: 1h ; minimum
99: )
100: ;
101: NS localhost.
102: ;
103: EOF
104:
105: cat sig.null CDS.1 >brk.unsigned-cds
106:
107: cat db.null CDS.1 | sign cds.1
108: cat db.null CDS.2 | sign cds.2
109: cat db.null CDS.1 CDS.2 | sign cds.both
110:
111: tac <sig.cds.1 >sig.cds.rev1
112:
113: cat db.null CDNSKEY.2 | sign cdnskey.2
114: cat db.null CDS.2 CDNSKEY.2 | sign cds.cdnskey.2
115:
116: $mangle '\s+IN\s+RRSIG\s+CDS .* '$idz' '$Z'\. ' \
117: <sig.cds.1 >brk.rrsig.cds.zsk
118: $mangle '\s+IN\s+RRSIG\s+CDS .* '$id1' '$Z'\. ' \
119: <sig.cds.1 >brk.rrsig.cds.ksk
120:
121: $mangle " IN CDS $id1 8 1 " <db.cds.1 |
122: sign cds-mangled
123:
1.1.1.1.2.3! pgoyette 124: bad=`$PERL -le "print ($id1 ^ 255);"`
! 125: sed 's/IN CDS '$id1' 8 1 /IN CDS '$bad' 8 1 /' <db.cds.1 |
1.1.1.1.2.2 pgoyette 126: sign bad-digests
127:
1.1.1.1.2.3! pgoyette 128: sed '/IN CDS '$id1' 8 /p;s//IN CDS '$bad' 13 /' <db.cds.1 |
1.1.1.1.2.2 pgoyette 129: sign bad-algos
130:
131: rm -f dsset-*
CVSweb <webmaster@jp.NetBSD.org>