1import base64 2import socket 3from k5test import * 4 5realm = 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 11s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 12a = (hostname, realm.portbase) 13 14 15# Bogus AS-REQ 16 17x1 = base64.b16decode('6AFF') 18s.sendto(x1, a) 19 20# Make sure kinit still works. 21 22realm.kinit(realm.user_princ, password('user')) 23 24# Bogus TGS-REQ 25 26x2 = base64.b16decode('6CFF') 27s.sendto(x2, a) 28 29# Make sure kinit still works. 30 31realm.kinit(realm.user_princ, password('user')) 32 33# Not a KDC-REQ, even a little bit 34 35x3 = base64.b16decode('FFFF') 36s.sendto(x3, a) 37 38# Make sure kinit still works. 39 40realm.kinit(realm.user_princ, password('user')) 41 42success('Bogus KDC-REQ test') 43