+
    i5Y                     .   R t ^ RIt]P                  ! ]4      t^ RIt^ RIt^ RIHt ^ RI	H
t
 ^ RIHtHt ^ RIHtHt R t^t]! ]^^^RRR	R
4      ]! ]^^^RRRR4      ]! ]^^^RRRR4      ]! ]^^^RRRR4      ]! ]^^^RRRR4      ]! ]^^^RRRR4      ]! ]^^^RRRR4      ]! ]^^^RRRR4      ]! ]^^^RRRR4      .	t^t]P)                  ]! ]^^^RRRR4      ]! ]^^^RRRR 4      ]! ]^^^RRR!R"4      ]! ]^^^RRR#R$4      ]! ]^^^RRR%R&4      ]! ]^^^RRR'R(4      ]! ]^^^RRR)R*4      ]! ]^^^RRR+R,4      ]! ]^^^RRR-R.4      .	4       ^t]P)                  ]! ]^^^RRR/R04      ]! ]^^^RRR1R24      ]! ]^^^RRR3R44      ]! ]^^^RRR5R64      ]! ]^^^RRR7R84      ]! ]^^^RRR9R:4      ]! ]^^^RRR;R<4      ]! ]^^^RRR=R>4      .4        ! R? R@]4      t ! RA RB]P-                  RC4      4      t ! RD RE]P-                  RF4      4      tR# )GzFpasslib.tests.test_handlers_argon2 - tests for passlib hash algorithmsN)hash)unicode)HandlerCase	TEST_MODE)UPASS_TABLEPASS_TABLE_UTF8c                 2    \        WV^V,          VWEWgR7	      # )   )	versionroundslogMmemory_costparallelismsecretsalt
hex_digestr   )dict)r
   tr   pr   r   r   r   s   &&&&&&&&`/var/www/html/photoedit/myenv/lib/python3.14/site-packages/passlib/tests/test_handlers_argon2.pyhashtestr      s#    !T'WXZL L    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            
          a a ] tR t^t o]P
                  tRR]R3]R3RR.t	. ROt
R]! RR^^RRR7      3.tV 3R ltRV 3R	 lltR
 tR tR tR tR tR tR tR tR t ! R R]P2                  4      tRtVtV ;t# )_base_argon2_testzI$argon2i$v=19$m=512,t=2,p=2$1sV0O4PWLtc12Ypv1f7oGw$z+yqzlKtrq3SaNfXDfIDnQz>$argon2i$v=19$m=256,t=2,p=3$c29tZXNhbHQ$AJFIsNZTMKTAewB4+ETN1Ai      somesalts    HS0{ xD)typer   r   r   r   checksumc                Z   < \         \        V `  4        \        P                  ! R R4       R# )ignorez.*Using argon2pure backend.*N)superr8   setUpWarningswarningsfilterwarnings)self	__class__s   &r   rA   _base_argon2_test.setUpWarnings   s"    46*HIr   c                  < V P                   R 8X  de   T;'       g    V P                  P                  ! R/ VB pV! RR7      p V P                  V n        V P                  '       g   Q hV P                  4       # \        \        V `"  ! V3/ VB # )argon2_cffiTuse_defaults )	backendhandlerusing_stub_checksumr=   	to_stringr@   r8   do_stub_encrypt)rD   rM   settingsrE   s   &&,r   rQ   !_base_argon2_test.do_stub_encrypt   sz    <<=( ..$,,55AAG-D //DM=== =>>##*DA'VXVVr   c                $    V P                  R 4      h)z!legacy 1.6 workflow not supported)skipTestrD   s   &r   test_03_legacy_hash_workflow._base_argon2_test.test_03_legacy_hash_workflow   s    mm?@@r   c                ^    V P                  \        V P                  P                  R R4       R# )r   z`$argon2i$v=19$m=65536,t=2,p=4,keyid=ABCD$c29tZXNhbHQ$IMit9qkFULCMA/ViizL57cnTLOa5DiVM9eMwpAvPwr4NassertRaisesNotImplementedErrorrM   verifyrV   s   &r   test_keyid_parameter&_base_argon2_test.test_keyid_parameter   s*    
 	-t||/B/BJH	Ir   c                   V P                   pR pRpRpV P                  R8X  dF   V P                  \        VP                  RV4       V P                  VP                  RV4      V4       MVV P                  R8X  g   Q hV P                  VP	                  RV4      4       V P                  VP                  RV4      V4       V P                  R8X  dG   V P                  \        VP                  RV4       V P                  VP                  RV4      V4       R# V P                  R8X  g   Q hV P                  V P                   P	                  RV4      4       V P                  VP                  RV4      V4       R# )zO$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$uEeXt1dxN1iFKGhklseW4wrH   r   
