
    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mZ d dl	m
Z
 d dlmZ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)NTSTATUSErrorcredentials)lsa)NT_STATUS_ACCESS_DENIED NT_STATUS_NO_IMPERSONATION_TOKEN)KDCBaseTestFc                   6    e Zd ZdZd Zd Zd Z	 	 d
dZd Zd	S )RpcTestszfTest for RPC authentication using Kerberos credentials stored in a
       credentials cache file.
    c                 .    |                                   d S )N_run_rpc_testselfs    ;/usr/lib/python3/dist-packages/samba/tests/krb5/test_rpc.pytest_rpczRpcTests.test_rpc.   s        c                 2    |                      d           d S )NT)renamer   r   s    r   test_rpc_renamezRpcTests.test_rpc_rename1   s    $'''''r   c                 6    |                      ddd           d S )NFT)include_pacexpect_anonallow_errorr   r   s    r   test_rpc_no_paczRpcTests.test_rpc_no_pac4   s0    u'+ 	 	? 	? 	? 	? 	?r   FTc                    |                                  }| j        }d}|                     | j        j        d          }|                                }	|                                 }
|                     ||
|||          \  }}|                     t          j
        |j                   |rr|                                 }t          j        |                                          }t          j        |t          j        d          |d<   |                    |           d|z  }	 t'          j        ||                                 |          }nZ# t,          $ rM}|s|                                  |j        \  }}|                     |t4          t6          h           Y d }~d S d }~ww xY w|                    d d d           \  }}|r|                     |	|j                   d S |                     |	|j                   d S )NcifsF)account_type	use_cache)pacsAMAccountNamencacn_np:%s[\pipe\lsarpc]) 	get_samdbhostget_cached_credsAccountTypeUSERget_usernameget_server_credscreate_ccache_with_user
addCleanuposremovenameget_new_usernameldbMessageget_dnMessageElementFLAG_MOD_REPLACEmodifyr   lsarpcget_lpr   failargsassertInr   r	   GetUserNameassertNotEqualstringassertEqual)r   r   r   r   r   samdb	mach_nameserviceuser_credentials	user_namemach_credentialscreds	cachefilenew_namemsgbinding_strconneenum_account_names                        r   r   zRpcTests._run_rpc_test8   s.      I	  00). 1   %1133	0022 "99:J:J:A:C>I	 : K K	 		9>222 		 ,,..H+.557788C$'$6x7:7K7G%I %IC ! LL
 4i?		:k4;;==%@@DD 	 	 	 		fGD!MM$!8!A!C D D DFFFFF	 !,,T4>>q 	=	<+>?????Y(;<<<<<s   #(E 
F#AFF#c                 J   | j         }t          j                    }|                                 d|z  }t	          j        ||                                 |          }|                    d d d           \  }}|                     d|j	        
                                           d S )Nr#   zANONYMOUS LOGON)r%   r   Credentialsset_anonymousr   r7   r8   r<   r?   r>   upper)r   rA   
anon_credsrJ   rK   rO   rN   s          r   test_rpc_anonymouszRpcTests.test_rpc_anonymousx   s    I	 ,..
  """3i?z+t{{}}jAA ,,T4>>q*L,?,E,E,G,GHHHHHr   N)FTFF)	__name__
__module____qualname____doc__r   r   r   r   rU    r   r   r   r   )   s|           ( ( (? ? ? 7;5:>= >= >= >=@I I I I Ir   r   __main__)sysr-   pathinsertenvironr1   sambar   r   samba.dcerpcr   samba.ntstatusr   r	   samba.tests.krb5.kdc_base_testr
   global_asn1_printglobal_hexdumpr   rV   unittestmainrZ   r   r   <module>rh      s+  ( 


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



 , , , , , , , ,             
 7 6 6 6 6 6 ZI ZI ZI ZI ZI{ ZI ZI ZIz zNOOOHMOOOOO	 r   