xref: /freebsd/crypto/krb5/src/tests/gssapi/t_bindings.py (revision b670c9bafc0e31c7609969bf374b2e80bdc00211)
1from k5test import *
2
3realm = K5Realm()
4server = 'p:' + realm.host_princ
5
6mark('krb5 channel bindings')
7realm.run(['./t_bindings', server, '-', '-'], expected_msg='no')
8realm.run(['./t_bindings', server, 'a', '-'], expected_msg='no')
9realm.run(['./t_bindings', server, 'a', 'a'], expected_msg='yes')
10realm.run(['./t_bindings', server, '-', 'a'], expected_msg='no')
11realm.run(['./t_bindings', server, 'a', 'x'],
12          expected_code=1, expected_msg='Incorrect channel bindings')
13
14mark('SPNEGO channel bindings')
15realm.run(['./t_bindings', '-s', server, '-', '-'], expected_msg='no')
16realm.run(['./t_bindings', '-s', server, 'a', '-'], expected_msg='no')
17realm.run(['./t_bindings', '-s', server, 'a', 'a'], expected_msg='yes')
18realm.run(['./t_bindings', '-s', server, '-', 'a'], expected_msg='no')
19realm.run(['./t_bindings', '-s', server, 'a', 'x'],
20          expected_code=1, expected_msg='Incorrect channel bindings')
21
22client_aware_conf = {'libdefaults': {'client_aware_channel_bindings': 'true'}}
23e = realm.special_env('cb_aware', False, krb5_conf=client_aware_conf)
24
25mark('krb5 client_aware_channel_bindings')
26realm.run(['./t_bindings', server, '-', '-'], env=e, expected_msg='no')
27realm.run(['./t_bindings', server, 'a', '-'], env=e, expected_msg='no')
28realm.run(['./t_bindings', server, 'a', 'a'], env=e, expected_msg='yes')
29realm.run(['./t_bindings', server, '-', 'a'], env=e,
30          expected_code=1, expected_msg='Incorrect channel bindings')
31realm.run(['./t_bindings', server, 'a', 'x'], env=e,
32          expected_code=1, expected_msg='Incorrect channel bindings')
33
34mark('SPNEGO client_aware_channel_bindings')
35realm.run(['./t_bindings', '-s', server, '-', '-'], env=e, expected_msg='no')
36realm.run(['./t_bindings', '-s', server, 'a', '-'], env=e, expected_msg='no')
37realm.run(['./t_bindings', '-s', server, 'a', 'a'], env=e, expected_msg='yes')
38realm.run(['./t_bindings', '-s', server, '-', 'a'], env=e,
39          expected_code=1, expected_msg='Incorrect channel bindings')
40realm.run(['./t_bindings', '-s', server, 'a', 'x'], env=e,
41          expected_code=1, expected_msg='Incorrect channel bindings')
42
43success('channel bindings tests')
44