
     h/                         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y)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
               y Nignorez".*passlib.utils.pbkdf2.*deprecated)superr	   setUpwarningsfilterwarningsDeprecationWarningself	__class__s    a/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/passlib/tests/test_utils_pbkdf2.pyr   zUtilsTest.setUp/   s$    i$&*NPbc    c                    ddl m} ddlm} ddlm} | j                  D ]  } |d|        | j                  t        |dd       | j                  t        |dd       | j                   |t        d            d       | j                   |d	      d       | j                  t        |d       t        j                         5  t        j                  d
d        ||| j                        D ]N  }t!        | j                        D ]4  \  }}||   }|D ]%  } |||      }	| j                  |	|d|d|d       ' 6 P 	 ddd       y# 1 sw Y   yxY w)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   sP   #7; && 	*F5&)	**neTB*neVD 	%159/7)^T: $$& 		K##H.>?.@ K#,T-=-=#> KKC!#hG!$ K!/v!>((BGBH*JKKKK		K 		K 		Ks   A;EE)
__name__
__module____qualname____doc__descriptionPrefixr0   r6   r   r>   __classcell__r"   s   @r#   r	   r	      s)    &.f%KJdKr$   r	   c                       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j                  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
               y r   )r   rG   r   r   r   r   r    s    r#   r   zPbkdf1_Test.setUpn   $    k4&(*NPbcr$   c                 |    ddl m} | j                  D ]'  \  }}}}}} ||||||      }| j                  ||       ) y)test reference vectorsr   pbkdf1N)r.   rZ   pbkdf1_testsr3   )	r!   rZ   secretsaltroundskeylendigestr;   r=   s	            r#   
test_knownzPbkdf1_Test.test_knownr   sI    /=A=N=N 	.9FD&&&'FD&&&AFVW-	.r$   c                    ddl m dfd	} |        | j                  t        |d       | j                  t        |d       | j                  t        |d	       | j                  t        |d
       | j                  t        |d
       | j                  t        |d       | j                  t        |dd       | j                  t        |d       y)test border casesr   rY   rN   r   c                      | ||||      S N )r\   r]   r^   r_   hashrZ   s        r#   helperz'Pbkdf1_Test.test_border.<locals>.helper|   s    &$==r$   r\   r]   missing)rg   r^   1r_      )r_   rg   N)   secretrM   rN   rN   r   )r.   rZ   r1   r4   r2   )r!   rh   rZ   s     @r#   test_borderzPbkdf1_Test.test_bordery   s    /	> 	)VA6)V!4 	*f9= 	*fQ7)VC8 	*fR8*fReD)VC8r$   )r?   r@   rA   rB   rC   r   r[   r   appendr   ra   rr   rD   rE   s   @r#   rG   rG   S   s    7 
b+,dBCe@fg
 	7	gtQ"T(;	gtQ"5G2HI	gtR3U0VW	gtT5"5W2XY	gtT626`3ab!L$ '4ub9[6\]	
d.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 e248fb6b13365146f8ac6307cc222812rq   
   	hmac-sha1(e248fb6b13365146f8ac6307cc2228127872da6dNc                 `    t         t        |           t        j                  ddt
               y r   )r   ru   r   r   r   r   r    s    r#   r   zPbkdf2_Test.setUp	  rV   r$   c                     ddl m} | j                  D ]@  }|dd \  }}}}}t        |      dk(  r|d   nd} ||||||      }	| j	                  |	|       B y)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  sg    /++ 	.C47G1GVT66HM#a&{CFD&&#>FVW-		.r$   c                 ~   ddl m dfd	} |        | j                  t        |d       | j                  t        |d       | j                  t        |d       | j                  t        |d	       | j                  t        |d	        |d	       | j                  t
        |d
	       | j                  t        |d	       | j                  t        |d       | j                  t        |d       | j                  t        |d       | j                  t        |d       | j                  t        |d       y)rc   r   r   rN   Nc                      | ||||      S re   rf   r\   r]   r^   r_   r   r   s        r#   rh   z'Pbkdf2_Test.test_border.<locals>.helper      &$<<r$   rn   rl   xro   l   O r}   rj   ri   zhmac-foor   foorH   rM   rN   Nr   )r.   r   r1   r2   r4   OverflowErrorNotImplementedErrorr!   rh   r   s     @r#   rr   zPbkdf2_Test.test_border  s   /	= 	*fR8*fQ7)VC8 	*fR8*fQ7a-G)VC8 	)V!4)VA6 	*f*=-v5A)V3r$   c                     ddl m d
fd	}| j                  t         |d            d       | j                  t         |d            d	       y)ztest keylen==Noner   r   Nr   c                      | ||||      S re   rf   r   s        r#   rh   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?    /	=V45r:V67<r$   c           	      L    ddl m} d }| j                  t        |dddd|       y)	ztest custom prf functionr   r   c                 T    t        j                  | |z   dz         j                         S )Ns   fooey)r
   r   r`   )keymsgs     r#   r   z(Pbkdf2_Test.test_custom_prf.<locals>.prf=  s#    ;;s3wx/07799r$   rq   rM   rJ   r   N)r.   r   r1   r   )r!   r   r   s      r#   test_custom_prfzPbkdf2_Test.test_custom_prf:  s'    /	:-vy'4QSUXYr$   )r?   r@   rA   rB   rC   r   r   r   ra   rr   r   r   rD   rE   s   @r#   ru   ru      s   7 565q" 565q" UV5q" UV5tR UV@!R UV94 UV:D" =>Wa =>Wa =>WdB GH+7b	 56
D"  ! "  ! " b-	 567BK
 =>7BkWp
dd.48=Zr$   ru   )rB   
__future__r   r
   r   passlib.utils.compatr   r   passlib.tests.utilsr   r   r	   rG   ru   rf   r$   r#   <module>r      sI   
 &   + ,
2K 2Kn;9( ;9@lZ( lZr$   