summaryrefslogtreecommitdiff
path: root/tests/cert-tests/krb5-test
diff options
context:
space:
mode:
Diffstat (limited to 'tests/cert-tests/krb5-test')
-rwxr-xr-xtests/cert-tests/krb5-test107
1 files changed, 107 insertions, 0 deletions
diff --git a/tests/cert-tests/krb5-test b/tests/cert-tests/krb5-test
new file mode 100755
index 0000000000..4df9a4a01d
--- /dev/null
+++ b/tests/cert-tests/krb5-test
@@ -0,0 +1,107 @@
+#!/bin/sh
+
+# Copyright (C) 2015 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.
+
+#set -e
+
+srcdir="${srcdir:-.}"
+CERTTOOL="${CERTTOOL:-../../src/certtool${EXEEXT}}"
+DIFF="${DIFF:-diff}"
+OUTFILE=tmp-krb5name.pem
+TMPLFILE=tmp-krb5name.tmpl
+
+export TZ="UTC"
+
+# Check for datefudge
+TSTAMP=`datefudge "2006-09-23" date -u +%s || true`
+if test "$TSTAMP" != "1158969600"; then
+ echo $TSTAMP
+ echo "You need datefudge to run this test"
+ exit 77
+fi
+
+if ! test -z "${VALGRIND}"; then
+ VALGRIND="${LIBTOOL:-libtool} --mode=execute ${VALGRIND} --error-exitcode=3"
+fi
+
+# Note that in rare cases this test may fail because the
+# time set using datefudge could have changed since the generation
+# (if example the system was busy)
+
+rc=1
+counter=1
+
+while [ "${rc}" != "0" -a $counter -le 3 ]; do
+ datefudge "2007-04-22" \
+ "${CERTTOOL}" --generate-self-signed \
+ --load-privkey "${srcdir}/template-test.key" \
+ --template "${srcdir}/template-krb5name.tmpl" \
+ --outfile ${OUTFILE} 2>/dev/null
+
+ ${DIFF} "${srcdir}/template-krb5name.pem" ${OUTFILE} >/dev/null 2>&1
+ rc=$?
+ test ${rc} != 0 && sleep 3
+ counter=`expr $counter + 1`
+done
+
+# We're done.
+if test "${rc}" != "0"; then
+ echo "Test 1 failed"
+ exit ${rc}
+fi
+
+# Negative tests. Check against values which may cause problems
+cp template-krb5name.tmpl ${TMPLFILE}
+echo "krb5_principal = 'xxxxxxxxxxxxxx'" >>${TMPLFILE}
+
+datefudge "2007-04-22" \
+${VALGRIND} "${CERTTOOL}" --generate-self-signed \
+ --load-privkey "${srcdir}/template-test.key" \
+ --template ${TMPLFILE} \
+ --outfile ${OUTFILE} 2>/dev/null
+
+rc=$?
+
+# We're done.
+if test "${rc}" != "1"; then
+ echo "Negative Test 1 failed"
+ exit ${rc}
+fi
+
+cp template-krb5name.tmpl ${TMPLFILE}
+echo "krb5_principal = 'comp1/comp2/comp3/comp4/comp5/comp6/comp7/comp8/comp9/comp10@REALM.COM'" >>${TMPLFILE}
+
+datefudge "2007-04-22" \
+${VALGRIND} "${CERTTOOL}" --generate-self-signed \
+ --load-privkey "${srcdir}/template-test.key" \
+ --template ${TMPLFILE} \
+ --outfile ${OUTFILE} 2>/dev/null
+
+rc=$?
+
+# We're done.
+if test "${rc}" != "1"; then
+ echo "Negative Test 2 failed"
+ exit ${rc}
+fi
+
+rm -f ${OUTFILE}
+rm -f ${TMPLFILE}
+
+exit 0