summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2016-04-18 16:16:59 +0200
committerNikos Mavrogiannopoulos <nmav@redhat.com>2016-04-18 16:25:34 +0200
commitbd819ee7ec69670028c3e118058f77ad104bd809 (patch)
tree76a983c6a2888bff4460a98a810a6af24642ce67
parent645efb7c90f47e0addf420f441f39f8a360cb16d (diff)
downloadgnutls-bd819ee7ec69670028c3e118058f77ad104bd809.tar.gz
tests: added basic check on danetool --tlsa-rr option
-rw-r--r--tests/Makefile.am2
-rwxr-xr-xtests/danetool.sh79
2 files changed, 80 insertions, 1 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 8351b22ce5..f309a0da07 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -187,7 +187,7 @@ name_constraints_merge_CPPFLAGS = $(CPPFLAGS) \
-I$(top_builddir)/gl
check_PROGRAMS = $(ctests)
-dist_check_SCRIPTS = rfc2253-escape-test
+dist_check_SCRIPTS = rfc2253-escape-test danetool.sh
TESTS = $(ctests) $(dist_check_SCRIPTS)
diff --git a/tests/danetool.sh b/tests/danetool.sh
new file mode 100755
index 0000000000..cc050d0fb0
--- /dev/null
+++ b/tests/danetool.sh
@@ -0,0 +1,79 @@
+#!/bin/sh
+
+# Copyright (C) 2016 Red Hat, Inc.
+#
+# This file is part of GnuTLS.
+#
+# GnuTLS is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 3 of the License, or (at
+# your option) any later version.
+#
+# GnuTLS is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GnuTLS; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+srcdir="${srcdir:-.}"
+DANETOOL="${DANETOOL:-../src/danetool${EXEEXT}}"
+
+# Unfortunately it is extremely fragile and fails 99% of the
+# time.
+if test "${WINDIR}" != ""; then
+ exit 77
+fi
+
+. "${srcdir}/scripts/common.sh"
+
+# Check local generation
+OUT=$(${DANETOOL} --tlsa-rr --host www.example.com --load-certificate ${srcdir}/certs/cert-ecc256.pem)
+if test $? != 0;then
+ echo "error in test 1"
+ exit 1
+fi
+
+if test "$OUT" != '_443._tcp.www.example.com. IN TLSA ( 03 01 01 5978dd1d2d23e992075dc359d5dd14f7ef79748af97f2b7809c9ebfd6016c433 )';then
+ echo "error in test 2"
+ exit 1
+fi
+
+OUT=$(${DANETOOL} --tlsa-rr --host www.example.com --load-certificate ${srcdir}/certs/cert-rsa-2432.pem)
+if test $? != 0;then
+ echo "error in test 3"
+ exit 1
+fi
+
+if test "$OUT" != '_443._tcp.www.example.com. IN TLSA ( 03 01 01 671b40d05b28c85e9b2a52912abcdce38c0384cc5a7c693ed3148ca1e97632c9 )';then
+ echo "error in test 4"
+ exit 1
+fi
+
+# Check CA signed certificate generation
+OUT=$(${DANETOOL} --tlsa-rr --no-domain --host www.example.com --load-certificate ${srcdir}/certs/cert-rsa-2432.pem)
+if test $? != 0;then
+ echo "error in test 5"
+ exit 1
+fi
+
+if test "$OUT" != '_443._tcp.www.example.com. IN TLSA ( 01 01 01 671b40d05b28c85e9b2a52912abcdce38c0384cc5a7c693ed3148ca1e97632c9 )';then
+ echo "error in test 6"
+ exit 1
+fi
+
+# Check CA signer's certificate generation
+OUT=$(${DANETOOL} --tlsa-rr --ca --no-domain --host www.example.com --load-certificate ${srcdir}/certs/cert-rsa-2432.pem)
+if test $? != 0;then
+ echo "error in test 7"
+ exit 1
+fi
+
+if test "$OUT" != '_443._tcp.www.example.com. IN TLSA ( 00 01 01 671b40d05b28c85e9b2a52912abcdce38c0384cc5a7c693ed3148ca1e97632c9 )';then
+ echo "error in test 8"
+ exit 1
+fi
+
+exit 0