2017-06-13 00:38:19 -07:00
|
|
|
#!/bin/sh
|
|
|
|
#
|
2017-06-13 23:45:34 +00:00
|
|
|
# Copyright (C) 2017 Internet Systems Consortium, Inc. ("ISC")
|
2017-06-13 00:38:19 -07:00
|
|
|
#
|
|
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
|
|
|
|
SYSTEMTESTTOP=..
|
|
|
|
. $SYSTEMTESTTOP/conf.sh
|
|
|
|
|
|
|
|
status=0
|
|
|
|
|
|
|
|
checkhash() {
|
|
|
|
name=$1
|
|
|
|
hash=$2
|
|
|
|
echo "I:checking nsec3hash $name"
|
|
|
|
out=`$NSEC3HASH $salt $algo $iters $1`
|
|
|
|
case $? in
|
|
|
|
0) : ok ;;
|
|
|
|
*) echo "I:failed $cmd"
|
|
|
|
status=`expr $status + 1`
|
|
|
|
continue ;;
|
|
|
|
esac
|
|
|
|
case $out in
|
|
|
|
*$hash*) : ok ;;
|
|
|
|
*) echo "I:expect $hash"
|
|
|
|
echo "I:output $out"
|
|
|
|
echo "I:failed"
|
|
|
|
status=`expr $status + 1` ;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
echo "I:checking nsec3hash -r $name"
|
|
|
|
out=`$NSEC3HASH -r $algo $flags $iters $salt $name`
|
|
|
|
case $? in
|
|
|
|
0) : ok ;;
|
|
|
|
*) echo "I:failed $cmd"
|
|
|
|
status=`expr $status + 1`
|
|
|
|
continue ;;
|
|
|
|
esac
|
|
|
|
case $out in
|
|
|
|
*$hash*) : ok ;;
|
|
|
|
*) echo "I:expect $hash"
|
|
|
|
echo "I:output $out"
|
|
|
|
echo "I:failed"
|
|
|
|
status=`expr $status + 1` ;;
|
|
|
|
esac
|
|
|
|
}
|
|
|
|
|
|
|
|
# test cases taken from RFC 5155 appendix A
|
|
|
|
algo=1 flags=0 iters=12 salt="aabbccdd"
|
|
|
|
for testcase in \
|
|
|
|
"*.w.example R53BQ7CC2UVMUBFU5OCMM6PERS9TK9EN" \
|
|
|
|
"2t7b4g4vsa5smi47k61mv5bv1a22bojr.example KOHAR7MBB8DC2CE8A9QVL8HON4K53UHI" \
|
|
|
|
"a.example 35MTHGPGCU1QG68FAB165KLNSNK3DPVL" \
|
|
|
|
"ai.example GJEQE526PLBF1G8MKLP59ENFD789NJGI" \
|
|
|
|
"example 0P9MHAVEQVM6T7VBL5LOP2U3T2RP3TOM" \
|
|
|
|
"ns1.example 2T7B4G4VSA5SMI47K61MV5BV1A22BOJR" \
|
|
|
|
"ns2.example Q04JKCEVQVMU85R014C7DKBA38O0JI5R" \
|
|
|
|
"w.example K8UDEMVP1J2F7EG6JEBPS17VP3N8I58H" \
|
|
|
|
"x.w.example B4UM86EGHHDS6NEA196SMVMLO4ORS995" \
|
|
|
|
"x.y.w.example 2VPTU5TIMAMQTTGL4LUU9KG21E0AOR3S" \
|
|
|
|
"xx.example T644EBQK9BIBCNA874GIVR6JOJ62MLHV" \
|
|
|
|
"y.w.example JI6NEOAEPV8B5O6K4EV33ABHA8HT9FGC"; do
|
|
|
|
checkhash $testcase
|
|
|
|
done
|
|
|
|
|
|
|
|
echo "I:exit status: $status"
|
|
|
|
[ $status -eq 0 ] || exit 1
|