1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
from k5test import *
sim_client = os.path.join(buildtop, 'appl', 'simple', 'client', 'sim_client')
sim_server = os.path.join(buildtop, 'appl', 'simple', 'server', 'sim_server')
for realm in multipass_realms(create_host=False):
server_princ = 'sample/%s@%s' % (hostname, realm.realm)
realm.addprinc(server_princ)
realm.extract_keytab(server_princ, realm.keytab)
portstr = str(realm.server_port())
server = realm.start_server([sim_server, '-p', portstr], 'starting...')
out = realm.run([sim_client, '-p', portstr, hostname])
if ('Sent checksummed message:' not in out or
'Sent encrypted message:' not in out):
fail('Expected client messages not seen')
# sim_server exits after one client execution, so we can read
# until it closes stdout.
seen1 = seen2 = seen3 = False
for line in server.stdout:
if line == 'Got authentication info from user@KRBTEST.COM\n':
seen1 = True
if line == "Safe message is: 'hi there!'\n":
seen2 = True
if line == "Decrypted message is: 'hi there!'\n":
seen3 = True
if not (seen1 and seen2 and seen3):
fail('Expected server messages not seen')
await_daemon_exit(server)
success('sim_client/sim_server tests')
|