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