From: Petr Špaček Date: Fri, 17 May 2024 10:23:05 +0000 (+0200) Subject: Adapt the tsiggss test to the SIG(0) removal X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a2f3590ceb8b5c0efa7a1e08414aa690edc5acbb;p=thirdparty%2Fbind9.git Adapt the tsiggss test to the SIG(0) removal Test that SIG(0) signer is NOT sent to the external socket for authorization. It MUST NOT be considered a valid signature by any chance. Also check that the signer's name does not appear in authsock.pl output. (cherry picked from commit cf8838085905171fbc00747eb210e8b8284ca0e1) --- diff --git a/bin/tests/system/tsiggss/authsock.pl b/bin/tests/system/tsiggss/authsock.pl index 949c32da1d2..0b231ee3bc6 100644 --- a/bin/tests/system/tsiggss/authsock.pl +++ b/bin/tests/system/tsiggss/authsock.pl @@ -57,6 +57,7 @@ if ($timeout != 0) { } while (my $client = $server->accept()) { + printf("accept()\n"); $client->recv(my $buf, 8, 0); my ($version, $req_len) = unpack('N N', $buf); diff --git a/bin/tests/system/tsiggss/clean.sh b/bin/tests/system/tsiggss/clean.sh index d9fae68ea15..67b8c3e6911 100644 --- a/bin/tests/system/tsiggss/clean.sh +++ b/bin/tests/system/tsiggss/clean.sh @@ -19,7 +19,7 @@ rm -f ns1/_default.tsigkeys rm -f */named.memstats rm -f */named.conf rm -f */named.run -rm -f authsock.pid +rm -f authsock.log authsock.pid rm -f ns1/core rm -f nsupdate.out* rm -f ns*/named.lock diff --git a/bin/tests/system/tsiggss/tests.sh b/bin/tests/system/tsiggss/tests.sh index 456ce61224b..9b55e826539 100644 --- a/bin/tests/system/tsiggss/tests.sh +++ b/bin/tests/system/tsiggss/tests.sh @@ -116,7 +116,7 @@ status=$((status+ret)) echo_i "testing external update policy (CNAME) with auth sock ($n)" ret=0 -$PERL ./authsock.pl --type=CNAME --path=ns1/auth.sock --pidfile=authsock.pid --timeout=120 > /dev/null 2>&1 & +$PERL ./authsock.pl --type=CNAME --path=ns1/auth.sock --pidfile=authsock.pid --timeout=120 >authsock.log 2>&1 & sleep 1 test_update $n testcname.example.nil. CNAME "86400 CNAME testdenied.example.nil" "testdenied" || ret=1 n=$((n+1)) @@ -130,17 +130,19 @@ n=$((n+1)) if [ "$ret" -ne 0 ]; then echo_i "failed"; fi status=$((status+ret)) -echo_i "testing external policy with SIG(0) key ($n)" +echo_i "testing external policy with unsupported SIG(0) key ($n)" ret=0 -$NSUPDATE -R $RANDFILE -k ns1/Kkey.example.nil.*.private < /dev/null 2>&1 || ret=1 +$NSUPDATE -R $RANDFILE -d -k ns1/Kkey.example.nil.*.private <nsupdate.out${n} 2>&1 || true +debug server 10.53.0.1 ${PORT} zone example.nil update add fred.example.nil 120 cname foo.bar. send END output=`$DIG $DIGOPTS +short cname fred.example.nil.` -[ -n "$output" ] || ret=1 -[ $ret -eq 0 ] || echo_i "failed" +# update must have failed - SIG(0) signer is not supported +[ -n "$output" ] && ret=1 +grep -F "signer=key.example.nil" authsock.log >/dev/null && ret=1 n=$((n+1)) if [ "$ret" -ne 0 ]; then echo_i "failed"; fi status=$((status+ret))