o
    _6d/                     @   st   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 de	ZG dd	 d	e	ZG d
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                       s<   e Zd ZdZdZddgZg dZ fddZdd	 Z  Z	S )
	UtilsTestztest various utils functionszpasslib.utils.pbkdf2hashlibZiana))md5r	   zSCRAM-MD5-PLUSzMD-5)sha1zsha-1zSCRAM-SHA-1SHA1)sha256zsha-256ZSHA_256zsha2-256)Z	ripemd160z
ripemd-160zSCRAM-RIPEMD-160Z	RIPEmd160ZripemdzSCRAM-RIPEMD)Ztest128ztest-128ZTEST128)test2r   zTEST-2)Z	test3_128z	test3-128z
TEST-3-128c                        t t|   tddt d S Nignorez".*passlib.utils.pbkdf2.*deprecated)superr   setUpwarningsfilterwarningsDeprecationWarningself	__class__ vC:\Users\jesus\OneDrive\Desktop\erpjis_fastapi\backend\jisbackend\Lib\site-packages\passlib/tests/test_utils_pbkdf2.pyr   /      zUtilsTest.setUpc           
      C   s  ddl m} ddlm} ddlm} | jD ]}|d| q| t|dd | t|dd | 	|t
dd | 	|d	d | t|d t ; td
d ||| jD ]%}t| jD ]\}}|| }|D ]}|||}	| 	|	|d||f  qhq^qWW d   dS 1 sw   Y  dS )znorm_hash_name()r   )chain)norm_hash_name)_known_hash_namesmd4NZfakeZMD4s   MD4r   z.*unknown hashzname=%r, format=%r:)	itertoolsr   passlib.utils.pbkdf2r   Zpasslib.crypto.digestr   ndn_formatsassertRaises
ValueErrorassertEqualr   	TypeErrorr   catch_warningsr   
ndn_values	enumerate)
r   r   r   r   formatrowidxcorrectvalueresultr   r   r   test_norm_hash_name3   s4   


"zUtilsTest.test_norm_hash_name)
__name__
__module____qualname____doc__descriptionPrefixr#   r)   r   r1   __classcell__r   r   r   r   r      s    r   c                       s   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sRedd
dddedf  fddZ	dd Z
dd Z  ZS )Pbkdf1_Testztest kdf helperszpasslib.utils.pbkdf2.pbkdf1()   passwordZ78578E5A5D63CB06     r
   Z dc19847e05c64d2faf10ebfb4a3d2a20)r9      saltr:   r   r	       r<      r	   Z84   Z8475c6a8531a5d27Z 8475c6a8531a5d27e386cd496457812cNZ(4a8fd48e426ed081b535be5769892fa396293efbr    Z f7f2e91100a8f96190f2dd177cb26453c                    r   r   )r   r8   r   r   r   r   r   r   r   r   r   n   r   zPbkdf1_Test.setUpc           	      C   sD   ddl m} | jD ]\}}}}}}||||||}| || q	dS )test reference vectorsr   pbkdf1N)r"   rB   pbkdf1_testsr&   )	r   rB   secretsaltroundskeylendigestr.   r0   r   r   r   
test_knownr   s
   zPbkdf1_Test.test_knownc                    s   ddl m  d fdd	}|  | jt|dd	 | jt|dd
 | jt|dd | jt|dd | jt|dd | jt|dd | jt|ddd | jt|dd dS )test border casesr   rA      secretr<   r>   r	   c                        | ||||S Nr   )rD   rE   rF   rG   hashrA   r   r   helper|      z'Pbkdf1_Test.test_border.<locals>.helperrD   rE   missing)rN   rF   1rG      )rG   rN   N)rK   r<   r>   r>   r	   )r"   rB   r$   r'   r%   r   rO   r   rA   r   test_bordery   s   zPbkdf1_Test.test_border)r2   r3   r4   r5   r6   r   rC   r   appendr   rI   rZ   r7   r   r   r   r   r8   S   s$    r8   c                       sB  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d0d1Zd2d3 Zd4d5 Z	d6d7 Z
