1*00b67f09SDavid van Moolenbroek#!/bin/sh 2*00b67f09SDavid van Moolenbroek# 3*00b67f09SDavid van Moolenbroek# Copyright (C) 2005-2007, 2011, 2012 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 Moolenbroek# Id: tests.sh,v 1.7 2011/11/06 23:46:40 tbox Exp 18*00b67f09SDavid van Moolenbroek 19*00b67f09SDavid van MoolenbroekSYSTEMTESTTOP=.. 20*00b67f09SDavid van Moolenbroek. $SYSTEMTESTTOP/conf.sh 21*00b67f09SDavid van Moolenbroek 22*00b67f09SDavid van Moolenbroek# 23*00b67f09SDavid van Moolenbroek# Shared secrets. 24*00b67f09SDavid van Moolenbroek# 25*00b67f09SDavid van Moolenbroekmd5="97rnFx24Tfna4mHPfgnerA==" 26*00b67f09SDavid van Moolenbroeksha1="FrSt77yPTFx6hTs4i2tKLB9LmE0=" 27*00b67f09SDavid van Moolenbroeksha224="hXfwwwiag2QGqblopofai9NuW28q/1rH4CaTnA==" 28*00b67f09SDavid van Moolenbroeksha256="R16NojROxtxH/xbDl//ehDsHm5DjWTQ2YXV+hGC2iBY=" 29*00b67f09SDavid van Moolenbroeksha384="OaDdoAk2LAcLtYeUnsT7A9XHjsb6ZEma7OCvUpMraQIJX6HetGrlKmF7yglO1G2h" 30*00b67f09SDavid van Moolenbroeksha512="jI/Pa4qRu96t76Pns5Z/Ndxbn3QCkwcxLOgt9vgvnJw5wqTRvNyk3FtD6yIMd1dWVlqZ+Y4fe6Uasc0ckctEmg==" 31*00b67f09SDavid van Moolenbroek 32*00b67f09SDavid van Moolenbroekstatus=0 33*00b67f09SDavid van Moolenbroek 34*00b67f09SDavid van Moolenbroekecho "I:fetching using hmac-md5 (old form)" 35*00b67f09SDavid van Moolenbroekret=0 36*00b67f09SDavid van Moolenbroek$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\ 37*00b67f09SDavid van Moolenbroek -y "md5:$md5" @10.53.0.1 soa -p 5300 > dig.out.md5.old || ret=1 38*00b67f09SDavid van Moolenbroekgrep -i "md5.*TSIG.*NOERROR" dig.out.md5.old > /dev/null || ret=1 39*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 40*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 41*00b67f09SDavid van Moolenbroekfi 42*00b67f09SDavid van Moolenbroek 43*00b67f09SDavid van Moolenbroekecho "I:fetching using hmac-md5 (new form)" 44*00b67f09SDavid van Moolenbroekret=0 45*00b67f09SDavid van Moolenbroek$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\ 46*00b67f09SDavid van Moolenbroek -y "hmac-md5:md5:$md5" @10.53.0.1 soa -p 5300 > dig.out.md5.new || ret=1 47*00b67f09SDavid van Moolenbroekgrep -i "md5.*TSIG.*NOERROR" dig.out.md5.new > /dev/null || ret=1 48*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 49*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 50*00b67f09SDavid van Moolenbroekfi 51*00b67f09SDavid van Moolenbroek 52*00b67f09SDavid van Moolenbroekecho "I:fetching using hmac-sha1" 53*00b67f09SDavid van Moolenbroekret=0 54*00b67f09SDavid van Moolenbroek$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\ 55*00b67f09SDavid van Moolenbroek -y "hmac-sha1:sha1:$sha1" @10.53.0.1 soa -p 5300 > dig.out.sha1 || ret=1 56*00b67f09SDavid van Moolenbroekgrep -i "sha1.*TSIG.*NOERROR" dig.out.sha1 > /dev/null || ret=1 57*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 58*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 59*00b67f09SDavid van Moolenbroekfi 60*00b67f09SDavid van Moolenbroek 61*00b67f09SDavid van Moolenbroekecho "I:fetching using hmac-sha224" 62*00b67f09SDavid van Moolenbroekret=0 63*00b67f09SDavid van Moolenbroek$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\ 64*00b67f09SDavid van Moolenbroek -y "hmac-sha224:sha224:$sha224" @10.53.0.1 soa -p 5300 > dig.out.sha224 || ret=1 65*00b67f09SDavid van Moolenbroekgrep -i "sha224.*TSIG.*NOERROR" dig.out.sha224 > /dev/null || ret=1 66*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 67*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 68*00b67f09SDavid van Moolenbroekfi 69*00b67f09SDavid van Moolenbroek 70*00b67f09SDavid van Moolenbroekecho "I:fetching using hmac-sha256" 71*00b67f09SDavid van Moolenbroekret=0 72*00b67f09SDavid van Moolenbroek$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\ 73*00b67f09SDavid van Moolenbroek -y "hmac-sha256:sha256:$sha256" @10.53.0.1 soa -p 5300 > dig.out.sha256 || ret=1 74*00b67f09SDavid van Moolenbroekgrep -i "sha256.*TSIG.*NOERROR" dig.out.sha256 > /dev/null || ret=1 75*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 76*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 77*00b67f09SDavid van Moolenbroekfi 78*00b67f09SDavid van Moolenbroek 79*00b67f09SDavid van Moolenbroekecho "I:fetching using hmac-sha384" 80*00b67f09SDavid van Moolenbroekret=0 81*00b67f09SDavid van Moolenbroek$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\ 82*00b67f09SDavid van Moolenbroek -y "hmac-sha384:sha384:$sha384" @10.53.0.1 soa -p 5300 > dig.out.sha384 || ret=1 83*00b67f09SDavid van Moolenbroekgrep -i "sha384.*TSIG.*NOERROR" dig.out.sha384 > /dev/null || ret=1 84*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 85*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 86*00b67f09SDavid van Moolenbroekfi 87*00b67f09SDavid van Moolenbroek 88*00b67f09SDavid van Moolenbroekecho "I:fetching using hmac-sha512" 89*00b67f09SDavid van Moolenbroekret=0 90*00b67f09SDavid van Moolenbroek$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\ 91*00b67f09SDavid van Moolenbroek -y "hmac-sha512:sha512:$sha512" @10.53.0.1 soa -p 5300 > dig.out.sha512 || ret=1 92*00b67f09SDavid van Moolenbroekgrep -i "sha512.*TSIG.*NOERROR" dig.out.sha512 > /dev/null || ret=1 93*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 94*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 95*00b67f09SDavid van Moolenbroekfi 96*00b67f09SDavid van Moolenbroek 97*00b67f09SDavid van Moolenbroek# 98*00b67f09SDavid van Moolenbroek# 99*00b67f09SDavid van Moolenbroek# Truncated TSIG 100*00b67f09SDavid van Moolenbroek# 101*00b67f09SDavid van Moolenbroek# 102*00b67f09SDavid van Moolenbroekecho "I:fetching using hmac-md5 (trunc)" 103*00b67f09SDavid van Moolenbroekret=0 104*00b67f09SDavid van Moolenbroek$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\ 105*00b67f09SDavid van Moolenbroek -y "hmac-md5-80:md5-trunc:$md5" @10.53.0.1 soa -p 5300 > dig.out.md5.trunc || ret=1 106*00b67f09SDavid van Moolenbroekgrep -i "md5-trunc.*TSIG.*NOERROR" dig.out.md5.trunc > /dev/null || ret=1 107*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 108*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 109*00b67f09SDavid van Moolenbroekfi 110*00b67f09SDavid van Moolenbroek 111*00b67f09SDavid van Moolenbroekecho "I:fetching using hmac-sha1 (trunc)" 112*00b67f09SDavid van Moolenbroekret=0 113*00b67f09SDavid van Moolenbroek$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\ 114*00b67f09SDavid van Moolenbroek -y "hmac-sha1-80:sha1-trunc:$sha1" @10.53.0.1 soa -p 5300 > dig.out.sha1.trunc || ret=1 115*00b67f09SDavid van Moolenbroekgrep -i "sha1.*TSIG.*NOERROR" dig.out.sha1.trunc > /dev/null || ret=1 116*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 117*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 118*00b67f09SDavid van Moolenbroekfi 119*00b67f09SDavid van Moolenbroek 120*00b67f09SDavid van Moolenbroekecho "I:fetching using hmac-sha224 (trunc)" 121*00b67f09SDavid van Moolenbroekret=0 122*00b67f09SDavid van Moolenbroek$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\ 123*00b67f09SDavid van Moolenbroek -y "hmac-sha224-112:sha224-trunc:$sha224" @10.53.0.1 soa -p 5300 > dig.out.sha224.trunc || ret=1 124*00b67f09SDavid van Moolenbroekgrep -i "sha224-trunc.*TSIG.*NOERROR" dig.out.sha224.trunc > /dev/null || ret=1 125*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 126*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 127*00b67f09SDavid van Moolenbroekfi 128*00b67f09SDavid van Moolenbroek 129*00b67f09SDavid van Moolenbroekecho "I:fetching using hmac-sha256 (trunc)" 130*00b67f09SDavid van Moolenbroekret=0 131*00b67f09SDavid van Moolenbroek$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\ 132*00b67f09SDavid van Moolenbroek -y "hmac-sha256-128:sha256-trunc:$sha256" @10.53.0.1 soa -p 5300 > dig.out.sha256.trunc || ret=1 133*00b67f09SDavid van Moolenbroekgrep -i "sha256-trunc.*TSIG.*NOERROR" dig.out.sha256.trunc > /dev/null || ret=1 134*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 135*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 136*00b67f09SDavid van Moolenbroekfi 137*00b67f09SDavid van Moolenbroek 138*00b67f09SDavid van Moolenbroekecho "I:fetching using hmac-sha384 (trunc)" 139*00b67f09SDavid van Moolenbroekret=0 140*00b67f09SDavid van Moolenbroek$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\ 141*00b67f09SDavid van Moolenbroek -y "hmac-sha384-192:sha384-trunc:$sha384" @10.53.0.1 soa -p 5300 > dig.out.sha384.trunc || ret=1 142*00b67f09SDavid van Moolenbroekgrep -i "sha384-trunc.*TSIG.*NOERROR" dig.out.sha384.trunc > /dev/null || ret=1 143*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 144*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 145*00b67f09SDavid van Moolenbroekfi 146*00b67f09SDavid van Moolenbroek 147*00b67f09SDavid van Moolenbroekecho "I:fetching using hmac-sha512-256 (trunc)" 148*00b67f09SDavid van Moolenbroekret=0 149*00b67f09SDavid van Moolenbroek$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\ 150*00b67f09SDavid van Moolenbroek -y "hmac-sha512-256:sha512-trunc:$sha512" @10.53.0.1 soa -p 5300 > dig.out.sha512.trunc || ret=1 151*00b67f09SDavid van Moolenbroekgrep -i "sha512-trunc.*TSIG.*NOERROR" dig.out.sha512.trunc > /dev/null || ret=1 152*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 153*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 154*00b67f09SDavid van Moolenbroekfi 155*00b67f09SDavid van Moolenbroek 156*00b67f09SDavid van Moolenbroek 157*00b67f09SDavid van Moolenbroek# 158*00b67f09SDavid van Moolenbroek# 159*00b67f09SDavid van Moolenbroek# Check for bad truncation. 160*00b67f09SDavid van Moolenbroek# 161*00b67f09SDavid van Moolenbroek# 162*00b67f09SDavid van Moolenbroekecho "I:fetching using hmac-md5-80 (BADTRUNC)" 163*00b67f09SDavid van Moolenbroekret=0 164*00b67f09SDavid van Moolenbroek$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\ 165*00b67f09SDavid van Moolenbroek -y "hmac-md5-80:md5:$md5" @10.53.0.1 soa -p 5300 > dig.out.md5-80 || ret=1 166*00b67f09SDavid van Moolenbroekgrep -i "md5.*TSIG.*BADTRUNC" dig.out.md5-80 > /dev/null || ret=1 167*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 168*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 169*00b67f09SDavid van Moolenbroekfi 170*00b67f09SDavid van Moolenbroek 171*00b67f09SDavid van Moolenbroekecho "I:fetching using hmac-sha1-80 (BADTRUNC)" 172*00b67f09SDavid van Moolenbroekret=0 173*00b67f09SDavid van Moolenbroek$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\ 174*00b67f09SDavid van Moolenbroek -y "hmac-sha1-80:sha1:$sha1" @10.53.0.1 soa -p 5300 > dig.out.sha1-80 || ret=1 175*00b67f09SDavid van Moolenbroekgrep -i "sha1.*TSIG.*BADTRUNC" dig.out.sha1-80 > /dev/null || ret=1 176*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 177*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 178*00b67f09SDavid van Moolenbroekfi 179*00b67f09SDavid van Moolenbroek 180*00b67f09SDavid van Moolenbroekecho "I:fetching using hmac-sha224-112 (BADTRUNC)" 181*00b67f09SDavid van Moolenbroekret=0 182*00b67f09SDavid van Moolenbroek$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\ 183*00b67f09SDavid van Moolenbroek -y "hmac-sha224-112:sha224:$sha224" @10.53.0.1 soa -p 5300 > dig.out.sha224-112 || ret=1 184*00b67f09SDavid van Moolenbroekgrep -i "sha224.*TSIG.*BADTRUNC" dig.out.sha224-112 > /dev/null || ret=1 185*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 186*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 187*00b67f09SDavid van Moolenbroekfi 188*00b67f09SDavid van Moolenbroek 189*00b67f09SDavid van Moolenbroekecho "I:fetching using hmac-sha256-128 (BADTRUNC)" 190*00b67f09SDavid van Moolenbroekret=0 191*00b67f09SDavid van Moolenbroek$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\ 192*00b67f09SDavid van Moolenbroek -y "hmac-sha256-128:sha256:$sha256" @10.53.0.1 soa -p 5300 > dig.out.sha256-128 || ret=1 193*00b67f09SDavid van Moolenbroekgrep -i "sha256.*TSIG.*BADTRUNC" dig.out.sha256-128 > /dev/null || ret=1 194*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 195*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 196*00b67f09SDavid van Moolenbroekfi 197*00b67f09SDavid van Moolenbroek 198*00b67f09SDavid van Moolenbroekecho "I:fetching using hmac-sha384-192 (BADTRUNC)" 199*00b67f09SDavid van Moolenbroekret=0 200*00b67f09SDavid van Moolenbroek$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\ 201*00b67f09SDavid van Moolenbroek -y "hmac-sha384-192:sha384:$sha384" @10.53.0.1 soa -p 5300 > dig.out.sha384-192 || ret=1 202*00b67f09SDavid van Moolenbroekgrep -i "sha384.*TSIG.*BADTRUNC" dig.out.sha384-192 > /dev/null || ret=1 203*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 204*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 205*00b67f09SDavid van Moolenbroekfi 206*00b67f09SDavid van Moolenbroek 207*00b67f09SDavid van Moolenbroekecho "I:fetching using hmac-sha512-256 (BADTRUNC)" 208*00b67f09SDavid van Moolenbroekret=0 209*00b67f09SDavid van Moolenbroek$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\ 210*00b67f09SDavid van Moolenbroek -y "hmac-sha512-256:sha512:$sha512" @10.53.0.1 soa -p 5300 > dig.out.sha512-256 || ret=1 211*00b67f09SDavid van Moolenbroekgrep -i "sha512.*TSIG.*BADTRUNC" dig.out.sha512-256 > /dev/null || ret=1 212*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 213*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 214*00b67f09SDavid van Moolenbroekfi 215*00b67f09SDavid van Moolenbroek 216*00b67f09SDavid van Moolenbroekecho "I:attempting fetch with bad tsig algorithm" 217*00b67f09SDavid van Moolenbroekret=0 218*00b67f09SDavid van Moolenbroek$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\ 219*00b67f09SDavid van Moolenbroek -y "badalgo:invalid:$sha512" @10.53.0.1 soa -p 5300 > dig.out.badalgo 2>&1 || ret=1 220*00b67f09SDavid van Moolenbroekgrep -i "Couldn't create key invalid: algorithm is unsupported" dig.out.badalgo > /dev/null || ret=1 221*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 222*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 223*00b67f09SDavid van Moolenbroekfi 224*00b67f09SDavid van Moolenbroek 225*00b67f09SDavid van Moolenbroekecho "I:checking both OPT and TSIG records are returned when TC=1" 226*00b67f09SDavid van Moolenbroekret=0 227*00b67f09SDavid van Moolenbroek$DIG +ignore +bufsize=512 large.example.nil \ 228*00b67f09SDavid van Moolenbroek -y "hmac-sha1:sha1:$sha1" @10.53.0.1 txt -p 5300 > dig.out.large 2>&1 || ret=1 229*00b67f09SDavid van Moolenbroekgrep "flags:.* tc[ ;]" dig.out.large > /dev/null || ret=1 230*00b67f09SDavid van Moolenbroekgrep "status: NOERROR" dig.out.large > /dev/null || ret=1 231*00b67f09SDavid van Moolenbroekgrep "EDNS:" dig.out.large > /dev/null || ret=1 232*00b67f09SDavid van Moolenbroekgrep -i "sha1.*TSIG.*NOERROR" dig.out.sha1 > /dev/null || ret=1 233*00b67f09SDavid van Moolenbroekif [ $ret -eq 1 ] ; then 234*00b67f09SDavid van Moolenbroek echo "I: failed"; status=1 235*00b67f09SDavid van Moolenbroekfi 236*00b67f09SDavid van Moolenbroekexit $status 237*00b67f09SDavid van Moolenbroek 238*00b67f09SDavid van Moolenbroek 239