
    K}bg5Y                        d Z ddlZ ej        e          Zddl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mZ d ZdZ eed	dd
dddd           eed	dd
dddd           eed	dd
dddd           eed	dd
dddd           eed	dd	dddd           eed
dd
dddd           eeddd
dddd           eed	dd
ddd d!           eed	dd
dd"d#d$          g	Zd%Ze                     eed	dd
ddd&d'           eed	dd
ddd(d)           eed	dd
ddd*d+           eed	dd
ddd,d-           eed	dd	ddd.d/           eed
dd
ddd0d1           eeddd
ddd2d3           eed	dd
ddd4d5           eed	dd
dd"d6d7          g	           d%Ze                     eed	dd
ddd8d9           eed	dd
ddd:d;           eed	dd
ddd<d=           eed	dd	ddd>d?           eed
dd
ddd@dA           eeddd
dddBdC           eed	dd
dddDdE           eed	dd
dd"dFdG          g            G dH dIe          Z G dJ dKe                    dL                    Z G dM dNe                    dO                    ZdS )PzFpasslib.tests.test_handlers_argon2 - tests for passlib hash algorithms    N)hash)unicode)HandlerCase	TEST_MODE)UPASS_TABLEPASS_TABLE_UTF8c                 8    t          | ||d|z  |||||	  	        S )N   )	versionroundslogMmemory_costparallelismsecretsalt
hex_digestr   )dict)r   tr   pr   r   r   r   s           u/home/e360mart.nyusoft.in/public_html/e360mart_env/lib/python3.11/site-packages/passlib/tests/test_handlers_argon2.pyhashtestr      s5    !T'WXDZdL L L L          r
   passwordsomesalt@f6c4db4a54e2a370627aff3db6176b94a2a209a62c8e36152711802f7b30c694zP$argon2i$m=65536,t=2,p=1$c29tZXNhbHQ$9sTbSlTio3Biev89thdrlKKiCaYsjjYVJxGAL3swxpQ   @9690ec55d28d3ed32562f2e73ea62b02b018757643a2ae6e79528459de8106e9zR$argon2i$m=1048576,t=2,p=1$c29tZXNhbHQ$lpDsVdKNPtMlYvLnPqYrArAYdXZDoq5ueVKEWd6BBuk   @3e689aaa3d28a77cf2bc72a51ac53166761751182f1ee292e3f677a7da4c2467zQ$argon2i$m=262144,t=2,p=1$c29tZXNhbHQ$Pmiaqj0op3zyvHKlGsUxZnYXURgvHuKS4/Z3p9pMJGc   @fd4dd83d762c49bdeaf57c47bdcd0c2f1babf863fdeb490df63ede9975fccf06zN$argon2i$m=256,t=2,p=1$c29tZXNhbHQ$/U3YPXYsSb3q9XxHvc0MLxur+GP960kN9j7emXX8zwY@b6c11560a6a9d61eac706b79a2f97d68b4463aa3ad87e00c07e2b01e90c564fbzN$argon2i$m=256,t=2,p=2$c29tZXNhbHQ$tsEVYKap1h6scGt5ovl9aLRGOqOth+AMB+KwHpDFZPs@81630552b8f3b1f48cdb1992c4c678643d490b2b5eb4ff6c4b3438b5621724b2zP$argon2i$m=65536,t=1,p=1$c29tZXNhbHQ$gWMFUrjzsfSM2xmSxMZ4ZD1JCytetP9sSzQ4tWIXJLI   @f212f01615e6eb5d74734dc3ef40ade2d51d052468d8c69440a3a1f2c1c2847bzP$argon2i$m=65536,t=4,p=1$c29tZXNhbHQ$8hLwFhXm6110c03D70Ct4tUdBSRo2MaUQKOh8sHChHsdifferentpassword@e9c902074b6754531a3a0be519e5baf404b30ce69b3f01ac3bf21229960109a3zP$argon2i$m=65536,t=2,p=1$c29tZXNhbHQ$6ckCB0tnVFMaOgvlGeW69ASzDOabPwGsO/ISKZYBCaMdiffsalt@79a103b90fe8aef8570cb31fc8b22259778916f8336b7bdac3892569d4f1c497zP$argon2i$m=65536,t=2,p=1$ZGlmZnNhbHQ$eaEDuQ/orvhXDLMfyLIiWXeJFvgza3vaw4kladTxxJc   @c1628832147d9720c5bd1cfd61367078729f6dfb6f8fea9ff98158e0d7816ed0zU$argon2i$v=19$m=65536,t=2,p=1$c29tZXNhbHQ$wWKIMhR9lyDFvRz9YTZweHKfbftvj+qf+YFY4NeBbtA@d1587aca0922c3b5d6a83edab31bee3c4ebaef342ed6127a55d19b2351ad1f41zW$argon2i$v=19$m=1048576,t=2,p=1$c29tZXNhbHQ$0Vh6ygkiw7XWqD7asxvuPE667zQu1hJ6VdGbI1GtH0E@296dbae80b807cdceaad44ae741b506f14db0959267b183b118f9b24229bc7cbzV$argon2i$v=19$m=262144,t=2,p=1$c29tZXNhbHQ$KW266AuAfNzqrUSudBtQbxTbCVkmexg7EY+bJCKbx8s@89e9029f4637b295beb027056a7336c414fadd43f6b208645281cb214a56452fzS$argon2i$v=19$m=256,t=2,p=1$c29tZXNhbHQ$iekCn0Y3spW+sCcFanM2xBT63UP2sghkUoHLIUpWRS8@4ff5ce2769a1d7f4c8a491df09d41a9fbe90e5eb02155a13e4c01e20cd4eab61S$argon2i$v=19$m=256,t=2,p=2$c29tZXNhbHQ$T/XOJ2mh1/TIpJHfCdQan76Q5esCFVoT5MAeIM1Oq2E@d168075c4d985e13ebeae560cf8b94c3b5d8a16c51916b6f4ac2da3ac11bbecfzU$argon2i$v=19$m=65536,t=1,p=1$c29tZXNhbHQ$0WgHXE2YXhPr6uVgz4uUw7XYoWxRkWtvSsLaOsEbvs8@aaa953d58af3706ce3df1aefd4a64a84e31d7f54175231f1285259f88174ce5bzU$argon2i$v=19$m=65536,t=4,p=1$c29tZXNhbHQ$qqlT1YrzcGzj3xrv1KZKhOMdf1QXUjHxKFJZ+IF0zls@14ae8da01afea8700c2358dcef7c5358d9021282bd88663a4562f59fb74d22eezU$argon2i$v=19$m=65536,t=2,p=1$c29tZXNhbHQ$FK6NoBr+qHAMI1jc73xTWNkCEoK9iGY6RWL1n7dNIu4@b0357cccfbef91f3860b0dba447b2348cbefecadaf990abfe9cc40726c521271zU$argon2i$v=19$m=65536,t=2,p=1$ZGlmZnNhbHQ$sDV8zPvvkfOGCw26RHsjSMvv7K2vmQq/6cxAcmxSEnE@09316115d5cf24ed5a15a31a3ba326e5cf32edc24702987c02b6566f61913cf7zV$argon2id$v=19$m=65536,t=2,p=1$c29tZXNhbHQ$CTFhFdXPJO1aFaMaO6Mm5c8y7cJHAph8ArZWb2GRPPc@78fe1ec91fb3aa5657d72e710854e4c3d9b9198c742f9616c2f085bed95b2e8czW$argon2id$v=19$m=262144,t=2,p=1$c29tZXNhbHQ$eP4eyR+zqlZX1y5xCFTkw9m5GYx0L5YWwvCFvtlbLow@9dfeb910e80bad0311fee20f9c0e2b12c17987b4cac90c2ef54d5b3021c68bfezT$argon2id$v=19$m=256,t=2,p=1$c29tZXNhbHQ$nf65EOgLrQMR/uIPnA4rEsF5h7TKyQwu9U1bMCHGi/4@6d093c501fd5999645e0ea3bf620d7b8be7fd2db59c20d9fff9539da2bf57037zT$argon2id$v=19$m=256,t=2,p=2$c29tZXNhbHQ$bQk8UB/VmZZF4Oo79iDXuL5/0ttZwg2f/5U52iv1cDc@f6a5adc1ba723dddef9b5ac1d464e180fcd9dffc9d1cbf76cca2fed795d9ca98zV$argon2id$v=19$m=65536,t=1,p=1$c29tZXNhbHQ$9qWtwbpyPd3vm1rB1GThgPzZ3/ydHL92zKL+15XZypg@9025d48e68ef7395cca9079da4c4ec3affb3c8911fe4f86d1a2520856f63172czV$argon2id$v=19$m=65536,t=4,p=1$c29tZXNhbHQ$kCXUjmjvc5XMqQedpMTsOv+zyJEf5PhtGiUghW9jFyw@0b84d652cf6b0c4beaef0dfe278ba6a80df6696281d7e0d2891b817d8c458fdezV$argon2id$v=19$m=65536,t=2,p=1$c29tZXNhbHQ$C4TWUs9rDEvq7w3+J4umqA32aWKB1+DSiRuBfYxFj94@bdf32b05ccc42eb15d58fd19b1f856b113da1e9a5874fdcc544308565aa8141czV$argon2id$v=19$m=65536,t=2,p=1$ZGlmZnNhbHQ$vfMrBczELrFdWP0ZsfhWsRPaHppYdP3MVEMIVlqoFBwc            	            e Zd Zej        ZddedfedfddgZg dZ	d e
