#!/usr/local/bin/perl
use blib;
use Time::localtime;
use AFS::KAS;
use AFS::KTC_PRINCIPAL;
use AFS::KTC_TOKEN;
use AFS::KTC_EKEY;
use AFS::Cell qw(localcell);
use AFS qw(raise_exception);
die "Usage: user\n" if ($#ARGV != 0);
raise_exception(1);
my $user = AFS::KTC_PRINCIPAL->new(shift);
$user->cell(localcell) if ($user ->cell eq'');
my $key = AFS::KTC_EKEY->ReadPassword($user->name."'s Password:");
my $kas = AFS::KAS->AuthServerConn(AFS::KTC_TOKEN->nulltoken, &AFS::KA_AUTHENTICATION_SERVICE);
my $auth_token = $kas->Authenticate($user->name, $user->instance, &AFS::KA_TICKET_GRANTING_SERVICE, $key, time, time+600);
undef $kas;
$kas = AFS::KAS->AuthServerConn($auth_token, &AFS::KA_TICKET_GRANTING_SERVICE);
my $service = AFS::KTC_PRINCIPAL->new("afs", "", localcell);
my $token = $kas->GetToken($service->name, $service->instance, time, time+600, $auth_token);
print "KAS afs-token: \n";
print "StartTime = ", ctime($token->startTime), "\n";
print "EndTime = ", ctime($token->endTime), "\n";
print "Kvno = ", $token->kvno, "\n";
print "TicketLen = ", $token->ticketLen, "\n";