
    K}bgdI                     j   d Z ddlZ ej        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e          Z G d	 d
e          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          ZdS )z?passlib.tests.test_handlers - tests for passlib hash algorithms    N)hash)u)TestCaseHandlerCase)	UPASS_WAVc                       e Zd Zd ZdS )ldap_pbkdf2_testc                 8   |                      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   ldap_pbkdf2_sha1verifyldap_pbkdf2_sha256ldap_pbkdf2_sha512selfs    u/home/e360mart.nyusoft.in/public_html/e360mart_env/lib/python3.11/site-packages/passlib/tests/test_handlers_pbkdf2.pytest_wrapperszldap_pbkdf2_test.test_wrappers   s     	!((Q 	
 	
 	
 	#**- 	
 	
 	
 	#**T 	
 	
 	
 	
 	
    N)__name__
__module____qualname__r    r   r   r	   r	      s#        
 
 
 
 
r   r	   c                   .    e Zd Zej        ZdedfgZdgZdS )atlassian_pbkdf2_sha1_test)adminzI{PKCS5S2}c4xaeTQM0lUieMS3V5voiexyX9XhqC2dBd5ecVy60IPksHChwoTAVYFrhsgoq8/pzI{PKCS5S2}cE9Yq6Am5tQGdHSHhky2XLeOnURwzaLBG2sur7FHKpvy2u0qDn6GcVGRjlmJoIUyz{PKCS5S2}c4xaeTQM0lUieMS3V5voiexyX9XhqC2dBd5ecVy!0IPksHChwoTAVYFrhsgoq8/p{PKCS5S2}c4xaeTQM0lUieMS3V5voiexyX9XhqC2dBd5ecVy60IPksHChwoTAVYFrhsgoq8/{PKCS5S2}c4xaeTQM0lUieMS3V5voiexyX9XhqC2dBd5ecVy60IPksHChwoTAVYFrhsgoq8/=N)	r   r   r   r   atlassian_pbkdf2_sha1handlerr   known_correct_hashesknown_malformed_hashesr   r   r   r   r   6   s@        (G 	_	]	_	T	r   r   c                   0    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   pbkdf2_sha1r   r   r   r    r   r   r   r"   r"   M   sA        GW	M	O	 	 	r   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   pbkdf2_sha256r   r   r   r   r   r   r%   r%   `   s2         G	 
d		r   r%   c                   (    e Zd Zej        ZdedfgZdS )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   pbkdf2_sha512r   r   r   r   r   r   r(   r(   k   s5         G	 
P		r   r(   c                   @    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   cta_pbkdf2_sha1r   r   r   r   r   r   r   r+   r+   x   sG        "G
 
"	#	#%[\
 	>	B	D
r   r+   c                   .    e Zd Zej        ZddddedfgZdS )dlitz_pbkdf2_sha1_test)cloadmz,$p5k2$$exec$r1EWMCMk7Rlv3L/RNcFXviDefYa0hlql)gnuz1$p5k2$c$u9HvcT4d$Sd1gwSVCLZYAuqZ25piRnbBEoAesaa/g)dclz1$p5k2$d$tUsch7fU$nqDkaxMDOFBeJsTSfABsyn.PYUXilHwL)spamz3$p5k2$3e8$H0NX9mT/$wk/sE8vv6OMKuMaqazCJYDSUhWY9YB2Jz0$p5k2$$KosHgqNo$9mjN8gqjt02hDoP0c2J0ABtLIwtot8cQN)r   r   r   r   dlitz_pbkdf2_sha1r   r   r   r   r   r   r.   r.      s;        $G
 	DHHJ	F	H

r   r.   c                   (    e Zd Zej        ZedfdgZdS )grub_pbkdf2_sha512_testzgrub.pbkdf2.sha512.10000.BCAC1CEC5E4341C8C511C5297FA877BE91C2817B32A35A3ECF5CA6B8B257F751.6968526A2A5B1AEEE0A29A9E057336B48D388FFB3F600233237223C2104DE1752CEC35B0DD1ED49563398A282C0F471099C2803FBA47C7919CABC43192C68F60)toomanysecretsa  grub.pbkdf2.sha512.10000.9B436BB6978682363D5C449BBEAB322676946C632208BC1294D51F47174A9A3B04A7E4785986CD4EA7470FAB8FE9F6BD522D1FC6C51109A8596FB7AD487C4493.0FE5EF169AFFCB67D86E2581B1E251D88C777B98BA2D3256ECC9F765D84956FC5CA5C4B6FD711AA285F0A04DCF4634083F9A20F4B6F339A52FBD6BED618E527BN)r   r   r   r   grub_pbkdf2_sha512r   r   r   r   r   r   r5   r5      s4        %G 
%	&	5
r   r5   c                        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Z	d	 Z
d
 Zd Zd Zd Zd ZddZd Zd Zd Zd Z x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                     t          t          |                                            |                                  t	          j        dd           d S )Nignorez norm_hash_name\(\): unknown hash)superr9   setUprequire_stringprepwarningsfilterwarnings)r   	__class__s    r   r@   zscram_test.setUp   sO    j$%%''' 	!!! 	*MNNNNNr   c                     t          dd           fd}                      |dd          t          j        j                                        t          |d                                 |d          d	g                                 |d
          g d                                 |d	dg          d	dg                                t          |dg                                t          |g d                                t          |d	dg                                t          |d	gd	di           dS )ztest parsing of 'algs' settings
   AAAAAAAAAA  )saltroundsc                 n    D ]}|                     ||                     j        dd| i|j        S )Nalgsr   )
setdefaultr   rJ   )rJ   kwdskdefaultsr   s      r   parsez&scram_test.test_90_algs.<locals>.parse  sM     0 08A;////4<22T2T2277r   NT)use_defaultssha1sha-1zsha1, sha256, md5)md5rR   sha-256sha256rT   )rJ   rP   z
shaxxx-190s                       )checksum)	dictassertEqualr   scramdefault_algsassertRaises	TypeError
ValueErrorRuntimeError)r   rO   rN   s   ` @r   test_90_algszscram_test.test_90_algs   s   WT222	8 	8 	8 	8 	8 	8 	t$7779PQQQ)UD111 	v	2222335N5N5NOOO 	122WY4GHHH 	*ei[999*e"4HHH 	*egl-CDDD 	,y$+Z#8 	 	: 	: 	: 	: 	:r   c           	          |                      t          | j        ddt          d          dz  i           |                      t          | j        dddi           dS )	z+test internal parsing of 'checksum' keywordTrR   X   )rP   rV   rT   s    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXN)r[   r\   r   r   r]   r   s    r   test_90_checksumszscram_test.test_90_checksums  st     	)T\$+affRi#8 	 	: 	: 	: 	*dl$-#8 	 	: 	: 	: 	: 	:r   c                    | 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   dddz$scram$10$....$sha-1,bbb,cccrR   N)r   extract_digest_inforX   r[   KeyErrorr]   )r   edihscs        r   test_91_extract_digest_infoz&scram_test.test_91_extract_digest_info*  s    l. 6Qv2w888Qu"g777Qu"g777(CE222 +*c1g666*c1e444*c1e44444r   c                     | j         j        }|                      |d          dg           |                      |dd          dg           |                      |d          g d           dS )	z test scram.extract_digest_algs()r;   rR   hashlib)formatrQ   r<   )rR   rT   zsha-512N)r   extract_digest_algsrX   )r   edas     r   test_92_extract_digest_algsz&scram_test.test_92_extract_digest_algs<  s    l. 7 8 8:A	D 	D 	D 	 7?HJ J J 	# 	# 	# 	 = > >
 877	9 	9 	9 	9 	9r   c                    | 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   ⅨrF   rR   s   ⅨzSHA-1IXrQ   s   IXre   rS   s   3/Modzsha-666r   zlatin-1N)r   derive_digestrX   r   r[   r]   decode)r   r   s1d1s       r   test_93_derive_digestz scram_test.test_93_derive_digestN  sn    |) Bakk2tW==rBBBor4AA2FFFaggr488"===eRv66;;; 	dBe44M	O 	O 	O*dD"dIFFF 	*dD"aAAA 	aggryy';';T6JJBOOOOOr   c                    |                      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­Xr|   r{      óu   óu   ‍óu   ﷐N)