dd	d
ddd          fgZ fdZd fd	Zd Zd Zd Zd Zd Zd Zd Zd Zd Z G d dej                  Z xZS )_base_argon2_test)r   z>$argon2i$v=19$m=256,t=1,p=1$c29tZXNhbHQ$AJFIsNZTMKTAewB4+ETN1A)r   z>$argon2i$v=19$m=380,t=2,p=2$c29tZXNhbHQ$SrssP8n7m/12VWPM8dvNrwzI$argon2i$v=19$m=512,t=2,p=2$1sV0O4PWLtc12Ypv1f7oGw$z+yqzlKtrq3SaNfXDfIDnQ)	password z>$argon2i$v=19$m=512,t=2,p=2$c29tZXNhbHQ$Fb5+nPuLzZvtqKRwqUEtUQ)r   zL$argon2d$v=19$m=102400,t=2,p=8$g2RodLh8j8WbSdCp+lUy/A$zzAJqL/HSjm809PYQu6qkA)zY$argon2qq$v=19$t=2,p=4$c29tZXNhbHQAAAAAAAAAAA$QWLzI4TY9HkL2ZTLc8g6SinwdhZewYrzz9zxCo0bkGYzX$argon2i$v=19$t=2,p=4$c29tZXNhbHQAAAAAAAAAAA$QWLzI4TY9HkL2ZTLc8g6SinwdhZewYrzz9zxCo0bkGYzi$argon2i$v=19$m=65536,t=8589934592,p=4$c29tZXNhbHQAAAAAAAAAAA$QWLzI4TY9HkL2ZTLc8g6SinwdhZewYrzz9zxCo0bkGYzd$argon2i$v=19$m=65536,t=2,p=4,q=5$c29tZXNhbHQAAAAAAAAAAA$QWLzI4TY9HkL2ZTLc8g6SinwdhZewYrzz9zxCo0bkGYzd$argon2i$v=19$t=2,m=65536,p=4,q=5$c29tZXNhbHQAAAAAAAAAAA$QWLzI4TY9HkL2ZTLc8g6SinwdhZewYrzz9zxCo0bkGYzT$argon2i$v=19$m=127,t=2,p=16$c29tZXNhbHQ$IMit9qkFULCMA/ViizL57cnTLOa5DiVM9eMwpAvPwr4z>$argon2i$v=19$m=256,t=2,p=3$c29tZXNhbHQ$AJFIsNZTMKTAewB4+ETN1Ai   r         somesalts    HS0{ xD)typer   r   r   r   checksumc                     t          t          |                                            t          j        dd           d S )Nignorez.*Using argon2pure backend.*)superr@   setUpWarningswarningsfilterwarnings)self	__class__s    r   rK   z_base_argon2_test.setUpWarnings   s:    &&44666*HIIIIIr   Nc                     | j         dk    rI |p| j        j        di |} |d          } | j        | _        | j        sJ |                                 S  t          t          |           j        |fi |S )Nargon2_cffiTuse_defaults )	backendhandlerusing_stub_checksumrG   	to_stringrJ   r@   do_stub_encrypt)rN   rV   settingsrO   s      r   rZ   z!_base_argon2_test.do_stub_encrypt   s    <=(( 6w.$,5AAAAG7---D /DM=  =>>###A5*D11A'VVXVVVr   c                 ,    |                      d          )Nz!legacy 1.6 workflow not supported)skipTestrN   s    r   test_03_legacy_hash_workflowz._base_argon2_test.test_03_legacy_hash_workflow   s    mm?@@@r   c                 T    |                      t          | j        j        dd           d S )Nr   z`$argon2i$v=19$m=65536,t=2,p=4,keyid=ABCD$c29tZXNhbHQ$IMit9qkFULCMA/ViizL57cnTLOa5DiVM9eMwpAvPwr4assertRaisesNotImplementedErrorrV   verifyr^   s    r   test_keyid_parameterz&_base_argon2_test.test_keyid_parameter   s=    
 	-t|/BJH	I 	I 	I 	I 	Ir   c                    | j         }d}d}d}| j        dk    rM|                     t          |j        d|           |                     |                    d|          |           n`| j        dk    sJ |                     |                    d|                     |                     |                    d|          |           | j        dk    rN|                     t          |j        d|           |                     |                    d|          |           d S | j        dk    sJ |                     | j                             d|                     |                     |                    d|          |           d S )NzO$argon2i$v=19$m=512,t=2,p=2,data=c29tZWRhdGE$c29tZXNhbHQ$KgHyCesFyyjkVkihZ5VNFwzO$argon2i$v=19$m=512,t=2,p=2,data=c29tZWRhdGE$c29tZXNhbHQ$uEeXt1dxN1iFKGhklseW4wz>$argon2i$v=19$m=512,t=2,p=2$c29tZXNhbHQ$uEeXt1dxN1iFKGhklseW4wrQ   r   
argon2pure)	rV   rU   rb   rc   rd   assertEqualgenhash
assertTrueassertFalse)rN   rV   sample1sample2sample3s        r   test_data_parameterz%_base_argon2_test.test_data_parameter   s   
 , d d S <=(( 17>:wWWW W__ZAA7KKKK <<////OOGNN:w??@@@ W__ZAA7KKK <=(( 17>*gVVV W__ZAA7KKKKK <<////T\00WEEFFF W__ZAA7KKKKKr   c                 T    |                      t          | j        j        dd           d S )Nstubzj$argon2i$v=19$m=65536,t=2,p=4,keyid=ABCD,data=EFGH$c29tZXNhbHQ$IMit9qkFULCMA/ViizL57cnTLOa5DiVM9eMwpAvPwr4ra   r^   s    r   test_keyid_and_data_parametersz0_base_argon2_test.test_keyid_and_data_parameters!  s;    -t|/BFH	I 	I 	I 	I 	Ir   c                    | j         }|                     d|j        v            |j        D ]}|                     |t
                     |                     d|j        v            |                     d|j        v            |                     |j        |j        v            |}|                                 d         }|                    |          }|d=  |dd|j        i|  |di |  |dddi|  | j	        t          |fddi| d S )	NrF   rB   dr
   rS   TxXxrT   )rV   rj   setting_kwdstype_valuesassertIsInstancer   rF   get_sample_hash	parsehashrb   
ValueError)rN   clsvaluerV   r   kwdss         r   test_type_kwdz_base_argon2_test.test_type_kwd'  sP   l 	#"22333 _ 	2 	2E!!%1111s.///s./// 	CO3444 ##%%a(  &&L 	&&SX&&&&
 	$ 	**T*T*** 	*gBBEBTBBBBBr   c                 4   | j         }|j        }|j        D ]
}||k    r nt          d|d|j                  d }|                                }|                     |j        |           |                    |          }|                     |j        |           |                     |j        |           |                      ||          |           |                      ||          |           |                     t          |j        d           |                    |          }|                     |j        |           |                     |j        |           |                      ||                    d                    d           d S )Nz)expected to find alternate type: default=z values=c                 $     | d          j         S )NTrR   rF   )r|   s    r   effective_typez9_base_argon2_test.test_type_using.<locals>.effective_type[  s    3D)))..r   r   ru   IrB   )rV   rF   rw   AssertionErrorrW   rh   rb   r{   )rN   rV   	orig_typealt_typer   subclss         r   test_type_usingz!_base_argon2_test.test_type_usingM  s   ,
 L	+ 	C 	CH9$$ % !."+))W-@-@"B C C C	/ 	/ 	/ i000 H--h///y111 	//:::00)<<< 	*gm%@@@ H--h///y111 	3(?(?@@#FFFFFr   c                 
   | j         }|                    d          }|                     |                    |                     t	          j        dd|          }|                     |                    |                     d S )Nrq   z\$argon2\w+\$z	$argon2d$)rV   r   rk   needs_updateresubrj   )rN   rV   r   hash2s       r   test_needs_update_w_typez*_base_argon2_test.test_needs_update_w_typew  sv    ,||F##--d33444'd;;,,U3344444r   c                     | j                             dddd          }d}|j        dk    r*|                     |                    |                     d S |                     |                    |                     d S )Ni   r   r&       )r   	time_costr   digest_size[$argon2i$m=65536,t=2,p=4$c29tZXNhbHQAAAAAAAAAAA$QWLzI4TY9HkL2ZTLc8g6SinwdhZewYrzz9zxCo0bkGYr   )rV   rW   max_versionrk   r   rj   )rN   rV   r   s      r   test_needs_update_w_versionz-_base_argon2_test.test_needs_update_w_version  s    ,$$!QR13 % 5 5>$&&W11$7788888OOG006677777r   c                 t   | j         }|j        dk    r|                     d          d}|                    ddd|dd          }|                    d	          }|                     |d
           d}|                    ddd|dd          }|                    d	          }|                     |d           dS )z3verify we're using right base64 encoding for argon2r,   z,handler uses wrong version for sample hashesrE   rC   r   r   rB   )r   r   r   r   checksum_sizerF   r   r2   s   somesalt        z^$argon2i$v=19$m=256,t=2,p=2$c29tZXNhbHQAAAAAAAAAAA$rqnbEp1/jFDUEKZZmw+z14amDsFqMDC53dIe57ZHD38N)rV   r   r]   rW   r   rh   )rN   rV   r   tempr   s        r   test_argon_byte_encodingz*_base_argon2_test.test_argon_byte_encoding  s    ,?d""-- NOOO }}qt+-C  9 9yy$$  N 	O 	O 	O
 ;}}qt+-C  9 9yy$$  N 	O 	O 	O 	O 	Or   c                       e Zd Zej        j                                        Ze                    dd           d Zd Z	dS )#_base_argon2_test.FuzzHashGeneratorrandom_memory_costrandom_type)r   rF   c                 J    | j                             | j        j                  S N)rngchoicerV   rw   r^   s    r   r   z/_base_argon2_test.FuzzHashGenerator.random_type  s    8??4<#;<<<r   c                     | j         j        dk    r|                     dddd          S |                     dddd          S )Nrg      i  rC   i  i @  i   )testrU   randintgaussr^   s    r   r   z6_base_argon2_test.FuzzHashGenerator.random_memory_cost  sF    y L00((c3<<<((eUDAAAr   N)
__name__
__module____qualname__r   FuzzHashGeneratorsettings_mapcopyupdater   r   rT   r   r   r   r     sh        "4AFFHH(<=QQQ	= 	= 	=	B 	B 	B 	B 	Br   r   r   )r   r   r   r   argon2rV   r   r   known_correct_hashesknown_malformed_hashesr   known_parsehash_resultsrK   rZ   r_   re   ro   rr   r   r   r   r   r   r   r   __classcell__)rO   s   @r   r@   r@      s       kG 	W 	W 
 / 	0	 3 	4 	[ 	e+
2  * 
J	3Cq{H
J 
J 
J	KJ J J J J
W 
W 
W 
W 
W 
WA A AI I I8L 8L 8LtI I I$C $C $CL(G (G (GT5 5 58 8 8O O O2B B B B BK9 B B B B B B Br   r@   c                   d    e Zd Zej        g dz   Ze                    d eD                        dS )argon2_argon2_cffi_test))r   r   )r   zU$argon2i$v=19$m=65536,t=2,p=4$c29tZXNhbHQ$IMit9qkFULCMA/ViizL57cnTLOa5DiVM9eMwpAvPwr4)r   zU$argon2d$v=19$m=65536,t=2,p=4$c29tZXNhbHQ$cZn5d+rFh+ZfuRhm2iGUGgcrW5YLeM6q7L3vBsdmFA0)r   zV$argon2id$v=19$m=65536,t=2,p=4$c29tZXNhbHQ$GpZ3sK/oH9p7VIiV56G/64Zo/8GaUw434IimaPqxwCo)rA   zU$argon2i$v=19$m=65536,t=2,p=4$c29tZXNhbHQ$Vpzuc0v0SrP88LcVvmg+z5RoOYpMDKH/lt6O+CZabIQc              #   p   K   | ]1}|d          t          d          rdndk    |d         |d         fV  2dS )r   fullr    r   r   r   N)r   .0infos     r   	<genexpr>z!argon2_argon2_cffi_test.<genexpr>  s[          +/<)F"3"3;BB<< 
hf&<<<<   r   N)r   r   r   r@   r   extendreference_datarT   r   r   r   r     sm         -A E
 E
 E
 
B     3A          r   r   rQ   c                       e Zd Zej                            dd          Zde_        ej	        dd         Z	e	
                    d eD                         G d dej                  ZdS )	argon2_argon2pure_testr   r   )r   r   TNc              #   N   K   | ] }|d          dk     |d         |d         fV  !dS )r   r   r   r   NrT   r   s     r   r   z argon2_argon2pure_test.<genexpr>  sJ          +/<" 
hf&   r   c                       e Zd Zd ZdS )(argon2_argon2pure_test.FuzzHashGeneratorc                 2    |                      dddd          S )Nr
   rD   r   )r   r^   s    r   random_roundsz6argon2_argon2pure_test.FuzzHashGenerator.random_rounds  s    $$Q1a000r   N)r   r   r   r   rT   r   r   r   r     s#        	1 	1 	1 	1 	1r   r   )r   r   r   r   r   rW   rV   pure_use_threadsr@   r   r   r   r   rT   r   r   r   r     s        
 kBA>>G  $G -A!!!D    3A        
1 1 1 1 1-? 1 1 1 1 1r   r   rg   )__doc__logging	getLoggerr   logr   rL   passlibr   passlib.utils.compatr   passlib.tests.utilsr   r   passlib.tests.test_handlersr   r   r   r   r   r   r@   create_backend_caser   r   rT   r   r   <module>r      st   L L
 g!! 				        ( ( ( ( ( ( 6 6 6 6 6 6 6 6 D D D D D D D DL L L
 HWaQ
JO<= = HWaQ
JO<= = HWaQ
JO<= = HWaAz:O<= = HWaAz:O<= = HWaQ
JO<= = HWaQ
JO<= = HWaQ 3ZO<= = HWaQ
JO<= =C%P    HWaQ
JO<= = HWaQ
JO<= = HWaQ
JO<= = HWaAz:O<= = HWaAz:O<= = HWaQ
JO<= = HWaQ
JO<= = HWaQ 3ZO<= = HWaQ
JO<= =C% % % %P    HWaQ
JO<= = HWaQ
JO<= = HWaAz:O<= = HWaAz:O<= = HWaQ
JO<= = HWaQ
JO<= = HWaQ 3ZO<= = HWaQ
JO<= =;! ! ! !L[B [B [B [B [B [B [B [BF	' ' ' ' '/CCMRR ' ' 'R1 1 1 1 1.BB<PP 1 1 1 1 1r   