d8d9 Z  ZS ):Pbkdf2_Testztest pbkdf2() supportzpasslib.utils.pbkdf2.pbkdf2()Z cdedb5281bb2f801565a1122b2563515r9   s   ATHENA.MIT.EDUraeburnr>   r;   Z 01dbee7f4a9e243e988b62c73cda935d   Z@01dbee7f4a9e243e988b62c73cda935da05378b93244ec8f48a99e61ad799d86    Z@5c08eb61fdf71e4e4ec3cf6ba1f5512ba7e52ddbc5e5142f708a31e2e62b1e13i  Z@d1daa78615f287e6a1c8b120d7062a493f98d203e6be49a6adf4fa574b6e64ees   4VxxV4   Z@139c30c0966bc32ba55fdbf212530ac9c5ec59f1a452f5cc9ad940fea0598ed1s@   XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXs   pass phrase equals block sizeZ@9ccad6d468770cd51b10e6a68721be611a8b4d282601db3b36be9246915ec82asA   XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXs   pass phrase exceeds block sizeZ(0c60c80f961f0e71f3a9b524af6012062fe037a6r<      Z(ea6c014dc72d6f8ccd1ed92ace1d41f0d8de8957Z(4b007901b765489abead49d926f721d065a429c1i   Z23d2eec4fe41c849b80c8d83662c0e44a8b291a964cf2f07038s   passwordPASSWORDpasswords$   saltSALTsaltSALTsaltSALTsaltSALTsalt   Z 56fa6aa75548099dcc37d7f03425e0c3s	   pass words   sa ltZ887CFF169EA8335235D8004242AA7D6187A41E3187DF0CE14E256D85ED97A97357AAA8FF0A3871AB9EEFF458392F462F495487387F685B7472FC6C29E293F0A0s   helloZ9290F727ED06C38BA4549EF7DE25CF5642659211B7FC076F2D28FEFD71784BB8D8F6FB244A8CC5C06240631B97008565A120764C0EE9C2CB0073994D79080136i'  @   zhmac-sha512Z e248fb6b13365146f8ac6307cc222812rK   
   	hmac-sha1Z(e248fb6b13365146f8ac6307cc2228127872da6dNc                    r   r   )r   r\   r   r   r   r   r   r   r   r   r   	  r   zPbkdf2_Test.setUpc           
      C   sf   ddl m} | jD ]'}|dd \}}}}}t|dkr |d nd}||||||}	| |	| q	dS )r@   r   pbkdf2Nr_      rd   )r"   rf   pbkdf2_test_vectorslenr&   )
r   rf   r,   r.   rD   rE   rF   rG   prfr0   r   r   r   rI     s   
zPbkdf2_Test.test_knownc                    s   ddl m  d fdd		}|  | jt|d
d | jt|dd | jt|dd | jt|d
d | jt|dd |dd | jt|dd | jt|dd | jt|dd | jt|dd | jt|dd | jt|dd | jt|dd dS )rJ   r   re   r9   r<   r>   Nrd   c                    rL   rM   r   rD   rE   rF   rG   rj   re   r   r   rO     rP   z'Pbkdf2_Test.test_border.<locals>.helperrV   rT   xrW   l   O r_   rR   rQ   zhmac-foorj   Zfoor9   r<   r>   Nrd   )r"   rf   r$   r%   r'   OverflowErrorNotImplementedErrorrY   r   re   r   rZ     s    
zPbkdf2_Test.test_borderc                    sJ   ddl m  d fdd		}| t|dd
d | t|dd
d dS )ztest keylen==Noner   re   r9   r<   r>   Nrd   c                    rL   rM   r   rk   re   r   r   rO   5  rP   z/Pbkdf2_Test.test_default_keylen.<locals>.helperrm   r`   zhmac-sha256r^   rn   )r"   rf   r&   ri   rY   r   re   r   test_default_keylen2  s   zPbkdf2_Test.test_default_keylenc              	   C   s.   ddl m} dd }| t|dddd| d	S )
ztest custom prf functionr   re   c                 S   s   t | | d  S )Ns   fooey)r   r	   rH   )keymsgr   r   r   rj   =  s   z(Pbkdf2_Test.test_custom_prf.<locals>.prfrK   r<   r:   r`   N)r"   rf   r$   rp   )r   rf   rj   r   r   r   test_custom_prf:  s   zPbkdf2_Test.test_custom_prf)r2   r3   r4   r5   r6   r   rh   r   rI   rZ   rq   rt   r7   r   r   r   r   r\      st    		

r	r\   )r5   
__future__r   r   r   Zpasslib.utils.compatr   r   Zpasslib.tests.utilsr   r   r   r8   r\   r   r   r   r   <module>   s    7@