Path: blob/main/crypto/krb5/src/tests/gssapi/t_store_cred.py
34889 views
from k5test import *12realm = K5Realm(create_user=False)34alice = 'alice@' + realm.realm5bob = 'bob@' + realm.realm6cc_alice = realm.ccache + '.alice'7cc_bob = realm.ccache + '.bob'8realm.addprinc(alice)9realm.addprinc(bob)10realm.extract_keytab(alice, realm.keytab)11realm.extract_keytab(bob, realm.keytab)12realm.kinit(alice, flags=['-k', '-c', cc_alice])13realm.kinit(bob, flags=['-k', '-c', cc_bob])1415mark('FILE, default output ccache')16realm.run(['./t_store_cred', cc_alice])17realm.klist(alice)18# Overwriting should fail by default, whether or not the principal matches.19realm.run(['./t_store_cred', cc_alice], expected_code=1,20expected_msg='The requested credential element already exists')21realm.run(['./t_store_cred', cc_bob], expected_code=1,22expected_msg='The requested credential element already exists')23# Overwriting should succeed with overwrite_cred set.24realm.run(['./t_store_cred', '-o', cc_bob])25realm.klist(bob)26# default_cred has no effect without a collection.27realm.run(['./t_store_cred', '-d', '-o', cc_alice])28realm.klist(alice)2930mark('FILE, gss_krb5_ccache_name()')31cc_alternate = realm.ccache + '.alternate'32realm.run(['./t_store_cred', cc_alice, cc_alternate])33realm.klist(alice, ccache=cc_alternate)34realm.run(['./t_store_cred', cc_bob, cc_alternate], expected_code=1,35expected_msg='The requested credential element already exists')3637mark('FILE, gss_store_cred_into()')38os.remove(cc_alternate)39realm.run(['./t_store_cred', '-i', cc_alice, cc_alternate])40realm.klist(alice, ccache=cc_alternate)41realm.run(['./t_store_cred', '-i', cc_bob, cc_alternate], expected_code=1,42expected_msg='The requested credential element already exists')4344mark('DIR, gss_krb5_ccache_name()')45cc_dir = 'DIR:' + os.path.join(realm.testdir, 'cc')46realm.run(['./t_store_cred', cc_alice, cc_dir])47realm.run([klist, '-c', cc_dir], expected_code=1,48expected_msg='No credentials cache found')49realm.run([klist, '-l', '-c', cc_dir], expected_msg=alice)50realm.run(['./t_store_cred', cc_alice, cc_dir], expected_code=1,51expected_msg='The requested credential element already exists')52realm.run(['./t_store_cred', '-o', cc_alice, cc_dir])53realm.run([klist, '-c', cc_dir], expected_code=1,54expected_msg='No credentials cache found')55realm.run([klist, '-l', cc_dir], expected_msg=alice)56realm.run(['./t_store_cred', '-d', cc_bob, cc_dir])57# The k5test klist method does not currently work with a collection name.58realm.run([klist, cc_dir], expected_msg=bob)59realm.run([klist, '-l', cc_dir], expected_msg=alice)60realm.run(['./t_store_cred', '-o', '-d', cc_alice, cc_dir])61realm.run([klist, cc_dir], expected_msg=alice)62realm.run([kdestroy, '-A', '-c', cc_dir])6364mark('DIR, gss_store_cred_into()')65realm.run(['./t_store_cred', '-i', cc_alice, cc_dir])66realm.run(['./t_store_cred', '-i', '-d', cc_bob, cc_dir])67realm.run([klist, cc_dir], expected_msg=bob)68realm.run([klist, '-l', cc_dir], expected_msg=alice)69realm.run([kdestroy, '-A', '-c', cc_dir])7071mark('DIR, default output ccache')72realm.ccache = cc_dir73realm.env['KRB5CCNAME'] = cc_dir74realm.run(['./t_store_cred', '-i', cc_alice, cc_dir])75realm.run(['./t_store_cred', '-i', '-d', cc_bob, cc_dir])76realm.run([klist], expected_msg=bob)77realm.run([klist, '-l'], expected_msg=alice)7879success('gss_store_cred() tests')808182