
     hdI                     6   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y)z?passlib.tests.test_handlers - tests for passlib hash algorithms    N)hash)u)TestCaseHandlerCase)	UPASS_WAVc                       e Zd Zd Zy)ldap_pbkdf2_testc                    | j                  t        j                  j                  dd             | j                  t        j                  j                  dd             | j                  t        j
                  j                  dd             y)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    d/var/www/html/Resume-Scraper/venv/lib/python3.12/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                   6    e Zd Zej                  ZdedfgZdgZy)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   s5    ((G 	_	]	_	T	r   r   c                   8    e Zd Zej                  ZdedfgZg dZy)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   s,    GW	M	O	r   r"   c                   0    e Zd Zej                  ZdedfgZy)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%   `   s'      G	 
d		r   r%   c                   0    e Zd Zej                  ZdedfgZy)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   s*      G	 
P		r   r(   c                   B    e Zd Zej                  Z ed      dfdedfgZy)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   s7    ""G
 
"	#%[\
 	>	B	D
r   r+   c                   6    e Zd Zej                  ZddddedfgZy)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.      s0    $$G
 	DHHJ	F	H

r   r.   c                   0    e Zd Zej                  ZedfdgZy)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      s)    %%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                 v    t         t        |           | j                          t	        j
                  dd       y )Nignorez norm_hash_name\(\): unknown hash)superr9   setUprequire_stringprepwarningsfilterwarnings)r   	__class__s    r   r@   zscram_test.setUp   s1    j$%' 	! 	*MNr   c                 *    t        dd       fd} j                   |dd      t        j                  j                          j                  t        |d        j                   |d      d	g        j                   |d
      g d        j                   |d	dg      d	dg        j                  t        |dg        j                  t        |g d        j                  t        |d	dg        j                  t        |d	gd	di       y)ztest parsing of 'algs' settings
   AAAAAAAAAA  )saltroundsc                 x    D ]  }|j                  ||            j                  dd| i|j                  S )Nalgsr   )
setdefaultr   rJ   )rJ   kwdskdefaultsr   s      r   parsez&scram_test.test_90_algs.<locals>.parse  sC     08A;/04<<2T2T27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	8 	t$79P9PQ)UD1 	v	2235NO 	12WY4GH 	*ei[9*e"4H 	*egl-CD 	,y$+Z#8 	 	:r   c           	          | j                  t        | j                  ddt        d      dz  i       | j                  t        | j                  dddi       y)	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  sX     	)T\\$+afRi#8 	 	: 	*dll$-#8 	 	:r   c                    | j                   j                  }d}d}| j                   ||d      |ddf       | j                   ||d      |ddf       | j                   ||d      |dd	f       | j                  t        ||d
       d}| j                  t
        ||d       | j                  t
        ||d       | j                  t
        ||d
       y)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    ll.. 6Qv2w8Qu"g7Qu"g7(CE2 +*c1g6*c1e4*c1e4r   c                     | j                   j                  }| j                   |d      dg       | j                   |dd      dg       | j                   |d      g d       y)	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<  sw    ll.. 7 8:A	D 	 7?HJ 	# 	 = >
 8	9r   c                 8   | j                   j                  }d}d}| j                   |t        d      |dd      |       | j                   |d|dd      |       | j                   |t        d      |dd	      |       | j                   |d
|dd      |       | j                   |d|dd      d       | j	                  t
        |d|dd       | j	                  t
        |d|dd       | j                   |t        d      |j                  d      dd	      |       y)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  s    ||)) Bak2tW=rBor4A2Fagr48"=eRv6; 	dBe4M	O*dD"dIF 	*dD"aA 	agryy';T6JBOr   c                 f   | j                  t        d            }| j                  | j                  t        d      |             | j                  | j                  t        d      |             | j                  t        d            }| j                  | j                  t        d      |             | j                  | j                  t        d      |             | j	                  t
        | j                   t        d             | j	                  t
        | j                  t        d      |       y)	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     OOAjM*qw23q{A67 OOAfI&q|Q78q'91=> 	*dooq{C*dnnak1Er   c                 J   | j                   }t        |j                        } |j                  di |di}| j	                  |j                  |       | j	                  |j                  ddg       |j                  d      }| j	                  |j                  |      ddg       y)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%!45 	--t4 	,,ug.>? [[!44R85':JKr   c                 (    | j                  d       y)zusing() -- 'algs' parameterrJ   )r   N)r   r   s    r   test_94_using_w_algszscram_test.test_94_using_w_algs  s    )))7r   c                 f   | j                   j                  d      }|j                  d      }| j                  |j	                  |             |j                  d      }| j                  |j	                  |             |j                  d      }| j                  |j	                  |             y)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 ]]7#..r23 >>v>...r23 >>}>5--b12r   c                    | j                   }ddlm}  |dgd      }|j                  d      }| j	                  |j                  |      ddg       | j                  |j                  |             |j                  d	      }| j                  |j                  |             |j                  d
      }| j                  |j                  |             y)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7)<GGG44Q7%9IJ+,WWW(+,WWW/*+r   c                      fd} fd}d} j                   |d|              j                   |d|             d} j                  t        |d|       d} j                  t        |d|       d} j                   |d|              j                   |d|              j                  t        |d|        j                  t        |d|       y	)
ztest verify(full=True) flagc                 <    j                   j                  | |      S )Nr   r   rq   rp   r   s     r   vpartz-scram_test.test_96_full_verify.<locals>.vpart  s    <<&&q!,,r   c                 @    j                   j                  | |d      S )NT)fullr   r   s     r   vfullz-scram_test.test_96_full_verify.<locals>.vfull  s    <<&&q!$&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  s    	-	86
 	h*+vq)*6
 	*eXq96
 	*eXq9
6
 	fa()x+,*eXq9*eVQ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      s    jjG	8	> 
9 $G 	H	
 	! $G 	H	
?	 $G 	H18!FO:<:5$9$P2F(L"83", +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
 g!   " 5 1
x 
> .{ &	 	 
; 
 
[ 

k 
:i8 i8r   