xref: /minix3/external/bsd/bind/dist/bin/tests/system/tkey/tests.sh (revision 00b67f09dd46474d133c95011a48590a8e8f94c7)
1*00b67f09SDavid van Moolenbroek#!/bin/sh
2*00b67f09SDavid van Moolenbroek#
3*00b67f09SDavid van Moolenbroek# Copyright (C) 2004, 2007, 2009, 2011-2014  Internet Systems Consortium, Inc. ("ISC")
4*00b67f09SDavid van Moolenbroek# Copyright (C) 2001  Internet Software Consortium.
5*00b67f09SDavid van Moolenbroek#
6*00b67f09SDavid van Moolenbroek# Permission to use, copy, modify, and/or distribute this software for any
7*00b67f09SDavid van Moolenbroek# purpose with or without fee is hereby granted, provided that the above
8*00b67f09SDavid van Moolenbroek# copyright notice and this permission notice appear in all copies.
9*00b67f09SDavid van Moolenbroek#
10*00b67f09SDavid van Moolenbroek# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
11*00b67f09SDavid van Moolenbroek# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
12*00b67f09SDavid van Moolenbroek# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
13*00b67f09SDavid van Moolenbroek# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
14*00b67f09SDavid van Moolenbroek# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
15*00b67f09SDavid van Moolenbroek# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16*00b67f09SDavid van Moolenbroek# PERFORMANCE OF THIS SOFTWARE.
17*00b67f09SDavid van Moolenbroek
18*00b67f09SDavid van Moolenbroek# Id: tests.sh,v 1.11 2011/11/03 23:46:26 tbox Exp
19*00b67f09SDavid van Moolenbroek
20*00b67f09SDavid van MoolenbroekSYSTEMTESTTOP=..
21*00b67f09SDavid van Moolenbroek. $SYSTEMTESTTOP/conf.sh
22*00b67f09SDavid van Moolenbroek
23*00b67f09SDavid van MoolenbroekDIGOPTS="@10.53.0.1 -p 5300"
24*00b67f09SDavid van Moolenbroek
25*00b67f09SDavid van Moolenbroekstatus=0
26*00b67f09SDavid van Moolenbroek
27*00b67f09SDavid van Moolenbroekecho "I:generating new DH key"
28*00b67f09SDavid van Moolenbroekret=0
29*00b67f09SDavid van Moolenbroekdhkeyname=`$KEYGEN -T KEY -a DH -b 768 -n host -r $RANDFILE client` || ret=1
30*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then
31*00b67f09SDavid van Moolenbroek	echo "I:failed"
32*00b67f09SDavid van Moolenbroek	status=`expr $status + $ret`
33*00b67f09SDavid van Moolenbroek	echo "I:exit status: $status"
34*00b67f09SDavid van Moolenbroek	exit $status
35*00b67f09SDavid van Moolenbroekfi
36*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret`
37*00b67f09SDavid van Moolenbroek
38*00b67f09SDavid van Moolenbroekfor owner in . foo.example.
39*00b67f09SDavid van Moolenbroekdo
40*00b67f09SDavid van Moolenbroek	echo "I:creating new key using owner name \"$owner\""
41*00b67f09SDavid van Moolenbroek	ret=0
42*00b67f09SDavid van Moolenbroek	keyname=`./keycreate $dhkeyname $owner` || ret=1
43*00b67f09SDavid van Moolenbroek	if [ $ret != 0 ]; then
44*00b67f09SDavid van Moolenbroek		echo "I:failed"
45*00b67f09SDavid van Moolenbroek		status=`expr $status + $ret`
46*00b67f09SDavid van Moolenbroek		echo "I:exit status: $status"
47*00b67f09SDavid van Moolenbroek		exit $status
48*00b67f09SDavid van Moolenbroek	fi
49*00b67f09SDavid van Moolenbroek	status=`expr $status + $ret`
50*00b67f09SDavid van Moolenbroek
51*00b67f09SDavid van Moolenbroek	echo "I:checking the new key"
52*00b67f09SDavid van Moolenbroek	ret=0
53*00b67f09SDavid van Moolenbroek	$DIG $DIGOPTS . ns -k $keyname > dig.out.1 || ret=1
54*00b67f09SDavid van Moolenbroek	grep "status: NOERROR" dig.out.1 > /dev/null || ret=1
55*00b67f09SDavid van Moolenbroek	grep "TSIG.*hmac-md5.*NOERROR" dig.out.1 > /dev/null || ret=1
56*00b67f09SDavid van Moolenbroek	grep "Some TSIG could not be validated" dig.out.1 > /dev/null && ret=1
57*00b67f09SDavid van Moolenbroek	if [ $ret != 0 ]; then
58*00b67f09SDavid van Moolenbroek		echo "I:failed"
59*00b67f09SDavid van Moolenbroek	fi
60*00b67f09SDavid van Moolenbroek	status=`expr $status + $ret`
61*00b67f09SDavid van Moolenbroek
62*00b67f09SDavid van Moolenbroek	echo "I:deleting new key"
63*00b67f09SDavid van Moolenbroek	ret=0
64*00b67f09SDavid van Moolenbroek	./keydelete $keyname || ret=1
65*00b67f09SDavid van Moolenbroek	if [ $ret != 0 ]; then
66*00b67f09SDavid van Moolenbroek		echo "I:failed"
67*00b67f09SDavid van Moolenbroek	fi
68*00b67f09SDavid van Moolenbroek	status=`expr $status + $ret`
69*00b67f09SDavid van Moolenbroek
70*00b67f09SDavid van Moolenbroek	echo "I:checking that new key has been deleted"
71*00b67f09SDavid van Moolenbroek	ret=0
72*00b67f09SDavid van Moolenbroek	$DIG $DIGOPTS . ns -k $keyname > dig.out.2 || ret=1
73*00b67f09SDavid van Moolenbroek	grep "status: NOERROR" dig.out.2 > /dev/null && ret=1
74*00b67f09SDavid van Moolenbroek	grep "TSIG.*hmac-md5.*NOERROR" dig.out.2 > /dev/null && ret=1
75*00b67f09SDavid van Moolenbroek	grep "Some TSIG could not be validated" dig.out.2 > /dev/null || ret=1
76*00b67f09SDavid van Moolenbroek	if [ $ret != 0 ]; then
77*00b67f09SDavid van Moolenbroek		echo "I:failed"
78*00b67f09SDavid van Moolenbroek	fi
79*00b67f09SDavid van Moolenbroek	status=`expr $status + $ret`
80*00b67f09SDavid van Moolenbroekdone
81*00b67f09SDavid van Moolenbroek
82*00b67f09SDavid van Moolenbroekecho "I:creating new key using owner name bar.example."
83*00b67f09SDavid van Moolenbroekret=0
84*00b67f09SDavid van Moolenbroekkeyname=`./keycreate $dhkeyname bar.example.` || ret=1
85*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then
86*00b67f09SDavid van Moolenbroek        echo "I:failed"
87*00b67f09SDavid van Moolenbroek	status=`expr $status + $ret`
88*00b67f09SDavid van Moolenbroek        echo "I:exit status: $status"
89*00b67f09SDavid van Moolenbroek        exit $status
90*00b67f09SDavid van Moolenbroekfi
91*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret`
92*00b67f09SDavid van Moolenbroek
93*00b67f09SDavid van Moolenbroekecho "I:checking the key with 'rndc tsig-list'"
94*00b67f09SDavid van Moolenbroekret=0
95*00b67f09SDavid van Moolenbroek$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 tsig-list > rndc.out.1
96*00b67f09SDavid van Moolenbroekgrep "key \"bar.example.server" rndc.out.1 > /dev/null || ret=1
97*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then
98*00b67f09SDavid van Moolenbroek        echo "I:failed"
99*00b67f09SDavid van Moolenbroekfi
100*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret`
101*00b67f09SDavid van Moolenbroek
102*00b67f09SDavid van Moolenbroekecho "I:using key in a request"
103*00b67f09SDavid van Moolenbroekret=0
104*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS -k $keyname txt.example txt > dig.out.3 || ret=1
105*00b67f09SDavid van Moolenbroekgrep "status: NOERROR" dig.out.3 > /dev/null || ret=1
106*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then
107*00b67f09SDavid van Moolenbroek        echo "I:failed"
108*00b67f09SDavid van Moolenbroekfi
109*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret`
110*00b67f09SDavid van Moolenbroek
111*00b67f09SDavid van Moolenbroekecho "I:deleting the key with 'rndc tsig-delete'"
112*00b67f09SDavid van Moolenbroekret=0
113*00b67f09SDavid van Moolenbroek$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 tsig-delete bar.example.server > /dev/null || ret=1
114*00b67f09SDavid van Moolenbroek$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 tsig-list > rndc.out.2
115*00b67f09SDavid van Moolenbroekgrep "key \"bar.example.server" rndc.out.2 > /dev/null && ret=1
116*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS -k $keyname txt.example txt > dig.out.4 || ret=1
117*00b67f09SDavid van Moolenbroekgrep "TSIG could not be validated" dig.out.4 > /dev/null || ret=1
118*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then
119*00b67f09SDavid van Moolenbroek        echo "I:failed"
120*00b67f09SDavid van Moolenbroekfi
121*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret`
122*00b67f09SDavid van Moolenbroek
123*00b67f09SDavid van Moolenbroekecho "I:recreating the bar.example. key"
124*00b67f09SDavid van Moolenbroekret=0
125*00b67f09SDavid van Moolenbroekkeyname=`./keycreate $dhkeyname bar.example.` || ret=1
126*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then
127*00b67f09SDavid van Moolenbroek        echo "I:failed"
128*00b67f09SDavid van Moolenbroek	status=`expr $status + $ret`
129*00b67f09SDavid van Moolenbroek        echo "I:exit status: $status"
130*00b67f09SDavid van Moolenbroek        exit $status
131*00b67f09SDavid van Moolenbroekfi
132*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret`
133*00b67f09SDavid van Moolenbroek
134*00b67f09SDavid van Moolenbroekecho "I:checking the new key with 'rndc tsig-list'"
135*00b67f09SDavid van Moolenbroekret=0
136*00b67f09SDavid van Moolenbroek$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 tsig-list > rndc.out.3
137*00b67f09SDavid van Moolenbroekgrep "key \"bar.example.server" rndc.out.3 > /dev/null || ret=1
138*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then
139*00b67f09SDavid van Moolenbroek        echo "I:failed"
140*00b67f09SDavid van Moolenbroekfi
141*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret`
142*00b67f09SDavid van Moolenbroek
143*00b67f09SDavid van Moolenbroekecho "I:using the new key in a request"
144*00b67f09SDavid van Moolenbroekret=0
145*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS -k $keyname txt.example txt > dig.out.5 || ret=1
146*00b67f09SDavid van Moolenbroekgrep "status: NOERROR" dig.out.5 > /dev/null || ret=1
147*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then
148*00b67f09SDavid van Moolenbroek        echo "I:failed"
149*00b67f09SDavid van Moolenbroekfi
150*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret`
151*00b67f09SDavid van Moolenbroek
152*00b67f09SDavid van Moolenbroekecho "I:exit status: $status"
153*00b67f09SDavid van Moolenbroekexit $status
154