
    K}bg/                         d Z ddlmZ ddlZddlZddlmZmZ ddlm	Z	m
Z
  G d de	          Z G d d	e	          Z G d
 de	          ZdS )a  
passlib.tests -- tests for passlib.utils.pbkdf2

.. warning::

    This module & it's functions have been deprecated, and superceded
    by the functions in passlib.crypto.  This file is being maintained
    until the deprecated functions are removed, and is only present prevent
    historical regressions up to that point.  New and more thorough testing
    is being done by the replacement tests in ``test_utils_crypto.py``.
    )with_statementN)uJYTHON)TestCasehbc                   <     e Zd ZdZdZddgZg dZ fdZd Z xZ	S )	UtilsTestztest various utils functionszpasslib.utils.pbkdf2hashlibiana))md5r   zSCRAM-MD5-PLUSzMD-5)sha1zsha-1zSCRAM-SHA-1SHA1)sha256zsha-256SHA_256zsha2-256)	ripemd160z
ripemd-160zSCRAM-RIPEMD-160	RIPEmd160ripemdzSCRAM-RIPEMD)test128ztest-128TEST128)test2r   zTEST-2)	test3_128z	test3-128z
TEST-3-128c                     t          t          |                                            t          j        ddt
                     d S Nignorez".*passlib.utils.pbkdf2.*deprecated)superr	   setUpwarningsfilterwarningsDeprecationWarningself	__class__s    r/home/e360mart.nyusoft.in/public_html/e360mart_env/lib/python3.11/site-packages/passlib/tests/test_utils_pbkdf2.pyr   zUtilsTest.setUp/   s<    i$$&&&*NPbccccc    c                    ddl m} ddlm} ddlm} | j        D ]} |d|           |                     t          |dd           |                     t          |dd           | 	                     |t          d                    d           | 	                     |d	          d           |                     t          |d           t          j                    5  t          j        d
d            ||| j                  D ]S}t!          | j                  D ]<\  }}||         }|D ],} |||          }	| 	                    |	|d|d|d           -=T	 ddd           dS # 1 swxY w Y   dS )znorm_hash_name()r   )chain)norm_hash_name)_known_hash_namesmd4NfakeMD4s   MD4r   z.*unknown hashzname=z	, format=:)	itertoolsr&   passlib.utils.pbkdf2r'   passlib.crypto.digestr(   ndn_formatsassertRaises
ValueErrorassertEqualr   	TypeErrorr   catch_warningsr   
ndn_values	enumerate)
r!   r&   r'   r(   formatrowidxcorrectvalueresults
             r#   test_norm_hash_namezUtilsTest.test_norm_hash_name3   sJ   ######777777;;;;;; & 	* 	*FN5&))))*neTBBB*neVDDD 	%115999//777)^T::: $&& 		K 		K#H.>???u.@@ K K#,T-=#>#> K KKC!#hG!$ K K!/v!>!>((BG%%BH&&*JK K K KKKK		K 		K 		K 		K 		K 		K 		K 		K 		K 		K 		K 		K 		K 		K 		K 		K 		K 		Ks   A;E&&E*-E*)
__name__
__module____qualname____doc__descriptionPrefixr0   r6   r   r>   __classcell__r"   s   @r#   r	   r	      sz        &&.f%K  Jd d d d dK K K K K K Kr$   r	   c                   V    e Zd ZdZdZd ed          ddd ed          fd	dd
ddd ed          fdd
ddd ed          fdd
ddd ed          fdd
ddd ed          fdd
ddd ed          fgZes$e                    dd
ddd ed          f            fdZ	d Z
d Z xZS )Pbkdf1_Testztest kdf helperszpasslib.utils.pbkdf2.pbkdf1()   password78578E5A5D63CB06     r    dc19847e05c64d2faf10ebfb4a3d2a20)rH      saltrJ   r   r   r$   rM      r   84   8475c6a8531a5d27 8475c6a8531a5d27e386cd496457812cN(4a8fd48e426ed081b535be5769892fa396293efbr)    f7f2e91100a8f96190f2dd177cb26453c                     t          t          |                                            t          j        ddt
                     d S r   )r   rG   r   r   r   r   r    s    r#   r   zPbkdf1_Test.setUpn   <    k4  &&(((*NPbcccccr$   c                 ~    ddl m} | j        D ].\  }}}}}} ||||||          }|                     ||           /dS )test reference vectorsr   pbkdf1N)r.   rZ   pbkdf1_testsr3   )	r!   rZ   secretsaltroundskeylendigestr;   r=   s	            r#   
