#!/usr/local/in/perl -w
#
# Just basic usage, no error checking .. etc..
# to make it work you must use existing principals !

use Authen::Krb5;

Authen::Krb5::init_context();
Authen::Krb5::init_ets();

$krb5ccache = Authen::Krb5::cc_resolve('/tmp/test.ccache');

$krb5keytab = Authen::Krb5::kt_resolve('/etc/test.keytab');

$krb5princ = Authen::Krb5::parse_name('SERVICE1/hostname.host.domain');
$krb5ccache->initialize($krb5princ);
$krb5creds = Authen::Krb5::get_init_creds_keytab($krb5princ,$krb5keytab);
$krb5ccache->store_cred($krb5creds);

$krb5princ_for_user = Authen::Krb5::parse_name('joeuser');

# S4U2Self 
$krb5creds_for_user= Authen::Krb5::get_credentials_for_user($krb5princ_for_user, $krb5princ, $krb5ccache);

$krb5ccache->store_cred($krb5creds_for_user);

# S4U2Proxy
$krb5princ_proxy = Authen::Krb5::parse_name('SERVICE2/hostname2.host.domain');
$krb5creds_for_user_proxy = Authen::Krb5::get_credentials_for_proxy($krb5princ_for_user,$krb5princ,$krb5princ_proxy,$krb5ccache,$krb5keytab);

$krb5ccache->store_cred($krb5creds_for_user_proxy);