argon2pureN)	rM   rL   r[   r\   r]   assertEqualgenhash
assertTrueassertFalse)rD   rM   sample1sample2sample3s   &    r   test_data_parameter%_base_argon2_test.test_data_parameter   sI   
 ,, d d S <<=( 17>>:wW W__ZA7K <<<///OOGNN:w?@ W__ZA7K <<=( 17>>*gV W__ZA7K <<<///T\\00WEF W__ZA7Kr   c                ^    V P                  \        V P                  P                  R R4       R# )stubzj$argon2i$v=19$m=65536,t=2,p=4,keyid=ABCD,data=EFGH$c29tZXNhbHQ$IMit9qkFULCMA/ViizL57cnTLOa5DiVM9eMwpAvPwr4NrZ   rV   s   &r   test_keyid_and_data_parameters0_base_argon2_test.test_keyid_and_data_parameters!  s(    -t||/B/BFH	Ir   c                N   V P                   pV P                  R VP                  9   4       VP                   F  pV P	                  V\
        4       K  	  V P                  RVP                  9   4       V P                  RVP                  9   4       V P                  VP                  VP                  9   4       TpV P                  4       ^,          pVP                  V4      pVR  V! RR VP                  /VB  V! R/ VB  V! RRR/VB  V P                  ! \        V3R R/VB  R# )r<   r9   drJ   TxXxNrK   )rM   rd   setting_kwdstype_valuesassertIsInstancer   r<   get_sample_hash	parsehashr[   
ValueError)rD   clsvaluerM   r   kwdss   &     r   test_type_kwd_base_argon2_test.test_type_kwd'  s	   ll 	#"2"223 __E!!%1 %s./s./ 	COO34 ##%a(  &L 	&SXX&&
 	$ 	*T*T* 	*gBEBTBr   c                    V P                   pVP                  pVP                   F  pW28w  g   K   M	  \        R V: RVP                  : 24      hR pVP	                  4       pV P                  VP                  V4       VP	                  VR7      pV P                  VP                  V4       V P                  VP                  V4       V P                  V! V4      V4       V P                  V! V4      V4       V P                  \        VP                  RR7       VP	                  VR7      pV P                  VP                  V4       V P                  VP                  V4       V P                  V! VP	                  RR7      4      R4       R# )z)expected to find alternate type: default=z values=c                 (    V ! R R7      P                   # )TrI   r<   )rx   s   &r   effective_type9_base_argon2_test.test_type_using.<locals>.effective_type[  s    D)...r   r   rq   Ir9   N)rM   r<   rs   AssertionErrorrN   rb   r[   rw   )rD   rM   	orig_typealt_typer   subclss   &     r   test_type_using!_base_argon2_test.test_type_usingM  sT   ,,
 LL	++H$ , !"+W-@-@"B C C	/ i0 H-h/y1 	/:0)< 	*gmm%@ H-h/y1 	3(?@#Fr   c                    V P                   pVP                  R 4      pV P                  VP                  V4      4       \        P
                  ! RRV4      pV P                  VP                  V4      4       R# )rl   z\$argon2\w+\$z	$argon2d$N)rM   r   re   needs_updateresubrd   )rD   rM   r   hash2s   &   r   test_needs_update_w_type*_base_argon2_test.test_needs_update_w_typew  s\    ,,||F#--d34'd;,,U34r   c                    V P                   P                  R ^^^ R7      pRpVP                  ^8X  d#   V P                  VP	                  V4      4       R# V P                  VP	                  V4      4       R# )i   )r   	time_costr   digest_size[$argon2i$m=65536,t=2,p=4$c29tZXNhbHQAAAAAAAAAAA$QWLzI4TY9HkL2ZTLc8g6SinwdhZewYrzz9zxCo0bkGYN)rM   rN   max_versionre   r   rd   )rD   rM   r   s   &  r   test_needs_update_w_version-_base_argon2_test.test_needs_update_w_version  sj    ,,$$!QR13 % 5>$&W11$78OOG0067r   c           	     R   V P                   pVP                  ^8w  d   V P                  R4      hRpVP                  R^^V^ RR7      pVP	                  R4      pV P                  VR4       RpVP                  R^^V^ RR7      pVP	                  R4      pV P                  VR	4       R
# )z3verify we're using right base64 encoding for argon2z,handler uses wrong version for sample hashesr;   r:   r9   )r   r   r   r   checksum_sizer<   r   r*   s   somesalt        z^$argon2i$v=19$m=256,t=2,p=2$c29tZXNhbHQAAAAAAAAAAA$rqnbEp1/jFDUEKZZmw+z14amDsFqMDC53dIe57ZHD38N)rM   r
   rU   rN   r   rb   )rD   rM   r   tempr   s   &    r   test_argon_byte_encoding*_base_argon2_test.test_argon_byte_encoding  s    ,,??d"-- NOO }}qt+-C  9yy$  N 	O
 ;}}qt+-C  9yy$  N 	Or   c                      a  ] tR tRt o ]P
                  P                  P                  4       t]P                  RRR7       R t	R t
