79 lines
2.0 KiB
Diff
79 lines
2.0 KiB
Diff
From eee06b7744c4999ec3c7cb0654f97a9b4c79f77f Mon Sep 17 00:00:00 2001
|
|
From: Mark Andrews <marka@isc.org>
|
|
Date: Wed, 25 Mar 2020 17:44:51 +1100
|
|
Subject: [PATCH] Check that a 'BADTIME' response with 'QR=0' is handled as a
|
|
request
|
|
|
|
(cherry picked from commit 67ba3f8f3ab2a748dff1e8a2029fde3bc84ec3f1)
|
|
---
|
|
bin/tests/system/tsig/badtime | 37 ++++++++++++++++++++++++++++++++++
|
|
bin/tests/system/tsig/tests.sh | 9 +++++++++
|
|
2 files changed, 46 insertions(+)
|
|
create mode 100644 bin/tests/system/tsig/badtime
|
|
|
|
diff --git a/bin/tests/system/tsig/badtime b/bin/tests/system/tsig/badtime
|
|
new file mode 100644
|
|
index 0000000000..7926404cfb
|
|
--- /dev/null
|
|
+++ b/bin/tests/system/tsig/badtime
|
|
@@ -0,0 +1,37 @@
|
|
+# Transaction ID
|
|
+1122
|
|
+# Standard query
|
|
+0000
|
|
+# Questions: 1, Additional: 1
|
|
+0001 0000 0000 0001
|
|
+# QNAME: isc.org
|
|
+03 69 73 63 03 6F 72 67 00
|
|
+# Type: A (Host Address)
|
|
+0001
|
|
+# Class: IN
|
|
+0001
|
|
+# Specially crafted TSIG Resource Record
|
|
+# Name: "sha256"
|
|
+06 73 68 61 32 35 36 00
|
|
+# Type: TSIG (Transaction Signature)
|
|
+00fa
|
|
+# Class: ANY
|
|
+00ff
|
|
+# TTL: 0
|
|
+00000000
|
|
+# RdLen: 29
|
|
+001d
|
|
+# Algorithm Name: hmac-sha256
|
|
+0b 68 6D 61 63 2D 73 68 61 32 35 36 00
|
|
+# Time Signed: Jan 1, 1970 01:00:00.000000000 CET
|
|
+00 00 00 00 00 00
|
|
+# Fudge: 300
|
|
+012c
|
|
+# MAC Size: 0; MAC: empty
|
|
+0000
|
|
+# Original ID: 0
|
|
+0000
|
|
+# Error: BADSIG
|
|
+0010
|
|
+# Other Data Length: 0
|
|
+0000
|
|
diff --git a/bin/tests/system/tsig/tests.sh b/bin/tests/system/tsig/tests.sh
|
|
index cade35bc1d..284aea1056 100644
|
|
--- a/bin/tests/system/tsig/tests.sh
|
|
+++ b/bin/tests/system/tsig/tests.sh
|
|
@@ -233,5 +233,14 @@ if [ $ret -eq 1 ] ; then
|
|
echo "I: failed"; status=1
|
|
fi
|
|
|
|
+echo_i "check that a 'BADTIME' response with 'QR=0' is handled as a request"
|
|
+ret=0
|
|
+$PERL ../packet.pl -a 10.53.0.1 -p ${PORT} -t tcp < badtime > /dev/null
|
|
+$DIG -p ${PORT} @10.53.0.1 version.bind txt ch > dig.out.verify || ret=1
|
|
+grep "status: NOERROR" dig.out.verify > /dev/null || ret=1
|
|
+if [ $ret -eq 1 ] ; then
|
|
+ echo_i "failed"; status=1
|
|
+fi
|
|
+
|
|
echo_i "exit status: $status"
|
|
[ $status -eq 0 ] || exit 1
|
|
--
|
|
2.21.1
|
|
|