
    bg                         d dl Z d dlZd dlZd dlZd dl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 dlmZ d dlmZ d dlZd	Zd
Zd Z G d de          ZdS )    N)SambaToolCmdTest)Credentials)SamDB)system_session)
ndr_unpack)drsblobs)dsdbCryptSHATestUserz"password hash userPassword schemesc                     t          j        d|z   dz             }|                     d          D ]0}|                    |          }|r|                    d          c S 1dS )N^z	:\s+(\S+)
    )recompilesplitmatchgroup)outnameplinems        R/usr/lib/python3/dist-packages/samba/tests/samba_tool/user_virtualCryptSHA_base.py_get_attributer   )   sj    

3:+,,A		$  GGDMM 	771::	2    c                   J     e Zd ZdZg ZdZ fdZd
dZ fdZddZ	d	 Z
 xZS )UserCmdCryptShaTestCasezz
    Tests for samba-tool user subcommands generation of the virtualCryptSHA256
    and virtualCryptSHA512 attributes
    Nc                 V    t          t          |                                            d S )N)superr   setUpself	__class__s    r   r!   zUserCmdCryptShaTestCase.setUp:   s&    %t,,2244444r   r   c                    t           j                                        | _        | j                            t
          |           t                      | _        t                      | _	        t          | j	        | j        | j                  | _        |                                 }|                     ddt          |           d S )N)session_infocredentialslpusercreate)sambatestsenv_loadparmr(   setHASH_OPTIONr   credsr   sessionr   ldbrandom_password	runsubcmd	USER_NAME)r#   hashespasswords      r   add_userz UserCmdCryptShaTestCase.add_user=   s    +**,, 	K((( ]]
%''
w  
 ''))v 	! 	! 	! 	! 	!r   c                     t          t          |                                            |                     ddt                     d S )Nr)   delete)r    r   tearDownr4   r5   r"   s    r   r;   z UserCmdCryptShaTestCase.tearDownP   s<    %t,,55777vx33333r   Fc                     ddt           d|g}|r|                    d            | j        | \  }}}|                     |||d           |                     |dd           |                     |dd|z             |S )	Nr)   getpasswordz--attributesz--decrypt-samba-gpgzEnsure getpassword runsr   zGot password OKzgetpassword out[%s])r5   appendr4   assertCmdSuccessassertEqualassertMatch)r#   
attributesdecryptcommandresultr   errs          r   _get_passwordz%UserCmdCryptShaTestCase._get_passwordT   s     !	
  	2NN0111+T^W5cf!!7	9 	9 	9 	b-000*.4	6 	6 	6 
r   c                 F   | j                             dt          z  t           j                  }t          j                    }|d         j        |_        t          j        dt           j        d          |d<   | j                             |dt          j
        z  g           d S )Nzcn=%s)
expressionscoper   s   ABCDEF1234567890
unicodePwdzlocal_oid:%s:0)controls)r2   searchr5   SCOPE_SUBTREEMessagednMessageElementFLAG_MOD_REPLACEmodifyr	   %DSDB_CONTROL_BYPASS_PASSWORD_HASH_OID)r#   resmsgs      r   _change_nt_hashz'UserCmdCryptShaTestCase._change_nt_hashk   s    hoo7Y+>+.+<  > >kmmQ./B/2/C/;= =L 	&@A B 	 	C 	C 	C 	C 	Cr   )r   )F)__name__
__module____qualname____doc__userssamdbr!   r8   r;   rG   rW   __classcell__)r$   s   @r   r   r   2   s          EE5 5 5 5 5! ! ! !&4 4 4 4 4   .C C C C C C Cr   r   )ostimebase64r2   r+   samba.tests.samba_tool.baser   samba.credentialsr   samba.samdbr   
samba.authr   	samba.ndrr   samba.dcerpcr   r	   r   r5   r/   r   r    r   r   <module>ri      s  & 
			   



  8 8 8 8 8 8 ) ) ) ) ) )       % % % % % %             ! ! ! ! ! !       					2  DC DC DC DC DC. DC DC DC DC DCr   