do_encryptr   r   	do_verifyr[   r]   )r   rp   s     r   test_94_saslprepzscram_test.test_94_saslprepg  s    OOAjMM**qww22333q{{A66777 OOAfII&&q||Q77888q'9'91==>>> 	*doq{{CCC*dnakk1EEEEEr   rZ   c                 J   | 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,md5rS   rR   dummyNr   )r   listrZ   usingrX   r   rw   )r   paramr   origsubclsh1s         r   test_94_using_w_default_algsz'scram_test.test_94_using_w_default_algs{  s     ,G())55%!455 	-t444 	,ug.>??? [[!!44R885':JKKKKKr   c                 2    |                      d           dS )zusing() -- 'algs' parameterrJ   )r   N)r   r   s    r   test_94_using_w_algszscram_test.test_94_using_w_algs  s    )))77777r   c                    | j                             d          }|                    d          }|                     |                    |                     |                    d          }|                     |                    |                     |                    d          }|                     |                    |                     dS )zneeds_update() -- algs settingr   )rJ   r   rQ   sha1,sha256N)r   r   r   assertFalseneeds_updater   )r   handler1r   handler2handler3s        r   test_94_needs_update_algsz$scram_test.test_94_needs_update_algs  s    <%%:%66 ]]7##..r22333 >>v>....r22333 >>}>55--b1122222r   c                    | j         }ddlm}  |dgd          }|                    d          }|                     |                    |          ddg           |                     |                    |                     |                    d	          }|                     |                    |                     |                    d
          }| 	                    |                    |                     dS )z)test handling of 'algs' in context objectr   )CryptContextrY   r   )scram__algsr   rS   rR   rQ   r   N)
