]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Adapt the tsiggss test to the SIG(0) removal
authorPetr Špaček <pspacek@isc.org>
Fri, 17 May 2024 10:23:05 +0000 (12:23 +0200)
committerNicki Křížek <nicki@isc.org>
Mon, 10 Jun 2024 17:02:52 +0000 (19:02 +0200)
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.

bin/tests/system/tsiggss/authsock.pl
bin/tests/system/tsiggss/tests.sh

index 103d3b0be273fafeebe286d418e55d54c7462106..972252aa99a5ecde6d205562272830ecf788fc67 100644 (file)
@@ -54,6 +54,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);
 
index c37f32ed39ccf3053aeb2d19259b7774fb008e57..004ad83f94627607d56d60ba8368bec1b95d4ee1 100644 (file)
@@ -117,7 +117,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))
@@ -131,17 +131,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 -k ns1/Kkey.example.nil.*.private <<END >/dev/null 2>&1 || ret=1
+$NSUPDATE -d -k ns1/Kkey.example.nil.*.private <<END >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))