test_knownzPbkdf1_Test.test_knownr   sm    //////=A=N 	. 	.9FD&&&'VFD&&&AAFVW----	. 	.r$   c                    ddl m dfd	} |             |                     t          |d           |                     t          |d	           |                     t          |d
           |                     t          |d           |                     t          |d           |                     t          |d           |                     t          |dd           |                     t          |d           dS )test border casesr   rY      secretrM   rN   r   c                 "     | ||||          S N )r\   r]   r^   r_   hashrZ   s        r#   helperz'Pbkdf1_Test.test_border.<locals>.helper|   s    6&$===r$   r\   r]   missing)rh   r^   1r_      )r_   rh   N)rd   rM   rN   rN   r   )r.   rZ   r1   r4   r2   )r!   ri   rZ   s     @r#   test_borderzPbkdf1_Test.test_bordery   s&   //////	> 	> 	> 	> 	> 	> 	)VA666)V!444 	*f9=== 	*fQ777)VC888 	*fR888*fReDDD)VC88888r$   )r?   r@   rA   rB   rC   r   r[   r   appendr   ra   rr   rD   rE   s   @r#   rG   rG   S   s\       7 
bb+,,dBCe@f@fg
 	7	gtQ""T((;	gtQ""5G2H2HI	gtR3U0V0VW	gtT5""5W2X2XY	gtT6226`3a3ab!L$  
'4ubb9[6\6\]	
 	
 	
d d d d d. . .9 9 9 9 9 9 9r$   rG   c                       e Zd ZdZdZ ed          ddddf ed          ddd	df ed
          ddd	df ed          ddddf ed          ddddf ed          ddddf ed          ddddf ed          ddddf ed          ddd	df ed          ddddf ed          dddd f ed!          d"d#ddf ed$          d% ed&          d'd(d)f ed*          d+dd,dd-f ed.          d+dd,d/d-fgZ fd0Zd1 Zd2 Z	d3 Z
d4 Z xZS )5Pbkdf2_Testztest pbkdf2() supportzpasslib.utils.pbkdf2.pbkdf2() cdedb5281bb2f801565a1122b2563515rH   s   ATHENA.MIT.EDUraeburnrN   rK    01dbee7f4a9e243e988b62c73cda935d   @01dbee7f4a9e243e988b62c73cda935da05378b93244ec8f48a99e61ad799d86    @5c08eb61fdf71e4e4ec3cf6ba1f5512ba7e52ddbc5e5142f708a31e2e62b1e13i  @d1daa78615f287e6a1c8b120d7062a493f98d203e6be49a6adf4fa574b6e64ees   4VxxV4   @139c30c0966bc32ba55fdbf212530ac9c5ec59f1a452f5cc9ad940fea0598ed1s@   XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXs   pass phrase equals block size@9ccad6d468770cd51b10e6a68721be611a8b4d282601db3b36be9246915ec82asA   XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXs   pass phrase exceeds block size(0c60c80f961f0e71f3a9b524af6012062fe037a6rM      (ea6c014dc72d6f8ccd1ed92ace1d41f0d8de8957(4b007901b765489abead49d926f721d065a429c1i   23d2eec4fe41c849b80c8d83662c0e44a8b291a964cf2f07038s   passwordPASSWORDpasswords$   saltSALTsaltSALTsaltSALTsaltSALTsalt    56fa6aa75548099dcc37d7f03425e0c3s	   pass words   sa ltڀ887CFF169EA8335235D8004242AA7D6187A41E3187DF0CE14E256D85ED97A97357AAA8FF0A3871AB9EEFF458392F462F495487387F685B7472FC6C29E293F0A0s   helloڀ9290F727ED06C38BA4549EF7DE25CF5642659211B7FC076F2D28FEFD71784BB8D8F6FB244A8CC5C06240631B97008565A120764C0EE9C2CB0073994D79080136i'  @   zhmac-sha512 e248fb6b13365146f8ac6307cc222812rd   
   	hmac-sha1(e248fb6b13365146f8ac6307cc2228127872da6dNc                     t          t          |                                            t          j        ddt
                     d S r   )r   ru   r   r   r   r   r    s    r#   r   zPbkdf2_Test.setUp	  rV   r$   c                     ddl m} | j        D ]T}|dd         \  }}}}}t          |          dk    r|d         nd} ||||||          }	|                     |	|           UdS )rX   r   pbkdf2Nr}      r   )r.   r   pbkdf2_test_vectorslenr3   )
r!   r   r9   r;   r\   r]   r^   r_   prfr=   s
             r#   ra   zPbkdf2_Test.test_known  s    //////+ 	. 	.C47G1GVT66HHMM#a&&{CVFD&&#>>FVW----		. 	.r$   c                    ddl m dfd	} |             |                     t          |d	
           |                     t          |d
           |                     t          |d
           |                     t          |d	           |                     t          |d            |d           |                     t
          |d           |                     t          |d           |                     t          |d           |                     t          |d           |                     t          |d           |                     t          |d           |                     t          |d           dS )rc   r   r   rH   rM   rN   Nr   c                 "     | ||||          S rf   rg   r\   r]   r^   r_   r   r   s        r#   ri   z'Pbkdf2_Test.test_border.<locals>.helper      6&$<<<r$   ro   rm   xrp   l   O r}   rk   rj   zhmac-foor   foorH   rM   rN   Nr   )r.   r   r1   r2   r4   OverflowErrorNotImplementedErrorr!   ri   r   s     @r#   rr   zPbkdf2_Test.test_border  s   //////	= 	= 	= 	= 	= 	= 	*fR888*fQ777)VC888 	*fR888*fQ777a-GGG)VC888 	)V!444)VA666 	*f*===-v5AAA)V33333r$   c                     ddl m dfd	}|                     t           |d	                    d
           |                     t           |d	                    d           dS )ztest keylen==Noner   r   rH   rM   rN   Nr   c                 "     | ||||          S rf   rg   r   s        r#   ri   z/Pbkdf2_Test.test_default_keylen.<locals>.helper5  r   r$   r   r   zhmac-sha256rz   r   )r.   r   r3   r   r   s     @r#   test_default_keylenzPbkdf2_Test.test_default_keylen2  s    //////	= 	= 	= 	= 	= 	=VV44455r:::VV66677<<<<<r$   c           	      X    ddl m} d }|                     t          |dddd|           dS )	ztest custom prf functionr   r   c                 Z    t          j        | |z   dz                                             S )Ns   fooey)r
   r   r`   )keymsgs     r#   r   z(Pbkdf2_Test.test_custom_prf.<locals>.prf=  s'    ;s3wx/0077999r$   rd   rM   rJ   r   N)r.   r   r1   r   )r!   r   r   s      r#   test_custom_prfzPbkdf2_Test.test_custom_prf:  sL    //////	: 	: 	:-vy'4QSUXYYYYYr$   )r?   r@   rA   rB   rC   r   r   r   ra   rr   r   r   rD   rE   s   @r#   ru   ru      s       7 5665q" 5665q" UVV5q" UVV5tR UVV@!R UVV94 UVV:D" =>>Wa =>>Wa =>>WdB GHH+7b	 566
D" r ! " " r ! " " b-	 5667BK
 =>>7BkWp
dd d d d d. . .4 4 48= = =Z Z Z Z Z Z Zr$   ru   )rB   
__future__r   r
   r   passlib.utils.compatr   r   passlib.tests.utilsr   r   r	   rG   ru   rg   r$   r#   <module>r      s  
 
 & % % % % %   + * * * * * * * , , , , , , , ,
2K 2K 2K 2K 2K 2K 2K 2Kn;9 ;9 ;9 ;9 ;9( ;9 ;9 ;9@lZ lZ lZ lZ lZ( lZ lZ lZ lZ lZr$   