r   passlib.contextr   r   rX   rw   r   r   copyr   )r   r   r   c1rp   c2s         r   test_95_context_algszscram_test.test_95_context_algs  s    ,000000\7)<<<GGG44Q77%9IJJJ++,,,WWW((++,,,WWW//**+++++r   c                      fd} f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                 :    j                             | |          S )Nr   r   rq   rp   r   s     r   vpartz-scram_test.test_96_full_verify.<locals>.vpart  s    <&&q!,,,r   c                 >    j                             | |d          S )NT)fullr   r   s     r   vfullz-scram_test.test_96_full_verify.<locals>.vfull  s     <&&q!$&777r   r<   r:   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   r   r[   r]   )r   r   r   rp   s   `   r   test_96_full_verifyzscram_test.test_96_full_verify  sC   	- 	- 	- 	- 	-	8 	8 	8 	8 	86
 	h**+++vq))***6
 	*eXq9996
 	*eXq999
6
 	fa(()))x++,,,*eXq999*eVQ77777r   )rZ   )r   r   r   r   rY   r   r   r   r    r@   r_   rc   rs   ry   r   r   r   r   r   r   r   __classcell__)rD   s   @r   r9   r9      si       jG	8	> 
9 $G 	H	
 	!	! $G 	H	
?		 $G 	H18! ! !FO O O O O: : :<: : :5 5 5$9 9 9$P P P2F F F(L L L L"8 8 83 3 3", , , +8 +8 +8 +8 +8 +8 +8r   r9   )__doc__logging	getLoggerr   logrB   passlibr   passlib.utils.compatr   passlib.tests.utilsr   r   passlib.tests.test_handlersr   r	   r   r"   r%   r(   r+   r.   r5   r9   r   r   r   <module>r      s   E E
 g!!        " " " " " " 5 5 5 5 5 5 5 5 1 1 1 1 1 1
 
 
 
 
x 
 
 
>       .    {   &	 	 	 	 	 	 	 	       
 
 
 
 
; 
 
 
 
 
 
 
 
[ 
 
 

 
 
 
 
k 
 
 
:i8 i8 i8 i8 i8 i8 i8 i8 i8 i8r   