1178825Sdfr#!/bin/sh 2178825Sdfr# 3178825Sdfr# Copyright (c) 2007 Kungliga Tekniska H�gskolan 4178825Sdfr# (Royal Institute of Technology, Stockholm, Sweden). 5178825Sdfr# All rights reserved. 6178825Sdfr# 7178825Sdfr# Redistribution and use in source and binary forms, with or without 8178825Sdfr# modification, are permitted provided that the following conditions 9178825Sdfr# are met: 10178825Sdfr# 11178825Sdfr# 1. Redistributions of source code must retain the above copyright 12178825Sdfr# notice, this list of conditions and the following disclaimer. 13178825Sdfr# 14178825Sdfr# 2. Redistributions in binary form must reproduce the above copyright 15178825Sdfr# notice, this list of conditions and the following disclaimer in the 16178825Sdfr# documentation and/or other materials provided with the distribution. 17178825Sdfr# 18178825Sdfr# 3. Neither the name of the Institute nor the names of its contributors 19178825Sdfr# may be used to endorse or promote products derived from this software 20178825Sdfr# without specific prior written permission. 21178825Sdfr# 22178825Sdfr# THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 23178825Sdfr# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24178825Sdfr# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25178825Sdfr# ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 26178825Sdfr# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27178825Sdfr# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28178825Sdfr# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29178825Sdfr# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30178825Sdfr# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31178825Sdfr# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32178825Sdfr# SUCH DAMAGE. 33178825Sdfr# 34178825Sdfr# $Id$ 35178825Sdfr# 36178825Sdfr 37178825Sdfrsrcdir="@srcdir@" 38178825Sdfrobjdir="@objdir@" 39178825Sdfr 40178825Sdfr# If there is no useful db support compile in, disable test 41178825Sdfr../db/have-db || exit 77 42178825Sdfr 43178825SdfrR=TEST.H5L.SE 44178825Sdfr 45178825Sdfrport=@port@ 46178825Sdfr 47178825Sdfrkeytabfile=${objdir}/server.keytab 48178825Sdfrkeytab="FILE:${keytabfile}" 49178825Sdfrnokeytab="FILE:no-such-keytab" 50178825Sdfrcache="FILE:krb5ccfile" 51178825Sdfrnocache="FILE:no-such-cache" 52178825Sdfr 53178825Sdfrkinit="${TESTS_ENVIRONMENT} ../../kuser/kinit -c $cache --no-afslog" 54178825Sdfrkadmin="${TESTS_ENVIRONMENT} ../../kadmin/kadmin -l -r $R" 55178825Sdfrkdc="${TESTS_ENVIRONMENT} ../../kdc/kdc --addresses=localhost -P $port" 56178825Sdfr 57178825Sdfracquire_cred="${TESTS_ENVIRONMENT} ../../lib/gssapi/test_acquire_cred" 58178825Sdfrtest_kcred="${TESTS_ENVIRONMENT} ../../lib/gssapi/test_kcred" 59178825Sdfr 60178825SdfrKRB5_CONFIG="${objdir}/krb5.conf" 61178825Sdfrexport KRB5_CONFIG 62178825Sdfr 63178825SdfrKRB5_KTNAME="${keytab}" 64178825Sdfrexport KRB5_KTNAME 65178825SdfrKRB5CCNAME="${cache}" 66178825Sdfrexport KRB5CCNAME 67178825Sdfr 68178825Sdfrrm -f ${keytabfile} 69178825Sdfrrm -f current-db* 70178825Sdfrrm -f out-* 71178825Sdfrrm -f mkey.file* 72178825Sdfr 73178825Sdfr> messages.log 74178825Sdfr 75178825Sdfrecho Creating database 76178825Sdfr${kadmin} \ 77178825Sdfr init \ 78178825Sdfr --realm-max-ticket-life=1day \ 79178825Sdfr --realm-max-renewable-life=1month \ 80178825Sdfr ${R} || exit 1 81178825Sdfr 82178825Sdfrecho upw > ${objdir}/foopassword 83178825Sdfr 84178825Sdfr${kadmin} add -p upw --use-defaults user@${R} || exit 1 85178825Sdfr${kadmin} add -p upw --use-defaults another@${R} || exit 1 86178825Sdfr${kadmin} add -p p1 --use-defaults host/host.test.h5l.se@${R} || exit 1 87178825Sdfr${kadmin} ext -k ${keytab} host/host.test.h5l.se@${R} || exit 1 88178825Sdfr 89178825Sdfrecho "Doing database check" 90178825Sdfr${kadmin} check ${R} || exit 1 91178825Sdfr 92178825Sdfrecho Starting kdc 93178825Sdfr${kdc} & 94178825Sdfrkdcpid=$! 95178825Sdfr 96178825Sdfrsh ${srcdir}/../kdc/wait-kdc.sh 97178825Sdfrif [ "$?" != 0 ] ; then 98178825Sdfr kill ${kdcpid} 99178825Sdfr exit 1 100178825Sdfrfi 101178825Sdfr 102178825Sdfrtrap "kill ${kdcpid}; echo signal killing kdc; exit 1;" EXIT 103178825Sdfr 104178825Sdfrexitcode=0 105178825Sdfr 106178825Sdfrecho "initial ticket" 107178825Sdfr${kinit} --password-file=${objdir}/foopassword user@${R} || exitcode=1 108178825Sdfr 109178825Sdfrecho "keytab" 110178825Sdfr${acquire_cred} \ 111178825Sdfr --acquire-type=accept \ 112178825Sdfr --acquire-name=host@host.test.h5l.se || exit 1 113178825Sdfrecho "keytab w/o name" 114178825Sdfr${acquire_cred} \ 115178825Sdfr --acquire-type=accept || exit 1 116178825Sdfrecho "keytab w/ wrong name" 117178825Sdfr${acquire_cred} \ 118178825Sdfr --acquire-type=accept \ 119178825Sdfr --acquire-name=host@host2.test.h5l.se 2>/dev/null && exit 1 120178825Sdfrecho "init using keytab" 121178825Sdfr${acquire_cred} \ 122178825Sdfr --acquire-type=initiate \ 123178825Sdfr --acquire-name=host@host.test.h5l.se || exit 1 124178825Sdfrecho "init using existing cc" 125178825Sdfr${acquire_cred} \ 126178825Sdfr --name-type=user-name \ 127178825Sdfr --acquire-type=initiate \ 128178825Sdfr --acquire-name=user || exit 1 129178825Sdfr 130178825SdfrKRB5CCNAME=${nocache} 131178825Sdfr 132178825Sdfrecho "fail init using existing cc" 133178825Sdfr${acquire_cred} \ 134178825Sdfr --name-type=user-name \ 135178825Sdfr --acquire-type=initiate \ 136178825Sdfr --acquire-name=user 2>/dev/null && exit 1 137178825Sdfr 138178825Sdfrecho "use gss_krb5_ccache_name" 139178825Sdfr${acquire_cred} \ 140178825Sdfr --name-type=user-name \ 141178825Sdfr --ccache=${cache} \ 142178825Sdfr --acquire-type=initiate \ 143178825Sdfr --acquire-name=user >/dev/null || exit 1 144178825Sdfr 145178825SdfrKRB5CCNAME=${cache} 146178825SdfrKRB5_KTNAME=${nokeytab} 147178825Sdfr 148178825Sdfrecho "kcred" 149178825Sdfr${test_kcred} || exit 1 150178825Sdfr 151178825Sdfrtrap "" EXIT 152178825Sdfr 153178825Sdfrecho "killing kdc (${kdcpid})" 154178825Sdfrkill ${kdcpid} 2> /dev/null 155178825Sdfr 156178825Sdfrexit $exitcode 157