
    b>                     T    d dl Z d dlZd dlmZ d dlmZ dZd Z G d de          ZdS )    N)SambaToolCmdTest)md5WdigestTestUserc                     | d|d|}t          |t                    r|                    d          }| d|dt          |                                          S )N:utf8)
isinstancestrencoder   	hexdigest)userrealmpassworddatas       E/usr/lib/python3/dist-packages/samba/tests/samba_tool/user_wdigest.pycalc_digestr       se    uuuhh/D$ #{{6""uuuc$ii&9&9&;&;&;<<    c                       e Zd ZdZg ZdZ fdZ fdZd)dZd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z* xZ+S )*UserCmdWdigestTestCasea  Tests for samba-tool user subcommands extraction of the wdigest values
       Test results validated against Windows Server 2012 R2.
       NOTE: That as at 22-05-2017 the values Documented at
             3.1.1.8.11.3.1 WDIGEST_CREDENTIALS Construction
             are incorrect.
    Nc           	         t          t          |                                            t          j                                        | _        |                     ddt          j	        d         z  dt          j	        d         dt          j	        d                   | _
        | j
                                        | _        | j
                            | j
                                        d| j
                                        z  d	g
          }t!          |d         d	         d                   | _        |                                 | _        |                     ddt*          | j                  \  }}}|                     |||d           d S )Nz-Hz	ldap://%s	DC_SERVERz-UDC_USERNAMEz%DC_PASSWORDz	ncName=%snETBIOSName)base
expressionattrsr   r   createzEnsure user is created)superr   setUpsambatestsenv_loadparmlpgetSamDBosenvironsamdbdomain_dns_name
dns_domainsearchget_config_basednget_default_basednr
   netbios_domainrandom_passwordr   	runsubcmd	USER_NAMEassertCmdSuccess)selfresresultouterr	__class__s        r   r    zUserCmdWdigestTestCase.setUp2   sh   $d++11333+**,,]]+
; 777*]333*]3356 6
 *4466j--//"TZ%B%B%D%DD /   # # "#a&"7":;;,,..>>&*2*3*.-9 9S 	f!!6	8 	8 	8 	8 	8r   c                     t          t          |                                            |                     ddt                    \  }}}|                     |||d           d S )Nr   deletezEnsure user is deleted)r   r   tearDownr0   r1   r2   )r3   r5   r6   r7   r8   s       r   r;   zUserCmdWdigestTestCase.tearDownI   si    $d++44666>>&(IFFSf!!6	8 	8 	8 	8 	8r   Fc                 p   |                      ddt          d|          \  }}}|                     |||d           |                     |dd           |                     |dd|z             |r|                     ||v           d S |                     |                    dd          |d	|           d S )
Nr   getpasswordz--attributeszEnsure getpassword runs zGot password OKzgetpassword out[%s]z
 z: )r0   r1   r2   assertEqualassertMatch
