Imported Upstream version 1.15.1
[platform/upstream/krb5.git] / src / tests / t_bogus_kdc_req.py
1 #!/usr/bin/python
2
3 import base64
4 import socket
5 from k5test import *
6
7 realm = K5Realm()
8
9 # Send encodings that are invalid KDC-REQs, but pass krb5_is_as_req()
10 # and krb5_is_tgs_req(), to make sure that the KDC recovers correctly
11 # from failures in decode_krb5_as_req() and decode_krb5_tgs_req().
12
13 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
14 a = (hostname, realm.portbase)
15
16
17 # Bogus AS-REQ
18
19 x1 = base64.b16decode('6AFF')
20 s.sendto(x1, a)
21
22 # Make sure kinit still works.
23
24 realm.kinit(realm.user_princ, password('user'))
25
26 # Bogus TGS-REQ
27
28 x2 = base64.b16decode('6CFF')
29 s.sendto(x2, a)
30
31 # Make sure kinit still works.
32
33 realm.kinit(realm.user_princ, password('user'))
34
35 # Not a KDC-REQ, even a little bit
36
37 x3 = base64.b16decode('FFFF')
38 s.sendto(x3, a)
39
40 # Make sure kinit still works.
41
42 realm.kinit(realm.user_princ, password('user'))
43
44 success('Bogus KDC-REQ test')