#!/usr/local/bin/perl -w-
use strict;
#use diagnostics;
use English;
use 5.004_01;

#use blib;
use AFS 1.8;

print "perl-Test \n";


my $MPAuser  = 'guest5';
my $user     = AFS::KTC_PRINCIPAL->new();
$user->name($MPAuser);
$user->cell(localcell) if ($user->cell eq '');

my $MPAadmin    = 'admin';
my $admin       = AFS::KTC_PRINCIPAL->new();
$admin->name($MPAadmin);
# my $admin_key   = ka_StringToKey('put_here_the_password', $admin->cell);
my $admin_key   = ka_ReadPassword($admin->name . "'s Password:");
my $admin_token = ka_GetAdminToken($admin, $admin_key, 300);
my $kas         = ka_AuthServerConn($admin_token, &AFS::KA_MAINTENANCE_SERVICE);

my $flags    = 1;        # (1 = normal, 4 = admin)
my $expire   = 925715000;
my $maxassoc = 0;
my $lifetime = 48*60*60; #unit is secs; => 48 hrs
my $pwexpire = 10;       #number of days
my $pw_reuse = 2;        #pwreuse allowed: [ 1 = yes ], [ 2 = no ], [ 0 = not changed ]
my $nfail    = 4;        #(nfail - 1) tries are allowed; => 3 tries
my $locktime = 3;        #unit is 8.5 min => 3 * (8.5)
my $spare2   = 0;

my $packed= (($pwexpire << 24) | ($pw_reuse  << 16) | ($nfail << 8) | $locktime );


my $ok = $kas->KAM_SetFields($user->name, $user->instance, $flags, $expire, $lifetime, $maxassoc, $packed, $spare2);
if (!$ok) { die "AFS-Error: $AFS::CODE\n" .
                "Task has been aborted ... \n"; }

print "E N D \n";

