]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
System tests for tools and unsupported algorithms
authorMatthijs Mekking <matthijs@isc.org>
Mon, 14 Jan 2019 13:53:27 +0000 (14:53 +0100)
committerMatthijs Mekking <matthijs@isc.org>
Thu, 18 Apr 2019 13:12:04 +0000 (15:12 +0200)
(cherry picked from commit dfcf9bb0edc8d0f75e01cd643dbba176066e478e)

bin/tests/system/dnssec/clean.sh
bin/tests/system/dnssec/tests.sh

index 9ca3f2c00364ab56f2a92d677152a3cfc3c2992a..fa0abe3c982eebc823e2a9ead0c390876de00249 100644 (file)
@@ -26,6 +26,7 @@ rm -f ./delve.out*
 rm -f ./dig.out.*
 rm -f ./dsfromkey.out.*
 rm -f ./keygen.err
+rm -f ./dnssectools.out*
 rm -f ./named.secroots.test*
 rm -f ./nosign.before
 rm -f ./ns*/*.nta
index 67d66fa5ec6fee8bf8fa62add0805a1c9f6a08df..73694f00729199ad75fe8e46b4d995c5a7719723 100644 (file)
@@ -1414,6 +1414,41 @@ get_rsasha1_key_ids_from_sigs() {
        ' signer/example.db.signed | sort -u
 }
 
+echo_i "checking that a key using an unsupported algorithm cannot be generated ($n)"
+ret=0
+zone=example
+$KEYGEN -a 255 example > dnssectools.out.test$n 2>&1 && ret=0
+grep "unsupported algorithm: 255" dnssectools.out.test$n || ret=1
+n=$((n+1))
+test "$ret" -eq 0 || echo_i "failed"
+status=$((status+ret))
+
+echo_i "checking that a DS record cannot be generated for a key using an unsupported algorithm ($n)"
+ret=0
+zone=example
+# Fake an unsupported algorithm key
+unsupportedkey=$("$KEYGEN" -q -a "$DEFAULT_ALGORITHM" -b "$DEFAULT_BITS" -n zone "$zone")
+awk '$3 == "DNSKEY" { $6 = 255; print } { print }' ${unsupportedkey}.key > ${unsupportedkey}.tmp
+mv ${unsupportedkey}.tmp ${unsupportedkey}.key
+$DSFROMKEY ${unsupportedkey} > dnssectools.out.test$n 2>&1 && ret=0
+grep "algorithm is unsupported" dnssectools.out.test$n || ret=1
+n=$((n+1))
+test "$ret" -eq 0 || echo_i "failed"
+status=$((status+ret))
+
+echo_i "checking that a zone cannot be signed with a key using an unsupported algorithm ($n)"
+ret=0
+cp ${unsupportedkey}.* signer/
+(
+cd signer || exit 1
+cat example.db.in "${unsupportedkey}.key" > example.db
+$SIGNER -o example example.db ${unsupportedkey} > ../dnssectools.out.test$n 2>&1 && ret=0
+) && ret=0
+grep "algorithm is unsupported" dnssectools.out.test$n || ret=1
+n=$((n+1))
+test "$ret" -eq 0 || echo_i "failed"
+status=$((status+ret))
+
 echo_i "checking that we can sign a zone with out-of-zone records ($n)"
 ret=0
 zone=example