# Standalone Kerberos test. # This is a DejaGnu test script. # This script tests that the Kerberos tools can talk to each other. # This mostly just calls procedures in testsuite/config/default.exp. # Set up the Kerberos files and environment. if {![get_hostname] || ![setup_kerberos_files] || ![setup_kerberos_env]} { return } # If we do not have what is for a V4 test - return if ![v4_compatible_enctype] { return } # Initialize the Kerberos database. The argument tells # setup_kerberos_db that it is being called from here. if ![setup_kerberos_db 1] { return } # We are about to start up a couple of daemon processes. We do all # the rest of the tests inside a proc, so that we can easily kill the # processes when the procedure ends. proc check_and_destroy_v4_tix { client server } { global REALMNAME global des3_krbtgt # Skip this if we're using a des3 TGT, since that's supposed to fail. if {$des3_krbtgt} { return } # Make sure that klist can see the ticket. if ![v4klist "$client" "$server" "v4klist"] { return } # Destroy the ticket. if ![v4kdestroy "v4kdestroy"] { return } if ![v4klist_none "v4klist no tix 1"] { return } } proc doit { } { global REALMNAME global KLIST global KDESTROY global KEY global hostname global spawn_id global tmppwd # Start up the kerberos and kadmind daemons. if ![start_kerberos_daemons 1] { return } # Use kadmin to add an host key. if ![add_random_key host/$hostname 1] { return } # Use ksrvutil to create a srvtab entry. if ![setup_srvtab 1] { return } # Use kinit to get a ticket. if [v4kinit krbtest.admin adminpass$KEY 1] { check_and_destroy_v4_tix krbtest.admin@$REALMNAME krbtgt.$REALMNAME@$REALMNAME } # Use kinit with srvtab to get a ticket. # XXX - Currently kinit doesn't support "-4 -k"! # set shorthost [string range $hostname 0 [expr [string first . $hostname] - 1]] # if [v4kinit_kt host.$shorthost SRVTAB:$tmppwd/srvtab 1] { # check_and_destroy_v4_tix host.$shorthost@$REALMNAME krbtgt.$REALMNAME@$REALMNAME # } } set status [catch doit msg] stop_kerberos_daemons if { $status != 0 } { send_error "ERROR: error in v4standalone.exp\n" send_error "$msg\n" exit 1 }