1#!/bin/sh 2# 3# Copyright (c) 2006 - 2007 Kungliga Tekniska Högskolan 4# (Royal Institute of Technology, Stockholm, Sweden). 5# All rights reserved. 6# 7# Redistribution and use in source and binary forms, with or without 8# modification, are permitted provided that the following conditions 9# are met: 10# 11# 1. Redistributions of source code must retain the above copyright 12# notice, this list of conditions and the following disclaimer. 13# 14# 2. Redistributions in binary form must reproduce the above copyright 15# notice, this list of conditions and the following disclaimer in the 16# documentation and/or other materials provided with the distribution. 17# 18# 3. Neither the name of the Institute nor the names of its contributors 19# may be used to endorse or promote products derived from this software 20# without specific prior written permission. 21# 22# THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 23# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25# ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 26# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32# SUCH DAMAGE. 33 34top_builddir="@top_builddir@" 35env_setup="@env_setup@" 36objdir="@objdir@" 37srcdir="@srcdir@" 38 39. ${env_setup} 40 41KRB5_CONFIG="${1-${objdir}/krb5.conf}" 42export KRB5_CONFIG 43 44testfailed="echo test failed; cat messages.log; exit 1" 45 46# If there is no useful db support compiled in, disable test 47${have_db} || exit 77 48 49R=TEST.H5L.SE 50 51keytabfile=${objdir}/server.keytab 52keytab="FILE:${keytabfile}" 53keyfile="${hx509_data}/key.der" 54keyfile2="${hx509_data}/key2.der" 55 56kadmin="${kadmin} -l -r $R" 57 58server=host/datan.test.h5l.se 59 60rsa=yes 61pkinit=no 62if ${hxtool} info | grep 'rsa: hx509 null RSA' > /dev/null ; then 63 rsa=no 64fi 65if ${hxtool} info | grep 'rand: not available' > /dev/null ; then 66 rsa=no 67fi 68 69if ${kinit} --help 2>&1 | grep "CA certificates" > /dev/null; then 70 pkinit=yes 71fi 72 73# If we doesn't support pkinit and have RSA, give up 74if test "$rsa" != yes ; then 75 pkinit=no 76fi 77 78rm -f ${keytabfile} 79rm -f current-db* 80rm -f out-* 81rm -f mkey.file* 82 83> messages.log 84 85echo Creating database 86${kadmin} \ 87 init \ 88 --realm-max-ticket-life=1day \ 89 --realm-max-renewable-life=1month \ 90 ${R} || exit 1 91 92${kadmin} add -p foo --use-defaults ${server}@${R} || exit 1 93${kadmin} add -p foo --use-defaults foo@${R} || exit 1 94${kadmin} ext -k ${keytab} foo@${R} || exit 1 95${kadmin} ext -k ${keytab} ${server}@${R} || exit 1 96 97echo "password" 98${kdc_tester} ${srcdir}/kdc-tester1.json > out-log 2>&1 || exit 1 99sed 's/^/ /' out-log 100 101echo "keytab" 102${kdc_tester} ${srcdir}/kdc-tester2.json > out-log 2>&1 || exit 1 103sed 's/^/ /' out-log 104 105echo "FAST + keytab" 106${kdc_tester} ${srcdir}/kdc-tester3.json > out-log 2>&1 || exit 1 107sed 's/^/ /' out-log 108 109 110if test "$pkinit" = yes ; then 111 112 echo "pkinit" 113 ${kdc_tester} ${objdir}/kdc-tester4.json > out-log 2>&1 || exit 1 114 sed 's/^/ /' out-log 115 116fi 117 118exit $ec 119