o
    _6ddI                     @   s   d Z ddlZeeZddlZddlmZ ddlm	Z	 ddl
mZmZ ddlmZ G dd deZG d	d
 d
eZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZdS )z?passlib.tests.test_handlers - tests for passlib hash algorithms    N)hash)u)TestCaseHandlerCase)	UPASS_WAVc                   @   s   e Zd Zdd ZdS )ldap_pbkdf2_testc                 C   s@   |  tjdd |  tjdd |  tjdd dS )ztest ldap pbkdf2 wrapperspasswordz?{PBKDF2}1212$OB.dtnSEXZK8U5cgxU/GYQ$y5LKPOplRmok7CZp/aqVDVg8zGIzV{PBKDF2-SHA256}1212$4vjV83LKPjQzk31VI4E0Vw$hsYF68OiOUPdDZ1Fg.fJPeq1h/gXXY7acBp9/6c.tmQz{PBKDF2-SHA512}1212$RHY0Fr3IDMSVO/RSZyb5ow$eNLfBK.eVozomMr.1gYa17k9B7KIK25NOEshvhrSX.esqY3s.FvWZViXz4KoLlQI.BzY/YTNJOiKc5gBYFYGwwN)
assertTruer   Zldap_pbkdf2_sha1verifyZldap_pbkdf2_sha256Zldap_pbkdf2_sha512self r   yC:\Users\jesus\OneDrive\Desktop\erpjis_fastapi\backend\jisbackend\Lib\site-packages\passlib/tests/test_handlers_pbkdf2.pytest_wrappers   s$   zldap_pbkdf2_test.test_wrappersN)__name__
__module____qualname__r   r   r   r   r   r      s    r   c                   @   s$   e Zd ZejZdedfgZdgZdS )atlassian_pbkdf2_sha1_test)ZadminzI{PKCS5S2}c4xaeTQM0lUieMS3V5voiexyX9XhqC2dBd5ecVy60IPksHChwoTAVYFrhsgoq8/pzI{PKCS5S2}cE9Yq6Am5tQGdHSHhky2XLeOnURwzaLBG2sur7FHKpvy2u0qDn6GcVGRjlmJoIUyz{PKCS5S2}c4xaeTQM0lUieMS3V5voiexyX9XhqC2dBd5ecVy!0IPksHChwoTAVYFrhsgoq8/p{PKCS5S2}c4xaeTQM0lUieMS3V5voiexyX9XhqC2dBd5ecVy60IPksHChwoTAVYFrhsgoq8/{PKCS5S2}c4xaeTQM0lUieMS3V5voiexyX9XhqC2dBd5ecVy60IPksHChwoTAVYFrhsgoq8/=N)	r   r   r   r   Zatlassian_pbkdf2_sha1handlerr   known_correct_hashesknown_malformed_hashesr   r   r   r   r   6   s    r   c                   @   s&   e Zd ZejZdedfgZg dZdS )pbkdf2_sha1_test)r   z?$pbkdf2$1212$OB.dtnSEXZK8U5cgxU/GYQ$y5LKPOplRmok7CZp/aqVDVg8zGIz?$pbkdf2$1212$THDqatpidANpadlLeTeOEg$HV3oi1k5C5LQCgG1BMOL.BX4YZc)z@$pbkdf2$01212$THDqatpidANpadlLeTeOEg$HV3oi1k5C5LQCgG1BMOL.BX4YZcz;$pbkdf2$$THDqatpidANpadlLeTeOEg$HV3oi1k5C5LQCgG1BMOL.BX4YZcz@$pbkdf2$1212$THDqatpidANpadlLeTeOEg$HV3oi1k5C5LQCgG1BMOL.BX4YZc$N)	r   r   r   r   Zpbkdf2_sha1r   r   r   r   r   r   r   r   r   M   s    r   c                   @      e Zd ZejZdedfgZdS )pbkdf2_sha256_test)r   zV$pbkdf2-sha256$1212$4vjV83LKPjQzk31VI4E0Vw$hsYF68OiOUPdDZ1Fg.fJPeq1h/gXXY7acBp9/6c.tmQzV$pbkdf2-sha256$1212$3SABFJGDtyhrQMVt1uABPw$WyaUoqCLgvz97s523nF4iuOqZNbp5Nt8do/cuaa7AiIN)r   r   r   r   Zpbkdf2_sha256r   r   r   r   r   r   r   r   `   s    r   c                   @   r   )pbkdf2_sha512_test)r   z$pbkdf2-sha512$1212$RHY0Fr3IDMSVO/RSZyb5ow$eNLfBK.eVozomMr.1gYa17k9B7KIK25NOEshvhrSX.esqY3s.FvWZViXz4KoLlQI.BzY/YTNJOiKc5gBYFYGwwz$pbkdf2-sha512$1212$KkbvoKGsAIcF8IslDR6skQ$8be/PRmd88Ps8fmPowCJttH9G3vgxpG.Krjt3KT.NP6cKJ0V4Prarqf.HBwz0dCkJ6xgWnSj2ynXSV7MlvMa8QN)r   r   r   r   Zpbkdf2_sha512r   r   r   r   r   r   r   r   k   s    r   c                   @   s(   e Zd ZejZeddfdedfgZdS )cta_pbkdf2_sha1_testu   hashy the ☃z4$p5k2$1000$ZxK4ZBJCfQg=$jJZVscWtO--p1-xIZl6jhO2LKR0=)r   z%$p5k2$1$$h1TDLGSw9ST8UMAPeIE13i0t12c=z4$p5k2$4321$OTg3NjU0MzIx$jINJrSvZ3LXeIbUdrJkRpN62_WQ=N)	r   r   r   r   Zcta_pbkdf2_sha1r   r   r   r   r   r   r   r   r   x   s    
r   c                   @   s$   e Zd ZejZddddedfgZdS )dlitz_pbkdf2_sha1_test)Zcloadmz,$p5k2$$exec$r1EWMCMk7Rlv3L/RNcFXviDefYa0hlql)Zgnuz1$p5k2$c$u9HvcT4d$Sd1gwSVCLZYAuqZ25piRnbBEoAesaa/g)Zdclz1$p5k2$d$tUsch7fU$nqDkaxMDOFBeJsTSfABsyn.PYUXilHwL)Zspamz3$p5k2$3e8$H0NX9mT/$wk/sE8vv6OMKuMaqazCJYDSUhWY9YB2Jz0$p5k2$$KosHgqNo$9mjN8gqjt02hDoP0c2J0ABtLIwtot8cQN)r   r   r   r   Zdlitz_pbkdf2_sha1r   r   r   r   r   r   r   r      s    r   c                   @   s   e Zd ZejZedfdgZdS )grub_pbkdf2_sha512_testzgrub.pbkdf2.sha512.10000.BCAC1CEC5E4341C8C511C5297FA877BE91C2817B32A35A3ECF5CA6B8B257F751.6968526A2A5B1AEEE0A29A9E057336B48D388FFB3F600233237223C2104DE1752CEC35B0DD1ED49563398A282C0F471099C2803FBA47C7919CABC43192C68F60)Ztoomanysecretsa  grub.pbkdf2.sha512.10000.9B436BB6978682363D5C449BBEAB322676946C632208BC1294D51F47174A9A3B04A7E4785986CD4EA7470FAB8FE9F6BD522D1FC6C51109A8596FB7AD487C4493.0FE5EF169AFFCB67D86E2581B1E251D88C777B98BA2D3256ECC9F765D84956FC5CA5C4B6FD711AA285F0A04DCF4634083F9A20F4B6F339A52FBD6BED618E527BN)r   r   r   r   Zgrub_pbkdf2_sha512r   r   r   r   r   r   r   r      s    r   c                       s   e Zd ZejZddeddfeddfeddfgZg dZ fdd	Z	d
d Z
dd Zdd Zdd Zdd Zdd Zd!ddZdd Zdd Zdd Zdd  Z  ZS )"
scram_test)pencil>$scram$4096$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30)r   $scram$4096$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30,sha-256=qXUXrlcvnaxxWG00DdRgVioR2gnUpuX5r.3EZ1rdhVY,sha-512=lzgniLFcvglRLS0gt.C4gy.NurS3OIOVRAU1zZOV4P.qFiVFO2/edGQSu/kD1LwdX0SNV/KsPdHSwEl5qRTuZQu   IX àz>$scram$6400$0BojBCBE6P2/N4bQ$sha-1=YniLes.b8WFMvBhtSACZyyvxeCcu	   Ⅸ　àu   ­IX à)z?$scram$04096$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30z>$scram$409A$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30z>$scram$4096$QSXCR.Q6sek8bf9-$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30z>$scram$4096$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX3-z$scram$4096$QSXCR.Q6sek8bf92z$scram$4096$QSXCR.Q6sek8bf92$z?$scram$4096$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30$zq$scram$4096$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30sha-256=qXUXrlcvnaxxWG00DdRgVioR2gnUpuX5r.3EZ1rdhVYze$scram$4096$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30,shaxxx-190=HZbuOlKbWl.eR8AfIposuKbhX30z@$scram$4096$QSXCR.Q6sek8bf92$sha-256=HZbuOlKbWl.eR8AfIposuKbhX30z=$scram$4096$QSXCR.Q6sek8bf92$sha1=HZbuOlKbWl.eR8AfIposuKbhX30c                    s&   t t|   |   tdd d S )Nignorez norm_hash_name\(\): unknown hash)superr   setUpZrequire_stringprepwarningsfilterwarningsr   	__class__r   r   r$      s   zscram_test.setUpc                    s   t ddd  fdd}|dddtjj t|d |d	d
g |dg d |d
dgd
dg t|dg jt|g dd t|d
dg jt|d
gd
did dS )ztest parsing of 'algs' settings
   AAAAAAAAAA  )saltroundsc                    s0    D ]
}| | |  qjdd| i|jS )Nalgsr   )
setdefaultr   r,   )r,   kwdskdefaultsr   r   r   parse  s   z&scram_test.test_90_algs.<locals>.parseNT)use_defaultssha1sha-1zsha1, sha256, md5)md5r5   sha-256sha256r7   )r,   r3   z
shaxxx-190s                       )checksum)	dictassertEqualr   scramdefault_algsassertRaises	TypeError
ValueErrorRuntimeError)r   r2   r   r0   r   test_90_algs   s   
zscram_test.test_90_algsc                 C   s<   | j t| jddtdd id | j t| jdddid dS )	z+test internal parsing of 'checksum' keywordTr5   X   )r3   r9   r7   s    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXN)r>   r?   r   r   r@   r   r   r   r   test_90_checksums  s   
zscram_test.test_90_checksumsc                 C   s   | j j}d}d}| ||d|ddf | ||d|ddf | ||d|dd	f | t||d
 d}| t||d | t||d | t||d
 dS )z test scram.extract_digest_info()z'$scram$10$AAAAAA$sha-1=AQ,bbb=Ag,ccc=Aws       SHA1
      bbb   ccc   Zdddz$scram$10$....$sha-1,bbb,cccr5   N)r   Zextract_digest_infor;   r>   KeyErrorr@   )r   Zedihscr   r   r   test_91_extract_digest_info*  s   z&scram_test.test_91_extract_digest_infoc                 C   sH   | j j}| |ddg | |ddddg | |dg d dS )	z test scram.extract_digest_algs()r    r5   hashlib)formatr4   r!   )r5   r7   zsha-512N)r   extract_digest_algsr;   )r   Zedar   r   r   test_92_extract_digest_algs<  s   

z&scram_test.test_92_extract_digest_algsc                 C   s   | j j}d}d}| |td|dd| | |d|dd| | |td|dd	| | |d
|dd| | |d|ddd | t|d|dd | t|d|dd | |td|ddd	| dS )ztest scram.derive_digest()s   s   [tNuPnIZZn   Ⅸr)   r5   s   ⅨzSHA-1IXr4   s   IXrF   r6   s   3/Modzsha-666r   zlatin-1N)r   Zderive_digestr;   r   r>   r@   decode)r   r   s1Zd1r   r   r   test_93_derive_digestN  s   $z scram_test.test_93_derive_digestc                 C   s   |  td}| | td| | | td| |  td}| | td| | | td| | t| j td | t| jtd| dS )	ztest hash/verify use saslprepu   I­XrW   rV      óu   óu   ‍óu   ﷐N)Z
do_encryptr   r	   Z	do_verifyr>   r@   )r   rN   r   r   r   test_94_saslprepg  s   zscram_test.test_94_saslprepr=   c                 C   sh   | j }t|j}|jdi |di}| |j| | |jddg |d}| ||ddg dS )z#using() -- 'default_algs' parametersha1,md5r6   r5   dummyNr   )r   listr=   usingr;   r   rT   )r   paramr   origsubclsh1r   r   r   test_94_using_w_default_algs{  s   

z'scram_test.test_94_using_w_default_algsc                 C   s   | j dd dS )zusing() -- 'algs' parameterr,   )ra   N)re   r   r   r   r   test_94_using_w_algs  s   zscram_test.test_94_using_w_algsc                 C   sd   | j jdd}|d}| || |jdd}| || |jdd}| || dS )zneeds_update() -- algs settingr]   )r,   r^   r4   sha1,sha256N)r   r`   r   assertFalseneeds_updater	   )r   Zhandler1rd   Zhandler2Zhandler3r   r   r   test_94_needs_update_algs  s   
z$scram_test.test_94_needs_update_algsc                 C   s   | j }ddlm} |dgdd}|d}| ||ddg | || |jd	d}| || |jd
d}| 	|| dS )z)test handling of 'algs' in context objectr   )CryptContextr<   r]   )Zscram__algsr^   r6   r5   r4   rg   N)
r   Zpasslib.contextrk   r   r;   rT   rh   ri   copyr	   )r   r   rk   c1rN   c2r   r   r   test_95_context_algs  s   
zscram_test.test_95_context_algsc                    s    fdd} fdd}d}  |d|  |d| d} t|d| d	} t|d| d
}  |d|  |d|  t|d|  t|d| dS )ztest verify(full=True) flagc                    s    j | |S )Nr   r
   rO   rN   r   r   r   vpart  s   z-scram_test.test_96_full_verify.<locals>.vpartc                    s    j j| |ddS )NT)fullrp   rq   r   r   r   vfull  s   z-scram_test.test_96_full_verify.<locals>.vfullr!   r   Ztapez$scram$4096$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30,sha-256=qXUXrlcvnaxxWG00DdRgVioR2gnUpuX5r.3EZ1rdhV,sha-512=lzgniLFcvglRLS0gt.C4gy.NurS3OIOVRAU1zZOV4P.qFiVFO2/edGQSu/kD1LwdX0SNV/KsPdHSwEl5qRTuZQz$scram$4096$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30,sha-256=qXUXrlcvnaxxWG00DdRgVioR2gnUpuX5r.3EZ1rdhVYa,sha-512=lzgniLFcvglRLS0gt.C4gy.NurS3OIOVRAU1zZOV4P.qFiVFO2/edGQSu/kD1LwdX0SNV/KsPdHSwEl5qRTuZQz$scram$4096$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30,sha-256=R7RJDWIbeKRTFwhE9oxh04kab0CllrQ3kCcpZUcligc,sha-512=lzgniLFcvglRLS0gt.C4gy.NurS3OIOVRAU1zZOV4P.qFiVFO2/edGQSu/kD1LwdX0SNV/KsPdHSwEl5qRTuZQN)r	   rh   r>   r@   )r   rr   rt   rN   r   r   r   test_96_full_verify  s   zscram_test.test_96_full_verify)r=   )r   r   r   r   r<   r   r   r   r   r$   rB   rE   rQ   rU   rZ   r\   re   rf   rj   ro   ru   __classcell__r   r   r'   r   r      s*    


#	
r   )__doc__logging	getLoggerr   logr%   Zpasslibr   Zpasslib.utils.compatr   Zpasslib.tests.utilsr   r   Zpasslib.tests.test_handlersr   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s"    
	