@@ -58,7 +58,6 @@ def setUp(self):
58
58
def test_indicate_mechs (self ):
59
59
mechs = gb .indicate_mechs ()
60
60
self .assertIsInstance (mechs , set )
61
- self .assertGreater (len (mechs ), 0 )
62
61
self .assertIn (gb .MechType .kerberos , mechs )
63
62
64
63
def test_import_name (self ):
@@ -320,56 +319,63 @@ def test_inquire_context(self):
320
319
321
320
@ktu .gssapi_extension_test ('s4u' , 'S4U' )
322
321
def test_add_cred_impersonate_name (self ):
323
- target_name = gb .import_name (TARGET_SERVICE_NAME ,
324
- gb .NameType .hostbased_service )
325
- client_ctx_resp = gb .init_sec_context (target_name )
326
- client_token = client_ctx_resp [3 ]
327
- del client_ctx_resp # free all the things (except the token)!
328
-
329
322
server_name = gb .import_name (SERVICE_PRINCIPAL ,
330
323
gb .NameType .kerberos_principal )
331
- server_creds = gb .acquire_cred (server_name , usage = 'both' )[0 ]
332
- server_ctx_resp = gb .accept_sec_context (client_token ,
333
- acceptor_creds = server_creds )
324
+
325
+ password = self .realm .password ('user' )
326
+ self .realm .kinit (self .realm .user_princ , password = password ,
327
+ flags = ["-f" ])
328
+ name = gb .import_name (b"user" , gb .NameType .kerberos_principal )
329
+ client_creds = gb .acquire_cred (name , usage = "initiate" ).creds
330
+ cctx_res = gb .init_sec_context (
331
+ server_name , creds = client_creds ,
332
+ flags = gb .RequirementFlag .delegate_to_peer )
333
+
334
+ self .realm .kinit (SERVICE_PRINCIPAL .decode ("utf-8" ), flags = ["-k" ])
335
+ server_creds = gb .acquire_cred (server_name , usage = "both" ).creds
336
+ sctx_res = gb .accept_sec_context (cctx_res .token , server_creds )
337
+ self .assertTrue (gb .inquire_context (sctx_res .context ).complete )
334
338
335
339
input_creds = gb .Creds ()
336
340
imp_resp = gb .add_cred_impersonate_name (input_creds ,
337
- server_creds ,
338
- server_ctx_resp [ 1 ] ,
341
+ sctx_res . delegated_creds ,
342
+ server_name ,
339
343
gb .MechType .kerberos )
340
344
self .assertIsNotNone (imp_resp )
341
-
342
- new_creds , actual_mechs , output_init_ttl , output_accept_ttl = imp_resp
343
- self .assertIsInstance (new_creds , gb .Creds )
344
- self .assertIn (gb .MechType .kerberos , actual_mechs )
345
- self .assertIsInstance (output_init_ttl , int )
346
- self .assertIsInstance (output_accept_ttl , int )
345
+ self .assertIsInstance (imp_resp , gb .AddCredResult )
346
+ self .assertIsInstance (imp_resp .creds , gb .Creds )
347
+ self .assertIn (gb .MechType .kerberos , imp_resp .mechs )
348
+ self .assertIsInstance (imp_resp .init_lifetime , int )
349
+ self .assertGreater (imp_resp .init_lifetime , 0 )
350
+ self .assertIsInstance (imp_resp .accept_lifetime , int )
351
+ self .assertEqual (imp_resp .accept_lifetime , 0 )
347
352
348
353
@ktu .gssapi_extension_test ('s4u' , 'S4U' )
349
354
def test_acquire_creds_impersonate_name (self ):
350
- target_name = gb .import_name (TARGET_SERVICE_NAME ,
351
- gb .NameType .hostbased_service )
352
- client_ctx_resp = gb .init_sec_context (target_name )
353
- client_token = client_ctx_resp [3 ]
354
- del client_ctx_resp # free all the things (except the token)!
355
-
356
355
server_name = gb .import_name (SERVICE_PRINCIPAL ,
357
356
gb .NameType .kerberos_principal )
358
- server_creds = gb .acquire_cred (server_name , usage = 'both' )[0 ]
359
- server_ctx_resp = gb .accept_sec_context (client_token ,
360
- acceptor_creds = server_creds )
361
357
362
- imp_resp = gb . acquire_cred_impersonate_name ( server_creds ,
363
- server_ctx_resp [ 1 ])
364
- self . assertIsNotNone ( imp_resp )
365
-
366
- imp_creds , actual_mechs , output_ttl = imp_resp
367
- self . assertIsInstance ( imp_creds , gb .Creds )
368
- self . assertIn ( gb . MechType . kerberos , actual_mechs )
369
- self . assertIsInstance ( output_ttl , int )
358
+ password = self . realm . password ( 'user' )
359
+ self . realm . kinit ( self . realm . user_princ , password = password ,
360
+ flags = [ "-f" ] )
361
+ name = gb . import_name ( b'user' , gb . NameType . kerberos_principal )
362
+ client_creds = gb . acquire_cred ( name , usage = "initiate" ). creds
363
+ cctx_res = gb .init_sec_context (
364
+ server_name , creds = client_creds ,
365
+ flags = gb . RequirementFlag . delegate_to_peer )
370
366
371
- # no need to explicitly release any more -- we can just rely on
372
- # __dealloc__ (b/c cython)
367
+ self .realm .kinit (SERVICE_PRINCIPAL .decode ("utf-8" ), flags = ["-k" ])
368
+ server_creds = gb .acquire_cred (server_name , usage = 'both' ).creds
369
+ sctx_res = gb .accept_sec_context (cctx_res .token , server_creds )
370
+ self .assertTrue (gb .inquire_context (sctx_res .context ).complete )
371
+
372
+ imp_resp = gb .acquire_cred_impersonate_name (sctx_res .delegated_creds ,
373
+ server_name )
374
+ self .assertIsInstance (imp_resp , gb .AcquireCredResult )
375
+ self .assertIsInstance (imp_resp .creds , gb .Creds )
376
+ self .assertIn (gb .MechType .kerberos , imp_resp .mechs )
377
+ self .assertIsInstance (imp_resp .lifetime , int )
378
+ self .assertGreater (imp_resp .lifetime , 0 )
373
379
374
380
@ktu .gssapi_extension_test ('s4u' , 'S4U' )
375
381
@ktu .krb_minversion_test ('1.11' ,
0 commit comments