RtV tR# )	#_base_argon2_test.FuzzHashGeneratori  random_memory_costrandom_type)r   r<   c                `    V P                   P                  V P                  P                  4      # N)rngchoicerM   rs   rV   s   &r   r   /_base_argon2_test.FuzzHashGenerator.random_type  s    88??4<<#;#;<<r   c                    V P                   P                  R 8X  d   V P                  ^RR^4      # V P                  ^RRR4      # )ra   i  r:   i  i @  i   )testrL   randintgaussrV   s   &r   r   6_base_argon2_test.FuzzHashGenerator.random_memory_cost  sB    yy  L0((c3<<((eUDAAr   rK   N)__name__
__module____qualname____firstlineno__r   FuzzHashGeneratorsettings_mapcopyupdater   r   __static_attributes____classdictcell____classdict__s   @r   r   r     sD     "44AAFFH(<=Q	=	B 	Br   r   )r=   )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/12VWPM8dvNrw)	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/ViizL57cnTLOa5DiVM9eMwpAvPwr4r   )r   r   r   r   r   argon2rM   r   r   known_correct_hashesknown_malformed_hashesr   known_parsehash_resultsrA   rQ   rW   r^   ri   rm   r{   r   r   r   r   r   r   r   r   __classcell__)rE   r   s   @@r   r8   r8      s     kkG 	W 	W 
 / 	0	 3 	4 	[ 	e+
2* 
J	3Cq{H
J	KJ
WAI8LtI$CL(GT58O2BK99 B Br   r8   c                   p    ] tR tRt]P
                  . RO,           t]P                  R ] 4       4       RtR# )argon2_argon2_cffi_testi  c              #     "   T F:  pVR ,          \        R4      '       d   ^M^8:  g   K&  VR,          VR,          3x  K<  	  R# 5i)r   fullr   r   N)r   .0infos   & r   	<genexpr>!argon2_argon2_cffi_test.<genexpr>  s=       3A4<)F"3"3B< 	'hf&>s
   #AArK   N))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)r   zU$argon2i$v=19$m=65536,t=2,p=4$c29tZXNhbHQ$Vpzuc0v0SrP88LcVvmg+z5RoOYpMDKH/lt6O+CZabIQ)	r   r   r   r   r8   r   extendreference_datar   rK   r   r   r   r     s>     -AA E
 
B   3A   r   r   rH   c                       ] tR tRt]P
                  P                  ^ ^R7      tR]n        ]	P                  R,          t
]
P                  R ] 4       4        ! R R]	P                  4      tRtR	# )
argon2_argon2pure_testi  )r   r   T:NNNc              #  f   "   T F'  pVR ,          ^8  g   K  VR,          VR,          3x  K)  	  R# 5i)r   r   r   NrK   r   s   & r   r    argon2_argon2pure_test.<genexpr>  s1       3A4<" 	'hf&>s   11c                   &   a  ] tR tRt o R tRtV tR# )(argon2_argon2pure_test.FuzzHashGeneratori  c                *    V P                  ^^^^4      # )r	   )r   rV   s   &r   random_rounds6argon2_argon2pure_test.FuzzHashGenerator.random_rounds  s    $$Q1a00r   rK   N)r   r   r   r   r   r   r   r   s   @r   r   r     s     	1 	1r   r   rK   N)r   r   r   r   r   r   rN   rM   pure_use_threadsr8   r   r   r   r   r   rK   r   r   r   r     sm    
 kkBA>G  $G -AA!D  3A  
1-?? 1 1r   r   ra   )__doc__logging	getLoggerr   logr   rB   passlibr   passlib.utils.compatr   passlib.tests.utilsr   r   passlib.tests.test_handlersr   r   r   r
   r   r   r8   create_backend_caser   r   rK   r   r   <module>r      s   L
 ! 	   ( 6 DL
 WaQ
JO<= WaQ
JO<= WaQ
JO<= WaAz:O<= WaAz:O<= WaQ
JO<= WaQ
JO<= WaQ 3ZO<= WaQ
JO<=C%P    WaQ
JO<= WaQ
JO<= WaQ
JO<= WaAz:O<= WaAz:O<= WaQ
JO<= WaQ
JO<= WaQ 3ZO<= WaQ
JO<=C% %P    WaQ
JO<= WaQ
JO<= WaAz:O<= WaAz:O<= WaQ
JO<= WaQ
JO<= WaQ 3ZO<= WaQ
JO<=;! !L[B [BF	'/CCMR 'R1.BB<P 1r   