assertTruereplace)r3   	attributeexpectedmissingr5   r6   r7   s          r   _testWDigestz#UserCmdWdigestTestCase._testWDigestQ   s    !^^F,9,5,:,5	7 7c
 	f!!7	9 	9 	9 	b-000*.4	6 	6 	6  	?OOIS011111S[[33)2HH=? ? ? ? ?r   c                 8    d}|                      |d d           d S )NvirtualWDigestTrF   r3   rC   s     r   test_Wdigest_no_suffixz-UserCmdWdigestTestCase.test_Wdigest_no_suffixg   s%    $	)T400000r   c                 8    d}|                      |d d           d S )NvirtualWDigestssTrI   rJ   s     r   test_Wdigest_non_numeric_suffixz6UserCmdWdigestTestCase.test_Wdigest_non_numeric_suffixk   %    &	)T400000r   c                 8    d}|                      |d d           d S )NvirtualWDigest00TrI   rJ   s     r   test_Wdigest00z%UserCmdWdigestTestCase.test_Wdigest00o   rO   r   c                 v    d}t          t          | j        | j                  }|                     ||           d S )NvirtualWDigest01)r   r1   r.   r   rF   r3   rC   rD   s      r   test_Wdigest01z%UserCmdWdigestTestCase.test_Wdigest01w   sA    &	y#2#}. . 	)X.....r   c                     d}t          t                                          | j                                        | j                  }|                     ||           d S )NvirtualWDigest02)r   r1   lowerr.   r   rF   rU   s      r   test_Wdigest02z%UserCmdWdigestTestCase.test_Wdigest02   W    &	y00#288::#}. . 	)X.....r   c                     d}t          t                                          | j                                        | j                  }|                     ||           d S )NvirtualWDigest03)r   r1   upperr.   r   rF   rU   s      r   test_Wdigest03z%UserCmdWdigestTestCase.test_Wdigest03   r[   r   c                     d}t          t          | j                                        | j                  }|                     ||           d S )NvirtualWDigest04)r   r1   r.   r^   r   rF   rU   s      r   test_Wdigest04z%UserCmdWdigestTestCase.test_Wdigest04   M    &	y#288::#}. . 	)X.....r   c                     d}t          t          | j                                        | j                  }|                     ||           d S )NvirtualWDigest05)r   r1   r.   rY   r   rF   rU   s      r   test_Wdigest05z%UserCmdWdigestTestCase.test_Wdigest05   rc   r   c                     d}t          t                                          | j                                        | j                  }|                     ||           d S )NvirtualWDigest06)r   r1   r^   r.   rY   r   rF   rU   s      r   test_Wdigest06z%UserCmdWdigestTestCase.test_Wdigest06   r[   r   c                     d}t          t                                          | j                                        | j                  }|                     ||           d S )NvirtualWDigest07)r   r1   rY   r.   r^   r   rF   rU   s      r   test_Wdigest07z%UserCmdWdigestTestCase.test_Wdigest07   r[   r   c                 v    d}t          t          | j        | j                  }|                     ||           d S )NvirtualWDigest08)r   r1   r*   r   rF   rU   s      r   test_Wdigest08z%UserCmdWdigestTestCase.test_Wdigest08   s@    &	y##}. . 	)X.....r   c                     d}t          t                                          | j                                        | j                  }|                     ||           d S )NvirtualWDigest09)r   r1   rY   r*   r   rF   rU   s      r   test_Wdigest09z%UserCmdWdigestTestCase.test_Wdigest09   V    &	y00#4466#}. . 	)X.....r   c                     d}t          t                                          | j                                        | j                  }|                     ||           d S )NvirtualWDigest10)r   r1   r^   r*   r   rF   rU   s      r   test_Wdigest10z%UserCmdWdigestTestCase.test_Wdigest10   rs   r   c                     d}t          t          | j                                        | j                  }|                     ||           d S )NvirtualWDigest11)r   r1   r*   r^   r   rF   rU   s      r   test_Wdigest11z%UserCmdWdigestTestCase.test_Wdigest11   L    &	y#4466#}. . 	)X.....r   c                     d}t          t          | j                                        | j                  }|                     ||           d S )NvirtualWDigest12)r   r1   r*   rY   r   rF   rU   s      r   test_Wdigest12z%UserCmdWdigestTestCase.test_Wdigest12   rz   r   c                     d}t          t                                          | j                                        | j                  }|                     ||           d S )NvirtualWDigest13)r   r1   r^   r*   rY   r   rF   rU   s      r   test_Wdigest13z%UserCmdWdigestTestCase.test_Wdigest13   rs   r   c                     d}t          t                                          | j                                        | j                  }|                     ||           d S )NvirtualWDigest14)r   r1   rY   r*   r^   r   rF   rU   s      r   test_Wdigest14z%UserCmdWdigestTestCase.test_Wdigest14  rs   r   c                     d}t           d| j        }t          |d| j                  }|                     ||           d S )NvirtualWDigest15@r>   r1   r*   r   r   rF   r3   rC   namerD   s       r   test_Wdigest15z%UserCmdWdigestTestCase.test_Wdigest15  sP    &	#))T__5t!#}. . 	)X.....r   c                     d}t                                           d| j                                        }t          |d| j                  }|                     ||           d S )NvirtualWDigest16r   r>   )r1   rY   r*   r   r   rF   r   s       r   test_Wdigest16z%UserCmdWdigestTestCase.test_Wdigest16   i    &	#//++++T_-B-B-D-D-DEt!#}. . 	)X.....r   c                     d}t                                           d| j                                        }t          |d| j                  }|                     ||           d S )NvirtualWDigest17r   r>   )r1   r^   r*   r   r   rF   r   s       r   test_Wdigest17z%UserCmdWdigestTestCase.test_Wdigest17+  r   r   c                     d}| j         dt          }t          |d| j                  }|                     ||           d S )NvirtualWDigest18\r>   r.   r1   r   r   rF   r   s       r   test_Wdigest18z%UserCmdWdigestTestCase.test_Wdigest186  sS    &	...		:t!#}. . 	)X.....r   c                     d}| j         dt          }t          |                                d| j                  }|                     ||           d S )NvirtualWDigest19r   r>   )r.   r1   r   rY   r   rF   r   s       r   test_Wdigest19z%UserCmdWdigestTestCase.test_Wdigest19A  [    &	...		:tzz||!#}. . 	)X.....r   c                     d}| j         dt          }t          |                                d| j                  }|                     ||           d S )NvirtualWDigest20r   r>   )r.   r1   r   r^   r   rF   r   s       r   test_Wdigest20z%UserCmdWdigestTestCase.test_Wdigest20L  r   r   c                 l    d}t          t          d| j                  }|                     ||           d S )NvirtualWDigest21Digest)r   r1   r   rF   rU   s      r   test_Wdigest21z%UserCmdWdigestTestCase.test_Wdigest21X  s>    &	y'#}. . 	)X.....r   c                     d}t          t                                          d| j                  }|                     ||           d S )NvirtualWDigest22r   )r   r1   rY   r   rF   rU   s      r   test_Wdigest22z%UserCmdWdigestTestCase.test_Wdigest22c  H    &	y00'#}. . 	)X.....r   c                     d}t          t                                          d| j                  }|                     ||           d S )NvirtualWDigest23r   )r   r1   r^   r   rF   rU   s      r   test_Wdigest23z%UserCmdWdigestTestCase.test_Wdigest23n  r   r   c                     d}t           d| j        }t          |d| j                  }|                     ||           d S )NvirtualWDigest24r   r   r   r   s       r   test_Wdigest24z%UserCmdWdigestTestCase.test_Wdigest24y  sP    &	#))T__5t'#}. . 	)X.....r   c                     d}t           d| j                                        }t          |                                d| j                  }|                     ||           d S )NvirtualWDigest25r   r   )r1   r*   rY   r   r   rF   r   s       r   test_Wdigest25z%UserCmdWdigestTestCase.test_Wdigest25  e    &	#))T_%:%:%<%<%<=tzz||'#}. . 	)X.....r   c                     d}t           d| j                                        }t          |                                d| j                  }|                     ||           d S )NvirtualWDigest26r   r   )r1   r*   rY   r   r^   r   rF   r   s       r   test_Wdigest26z%UserCmdWdigestTestCase.test_Wdigest26  r   r   c                     d}| j         dt          }t          |d| j                  }|                     ||           d S )NvirtualWDigest27r   r   r   r   s       r   test_Wdigest27z%UserCmdWdigestTestCase.test_Wdigest27  sS    &	...		:t'#}. . 	)X.....r   c                     d}| j                                         dt                                          }t          |d| j                  }|                     ||           d S )NvirtualWDigest28r   r   )r.   rY   r1   r   r   rF   r   s       r   test_Wdigest28z%UserCmdWdigestTestCase.test_Wdigest28  j    &	.446666	8I8I8IJt'#}. . 	)X.....r   c                     d}| j                                         dt                                          }t          |d| j                  }|                     ||           d S )NvirtualWDigest29r   r   )r.   r^   r1   r   r   rF   r   s       r   test_Wdigest29z%UserCmdWdigestTestCase.test_Wdigest29  r   r   c                 8    d}|                      |d d           d S )NvirtualWDigest30TrI   rJ   s     r   test_Wdigest30z%UserCmdWdigestTestCase.test_Wdigest30  rO   r   c                 X    d}t          ddd          }|                     ||           d S )Nz*gary:fred:2204fcc247cb47ded249ef2fe0013255garyfredr   )r   r?   )r3   htdigestdigests      r   test_calc_digestz'UserCmdWdigestTestCase.test_calc_digest  s4    ?VVZ886*****r   )F),__name__
__module____qualname____doc__usersr(   r    r;   rF   rK   rN   rR   rV   rZ   r_   rb   rf   ri   rl   ro   rr   rv   ry   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __classcell__)r8   s   @r   r   r   (   sy         EE8 8 8 8 8.8 8 8 8 8? ? ? ?,1 1 11 1 11 1 1/ / // / // / // / // / // / // / // / // / // / // / // / // / // / // / // / // / // / // / // / // / // / // / // / // / // / // / // / // / /1 1 1
+ + + + + + +r   r   )	r&   r!   samba.tests.samba_tool.baser   hashlibr   r1   r   r    r   r   <module>r      s   ( 
			  8 8 8 8 8 8       	= = =]+ ]+ ]+ ]+ ]+- ]+ ]+ ]+ ]+ ]+r   