1 #!/bin/sh 2 # 3 # Copyright (c) 2006 - 2007 Kungliga Tekniska Hgskolan 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 34 top_builddir="@top_builddir@" 35 env_setup="@env_setup@" 36 objdir="@objdir@" 37 srcdir="@srcdir@" 38 39 . ${env_setup} 40 41 KRB5_CONFIG="${1-${objdir}/krb5.conf}" 42 export KRB5_CONFIG 43 44 testfailed="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 49 R=TEST.H5L.SE 50 51 keytabfile=${objdir}/server.keytab 52 keytab="FILE:${keytabfile}" 53 keyfile="${hx509_data}/key.der" 54 keyfile2="${hx509_data}/key2.der" 55 56 kadmin="${kadmin} -l -r $R" 57 58 server=host/datan.test.h5l.se 59 60 rsa=yes 61 pkinit=no 62 if ${hxtool} info | grep 'rsa: hx509 null RSA' > /dev/null ; then 63 rsa=no 64 fi 65 if ${hxtool} info | grep 'rand: not available' > /dev/null ; then 66 rsa=no 67 fi 68 69 if ${kinit} --help 2>&1 | grep "CA certificates" > /dev/null; then 70 pkinit=yes 71 fi 72 73 # If we doesn't support pkinit and have RSA, give up 74 if test "$rsa" != yes ; then 75 pkinit=no 76 fi 77 78 rm -f ${keytabfile} 79 rm -f current-db* 80 rm -f out-* 81 rm -f mkey.file* 82 83 > messages.log 84 85 echo 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 97 echo "password" 98 ${kdc_tester} ${srcdir}/kdc-tester1.json > out-log 2>&1 || exit 1 99 sed 's/^/ /' out-log 100 101 echo "keytab" 102 ${kdc_tester} ${srcdir}/kdc-tester2.json > out-log 2>&1 || exit 1 103 sed 's/^/ /' out-log 104 105 echo "FAST + keytab" 106 ${kdc_tester} ${srcdir}/kdc-tester3.json > out-log 2>&1 || exit 1 107 sed 's/^/ /' out-log 108 109 110 if 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 116 fi 117 118 exit $ec 119