
    Fc                     "   d dl Z d dlZe j                            d d           dej        d<   d dlZd dlmZ d dlmZm	Z	 d dl
mZ d dlmZ d d	lmZ d d
lmZ d dlmZ dZdZ G d de          Zedk    rdZdZd dlZ ej                     dS dS )    Nz
bin/python1PYTHONUNBUFFERED)SCOPE_SUBTREE)NTSTATUSErrorgensec)AuthContext)security)
ndr_unpack) NT_STATUS_NO_IMPERSONATION_TOKEN)KDCBaseTestFc                   0    e Zd ZdZd Zd Zd Z	 	 d	dZdS )
CcacheTestszbTest for authentication using Kerberos credentials stored in a
       credentials cache file.
    c                 .    |                                   d S )N_run_ccache_testselfs    >/usr/lib/python3/dist-packages/samba/tests/krb5/test_ccache.pytest_ccachezCcacheTests.test_ccache.   s        c                 2    |                      d           d S )NT)renamer   r   s    r   test_ccache_renamezCcacheTests.test_ccache_rename1   s    T*****r   c                 6    |                      ddd           d S )NFT)include_pacexpect_anonallow_errorr   r   s    r   test_ccache_no_paczCcacheTests.test_ccache_no_pac4   s5    %*.D 	 	B 	B 	B 	B 	Br   FTc                 ^   d}d}|                                  }|                     | j        j        d          }|                                }	|                     ||| j        j        |d|          \  }
}|                     ||
|          \  }}|                     t          j
        |j                   |                    t          d|	z  d	g
          }|                     dt          |                     t!          t"          j        |d         d	         d                   }|rr|                                 }t)          j        |                                          }t)          j        |t(          j        d          |d<   |                    |           |                                 }|                    dd           i }||d<   ||d<   t8          j                            |          }|                    |           |                     t8          j!                   |"                    d           tG          ||g           }t8          j        $                    ||          }|                    |
           |"                    d           d}d}d}|r|sV|s'tK          d           |&                    |          \  }}|s'tK          d           |&                    |          \  }}|T|V	 |'                                }nS# tP          $ rF}|s| )                                 |j*        \  }}|                     tV          |           Y d }~d S d }~ww xY w|j,        }|j-        }| .                    t          |          d           |                     ||d                    d S )N	ccachemachostF)account_type	use_cache/)r"   spn)pacz(sAMAccountName=%s)	objectSid)scope
expressionattrs   r   sAMAccountNamezserver rolez"active directory domain controllerlp_ctxtarget_hostnameGSSAPI)r-   ldbmethodsr   zrunning client gensec_updatezrunning server gensec_update)/	get_samdbget_cached_credsAccountTypeUSERget_usernamecreate_accountCOMPUTERcreate_ccache_with_user
addCleanuposremovenamesearchr   assertEquallenr
   r	   dom_sidget_new_usernamer0   Messageget_dnMessageElementFLAG_MOD_REPLACEmodifyget_lpsetr   Securitystart_clientset_credentialswant_featureFEATURE_SEALstart_mech_by_sasl_namer   start_serverprintupdatesession_infor   failargsr   security_tokensidsassertGreater) r   r   r   r   r   	mach_nameservicesamdbuser_credentials	user_namemach_credentials_creds	cachefileldb_ressidnew_namemsglpsettingsgensec_clientauth_contextgensec_serverclient_finishedserver_finishedserver_to_clientclient_to_serversessioneenumtoken
token_sidss                                    r   r   zCcacheTests._run_ccache_test8   s     	    00). 1   %1133	 !% 3 3)2"77$9&	 !4 !' !'	1 "99:J:J>I : K K	 		9>222 ,,]*?)*K&1]  4 4 	CLL))))71:k+B1+EFF 		 ,,..H+.557788C$'$6x7:7K7G%I %IC ! LL
 [[]]
}BCCC&/"#44X>>%%e,,,""6#6777--h777""%DDD44X|LL%%&6777--h777 " 	& 	&" &45556C6J6J$7& 7&3"2" &45556C6J6J$7& 7&3"2 " 	& 	&	#0022GG 	 	 	 		fGD!=tDDDFFFFF	 &Z
3z??A... 	jm,,,,,s   8L 
M;MMN)FTFF)__name__
__module____qualname____doc__r   r   r   r    r   r   r   r   )   sp              + + +B B B :>8=n- n- n- n- n- n-r   r   __main__)sysr;   pathinsertenvironr0   r   sambar   r   
samba.authr   samba.dcerpcr	   	samba.ndrr
   samba.ntstatusr   samba.tests.krb5.kdc_base_testr   global_asn1_printglobal_hexdumpr   rt   unittestmainrx   r   r   <module>r      sA  ( 


 				 <      !$
  



       ' ' ' ' ' ' ' ' " " " " " " ! ! ! ! ! !             ; ; ; ; ; ; 6 6 6 6 6 6 }- }- }- }- }-+ }- }- }-@ zNOOOHMOOOOO	 r   