
    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	c m
c mZ d dlmZ d dlmZmZmZ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)delete_force)KDCBaseTest)AES256_CTS_HMAC_SHA1_96ARCFOUR_HMAC_MD5KDC_ERR_TGT_REVOKEDNT_PRINCIPALFc                   >    e Zd Zd Zd Zd	dZd Zd Zd	dZd	dZ	dS )

AliasTestsc                 2    |                      d           d S Nrenameaction_run_dc_aliasselfs    >/usr/lib/python3/dist-packages/samba/tests/krb5/alias_tests.pytest_dc_alias_renamezAliasTests.test_dc_alias_rename+       (+++++    c                 2    |                      d           d S Ndeleter   r   r   s    r   test_dc_alias_deletezAliasTests.test_dc_alias_delete.   r   r   Nc                     |                                                                  d d         }|                     |fd|           d S )Nc                       S N )target_credss   r   <lambda>z*AliasTests._run_dc_alias.<locals>.<lambda>5   s    \ r   r   )get_dc_credsget_username
_run_alias)r   r   target_namer#   s      @r   r   zAliasTests._run_dc_alias1   sV    ((**"//11#2#6%9%9%9%9&IIIIIr   c                 2    |                      d           d S r   _run_create_aliasr   s    r   test_create_alias_renamez#AliasTests.test_create_alias_rename7       h/////r   c                 2    |                      d           d S r   r*   r   s    r   test_create_alias_deletez#AliasTests.test_create_alias_delete:   r-   r   c                 n                                        fd}                     ||           d S )Nc                                                       } |                                                                 } d| }d| }d|i}                    | j        j        ||          \  }}|S )N.zldap/dNSHostName)account_typespnadditional_details)	get_samdbdomain_dns_namelowercreate_accountAccountTypeCOMPUTER)	samdbrealmhostnamer5   detailscredsfnr   r(   s	          r   create_targetz3AliasTests._run_create_alias.<locals>.create_target@   s    NN$$E))++1133E%////H$($$C xG ++!-6#* , , ,IE2 Lr   r   )get_new_usernamer'   )r   r   rC   r(   s   `  @r   r+   zAliasTests._run_create_alias=   sS    ++--	 	 	 	 	 	* 	]6BBBBBr   c                 @                                      }                                 }                     || j        j                  \  }}                     t          ||                                ||          }|                                |	                                }	|
                    |	           t          j        t          j        ||                    }
t          j        |t          j        d          |
d<   |                    |
           |                    |                                |dd                               j        d                   }| d                                 }                     |t/          |j                                                  ||j                                        ||j                                        ||j                                        |j                   |dk    rt                                 }t          j        t          j        ||                    }
t          j        |t          j        d          |
d<   |                    |
           n1|d	k    r|                    |           n                     |            |            }|                                }|                     |t          j!        d
g          }t/          |d         "                    d
d                    } #                    tH          d|g          } #                    tH          |g           %                    |          } &                    tN          j(        j)                  }tT          tV          f} fd}tX          } -                    |||| j.         j/        |ddd          } 0                    |d ||          } 1                    ||           d S )N)r4   sAMAccountName0T)kdc_optionsfreshzauthorization-data@r   r   r3   )scopeattrsr   )idxldap)	name_typenamesc                 J                         j        d           }|g|fS )N)namer>   tgt_session_keyctype)PA_S4U2Self_createsession_key)_kdc_exchange_dict_callback_dictreq_bodypadatar>   r   target_cnametgts       r   generate_s4u2self_padataz7AliasTests._run_alias.<locals>.generate_s4u2self_padata   s;     ,,,38=@_37 - 9 9F 8X%%r   F)expected_crealmexpected_cnameexpected_srealmexpected_snameticket_decryption_keygenerate_padata_fnexpected_error_modecheck_error_fncheck_kdc_private_fnr\   authenticator_subkeyrH   
expect_pacexpect_edata)cnamer>   snameetypes)2r7   rD   r:   r;   r<   
addCleanupr   get_objectSid	get_realmget_saltset_forced_saltldbMessageDnMessageElementFLAG_MOD_REPLACEmodifyset_usernameget_tgtget_pac_dataticket_privater9   assertEqualstraccount_nameaccount_sid
logon_nameupndomain_namer   failget_dnsearch
SCOPE_BASEgetPrincipalName_creater
   TicketDecryptionKey_from_creds	RandomKeykcryptoEnctypeAES256r   r   r	   tgs_exchange_dictgeneric_check_kdc_errorgeneric_check_kdc_private_generic_kdc_exchangecheck_error_rep)r   r(   target_creds_fnr   r=   	mach_name
mach_credsmach_dnmach_sidold_saltmsgpac_datar   
mach_name2r#   	target_dnrestarget_hostnamerk   target_decryption_keyrg   rl   r]   rd   kdc_exchange_dictrepr>   r[   r\   s   `                         @@@r   r'   zAliasTests._run_aliasW   sX     ))++	 #1194+;+D 2 F F
GeW555%%eW55$$&& &&((""8,,, k#&0011 # 2;363G3C!E !E 	S,,, ll:3dlCC $$S%78L%MNN..u{{}}..c(*?&@&@AAA8#7888h&9:::hl+++ 4555 X..00J+cfUG4455C$'$6z7:7K7G%I %IC ! LLxLL!!!!IIf '(( !''))	ll9!$"/  2 2 c!fjjAj>>??))L170I * K K00<8C} 1 F F !% C C! !  $~~go.DEE)+;<	& 	& 	& 	& 	& 	& 	& 	& 2 !22!'! "77 37!%!?!5 3      (():/3/4/406	 ) 8 8
 	S"566666r   r!   )
__name__
__module____qualname__r   r   r   r,   r/   r+   r'   r"   r   r   r   r   *   s        , , ,, , ,J J J J0 0 00 0 0C C C C4l7 l7 l7 l7 l7 l7r   r   __main__)sysospathinsertenvironrr   samba.testsr   samba.tests.krb5.kcryptotestskrb5r   samba.tests.krb5.kdc_base_testr   "samba.tests.krb5.rfc4120_constantsr   r   r	   r
   global_asn1_printglobal_hexdumpr   r   unittestmainr"   r   r   <module>r      sC  ( 


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



 $ $ $ $ $ $ * * * * * * * * * * * * 6 6 6 6 6 6             Y7 Y7 Y7 Y7 Y7 Y7 Y7 Y7x zNOOOHMOOOOO	 r   