Use etypes from keytab in krb5_gic_keytab
[krb5.git] / src / tests / t_keytab.py
1 #!/usr/bin/python
2 from k5test import *
3
4 realm = K5Realm(start_kadmind=False)
5
6 # Test kinit with a keytab.
7 realm.kinit(realm.host_princ, flags=['-k'])
8
9 # Test kinit with a partial keytab.
10 pkeytab = realm.keytab + '.partial'
11 realm.run_as_master([ktutil], input=('rkt %s\ndelent 1\nwkt %s\n' %
12                                      (realm.keytab, pkeytab)))
13 realm.kinit(realm.host_princ, flags=['-k', '-t', pkeytab])
14
15 # Test kinit with no keys for client in keytab.
16 output = realm.kinit(realm.user_princ, flags=['-k'], expected_code=1)
17 if 'no suitable keys' not in output:
18     fail('Expected error not seen in kinit output')
19
20 # Test handling of kvno values beyond 255.
21 princ = 'foo/bar@%s' % realm.realm
22 realm.addprinc(princ)
23 os.remove(realm.keytab)
24 realm.run_kadminl('modprinc -kvno 252 %s' % princ)
25 for kvno in range(253, 259):
26     realm.run_kadminl('ktadd -k %s %s' % (realm.keytab, princ))
27     realm.kinit(princ, flags=['-k'])
28     realm.klist_keytab(princ)
29     os.remove(realm.keytab)
30 output = realm.run_kadminl('getprinc %s' % princ)
31 if 'Key: vno 258,' not in output:
32     fail('Expected vno not seen in kadmin.local output')
33
34 success('Keytab-related tests')