Ë
    àU.j5Y  ã                   ó,  — 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j)                   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j)                   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j-                  dL«      «      Z G dM„ dNej-                  dO«      «      Zy)PzFpasslib.tests.test_handlers_argon2 - tests for passlib hash algorithmsé    N)Úhash)Úunicode)ÚHandlerCaseÚ	TEST_MODE)ÚUPASS_TABLEÚPASS_TABLE_UTF8c                 ó0   — t        | ||d|z  |||||¬«	      S )Né   )	ÚversionÚroundsÚlogMÚmemory_costÚparallelismÚsecretÚsaltÚ
hex_digestr   )Údict)r   Útr   Úpr   r   r   r   s           údC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\passlib/tests/test_handlers_argon2.pyÚhashtestr      s)   € Ü˜¨°À!ÀTÁ'ÐWXØ D°ZÀdô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Ú@4ff5ce2769a1d7f4c8a491df09d41a9fbe90e5eb02155a13e4c01e20cd4eab61úS$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j0                  «      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    ‘H°ÖS0¤À{ xøDÍÔ)Útyper   r   r   r   Úchecksumc                 óV   •— t         t        | �  «        t        j                  dd«       y )NÚignorez.*Using argon2pure backend.*)Úsuperr@   ÚsetUpWarningsÚwarningsÚfilterwarnings)ÚselfÚ	__class__s    €r   rK   z_base_argon2_test.setUpWarningsÊ   s"   ø€ ÜÔ Ñ4Ô6Ü×Ñ Ð*HÕIr   c                 óú   •— | j                   dk(  rX |xs | j                  j                  di |¤Ž} |d¬«      } | j                  | _        | j                  sJ ‚| j                  «       S t        t        | �"  |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Î   sw   ø€ Ø�<‰<˜=Ò(ð 6�wÒ. $§,¡,×5Ñ5ÑA¸ÑAˆGÙ¨Ô-ˆDØ ×/Ñ/ˆDŒMØ—=’=Ð �=Ø—>‘>Ó#Ð#äÔ*¨DÑAÀ'ÑVÈXÑVÐVr   c                 ó$   — | j                  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   € à�m‰mÐ?Ó@Ð@r   c                 ó\   — | j                  t        | j                  j                  dd«       y )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¯|©|×/BÑ/BÀJðHõ	Ir   c                 óÜ  — | j                   }d}d}d}| j                  dk(  rE| j                  t        |j                  d|«       | j                  |j                  d|«      |«       nT| j                  dk(  sJ ‚| j                  |j	                  d|«      «       | j                  |j                  d|«      |«       | j                  dk(  rE| j                  t        |j                  d|«       | j                  |j                  d|«      |«       y | j                  dk(  sJ ‚| j                  | j                   j	                  d|«      «       | j                  |j                  d|«      |«       y )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ç   sI  € ð
 —,‘,ˆð dˆð dˆð Sˆð �<‰<˜=Ò(ð ×ÑÔ1°7·>±>À:ÈwÔWð ×Ñ˜WŸ_™_¨Z¸ÓAÀ7ÕKð —<‘< <Ò/Ð/Ð/à�O‰O˜GŸN™N¨:°wÓ?Ô@ð ×Ñ˜WŸ_™_¨Z¸ÓAÀ7ÔKð �<‰<˜=Ò(ð ×ÑÔ1°7·>±>À*ÈgÔVð ×Ñ˜WŸ_™_¨Z¸ÓAÀ7ÕKð —<‘< <Ò/Ð/Ð/à×Ñ˜TŸ\™\×0Ñ0°¸WÓEÔFð ×Ñ˜WŸ_™_¨Z¸ÓAÀ7ÕKr   c                 ó\   — | j                  t        | j                  j                  dd«       y )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¯|©|×/BÑ/BÀFðHõ	Ir   c                 ó8  — | j                   }| j                  d|j                  v «       |j                  D ]  }| j	                  |t
        «       Œ | j                  d|j                  v «       | j                  d|j                  v «       | j                  |j                  |j                  v «       |}| j                  «       d   }|j                  |«      }|d=  |dd|j                  i|¤Ž  |di |¤Ž  |dddi|¤Ž  | j                  t        |fddi|¤Ž y )	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'  s  € Ø�l‰lˆð 	�‰˜ #×"2Ñ"2Ð2Ô3ð —_”_ˆEØ×!Ñ! %¬Õ1ð %à�‰˜˜sŸ™Ð.Ô/Ø�‰˜˜sŸ™Ð.Ô/ð 	�‰˜Ÿ™ C§O¡OÐ3Ô4ð ˆØ×#Ñ#Ó% aÑ(ˆØ× Ñ  Ó&ˆØ�ˆLñ 	Ñ&�S—X‘XÐ& Ò&ñ
 	‰�$Šñ 	Ñ*˜TÐ* TÒ*ð 	ˆ×Ñœ* gÑB°EÐB¸TÓBr   c                 ó  — | j                   }|j                  }|j                  D ]	  }||k7  sŒ	 n t        d|›d|j                  ›�«      ‚d„ }|j	                  «       }| j                  |j                  |«       |j	                  |¬«      }| j                  |j                  |«       | j                  |j                  |«       | j                   ||«      |«       | j                   ||«      |«       | j                  t        |j                  d¬«       |j	                  |¬«      }| j                  |j                  |«       | j                  |j                  |«       | j                   ||j	                  d¬«      «      d«       y )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   € Ù DÔ)×.Ñ.Ð.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  sV  € Ø—,‘,ˆð
 —L‘Lˆ	Ø×+Ô+ˆHØ˜9Ó$Ùð ,õ !Ú"+¨W×-@Ò-@ð"Bó Cð Cò	/ð —‘“ˆØ×Ñ˜Ÿ™ iÔ0ð —‘ H�Ó-ˆØ×Ñ˜Ÿ™ hÔ/Ø×Ñ˜Ÿ™ yÔ1ð 	×Ñ™¨Ó/°Ô:Ø×Ñ™¨Ó0°)Ô<ð 	×Ñœ* g§m¡m¸%ÐÔ@ð —‘ H�Ó-ˆØ×Ñ˜Ÿ™ hÔ/Ø×Ñ˜Ÿ™ yÔ1ð 	×Ñ™¨¯©¸3¨Ó(?Ó@À#ÕFr   c                 óì   — | j                   }|j                  d«      }| j                  |j                  |«      «       t	        j
                  dd|«      }| j                  |j                  |«      «       y )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  s\   € Ø—,‘,ˆà�|‰|˜FÓ#ˆØ×Ñ˜×-Ñ-¨dÓ3Ô4ä—‘Ð'¨°dÓ;ˆØ�‰˜×,Ñ,¨UÓ3Õ4r   c                 óæ   — | j                   j                  dddd¬«      }d}|j                  dk(  r!| j                  |j	                  |«      «       y | j                  |j	                  |«      «       y )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€  sj   € Ø—,‘,×$Ñ$°À!ÐQRØ13ð %ó 5ˆð>ˆà×Ñ $Ò&Ø×Ñ˜W×1Ñ1°$Ó7Õ8à�O‰O˜G×0Ñ0°Ó6Õ7r   c                 óL  — | j                   }|j                  dk7  r| j                  d«      ‚d}|j                  ddd|dd¬«      }|j	                  d	«      }| j                  |d
«       d}|j                  ddd|dd¬«      }|j	                  d	«      }| j                  |d«       y)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ð ˆØ�}‰}¨¸ÀqÈtØ+-°Cð ó 9ˆà�y‰y˜Ó$ˆØ×Ñ˜ð  Nô 	Oð
 ;ˆØ�}‰}¨¸ÀqÈtØ+-°Cð ó 9ˆà�y‰y˜Ó$ˆØ×Ñ˜ð  Nõ 	Or   c                   ó†   — e Zd Zej                  j
                  j                  «       Zej                  dd¬«       d„ Zd„ Z	y)ú#_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‘8—?‘? 4§<¡<×#;Ñ#;Ó<Ð<r   c                 ó„   — | j                   j                  dk(  r| j                  dddd«      S | j                  dddd«      S )Nrg   é€   i€  rC   iÿ  i @  i   )ÚtestrU   Úrandintgaussr^   s    r   r�   z6_base_argon2_test.FuzzHashGenerator.random_memory_cost«  sB   € Ø�y‰y× Ñ  LÒ0Ø×(Ñ(¨¨c°3¸Ó<Ð<à×(Ñ(¨¨e°U¸DÓAÐAr   N)
Ú__name__Ú
__module__Ú__qualname__r   ÚFuzzHashGeneratorÚsettings_mapÚcopyÚupdaterž   r�   rT   r   r   rª   rœ   £  s;   „ à"×4Ñ4×AÑA×FÑFÓHˆØ×ÑÐ(<À=ÐÔQò	=ó	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×   ø„ Ø�k‰k€Gð 	Wð 	Wð 
ð /ð 	0à	ð 3ð 	4ð 	[ð 	eð+
Ðò2Ðð* 
JÙ	�3 C°¸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   r@   c                   ó^   — e Zd Zej                  g d¢z   Zej                  d„ eD «       «       y)Ú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              #   óZ   K  — | ]#  }|d    t        d«      rdndk  r|d   |d   f–— Œ% y­w)r   Úfullr    r   r   r   N)r   ©Ú.0Úinfos     r   Ú	<genexpr>z!argon2_argon2_cffi_test.<genexpr>Û  s9   è ø€ ð  Ù3A¨4Ø�‰<¤)¨FÔ"3™B¸Ò<ð 
ˆh‰˜˜f™Ô&±>ùs   ‚)+N)r§   r¨   r©   r@   r¯   ÚextendÚreference_datarT   r   r   r´   r´   ·  s9   „ ð -×AÑAò E
ñ 
ÐðB ×Ññ  Ù3Aó õ r   r´   rQ   c                   óÌ   — e Zd Zej                  j                  dd¬«      Zde_        ej                  dd Z	e	j                  d„ eD «       «        G d„ dej                  «      Zy)	Úargon2_argon2pure_testr‘   r   )r   r   TNc              #   ó@   K  — | ]  }|d    dk  r|d   |d   f–— Œ y­w)r   r   r   r   NrT   r·   s     r   rº   z argon2_argon2pure_test.<genexpr>î  s0   è ø€ ð  Ù3A¨4Ø�‰<˜"Òð 
ˆh‰˜˜f™Ô&±>ùs   ‚c                   ó   — e Zd Zd„ Zy)ú(argon2_argon2pure_test.FuzzHashGeneratorc                 ó*   — | j                  dddd«      S )Nr
   rD   r   )r¦   r^   s    r   Úrandom_roundsz6argon2_argon2pure_test.FuzzHashGenerator.random_roundsõ  s   € à×$Ñ$ Q¨¨1¨aÓ0Ð0r   N)r§   r¨   r©   rÃ   rT   r   r   rª   rÁ   ó  s   „ ó	1r   rª   )r§   r¨   r©   r   r®   rW   rV   Úpure_use_threadsr@   r¯   r»   r¼   rª   rT   r   r   r¾   r¾   à  sh   „ ð
 �k‰k×Ñ¨B¸AÐÓ>€Gð  $€GÔð -×AÑAÁ!ÐDÐà×Ññ  Ù3Aó ô ô
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Î      sË  ðÙ Ló
 Ø€g×Ñ˜Ó!€Û 	Û õ Ý (ß 6ß DòLð
 €áˆW�a˜˜Q 
¨JØOð<ó=ñ ˆW�a˜˜Q 
¨JØOð<ó=ñ ˆW�a˜˜Q 
¨JØOð<ó=ñ ˆW�a˜˜A˜z¨:ØOð<ó=ñ ˆW�a˜˜A˜z¨:ØOð<ó=ñ ˆW�a˜˜Q 
¨JØOð<ó=ñ ˆW�a˜˜Q 
¨JØOð<ó=ñ ˆW�a˜˜QÐ 3°ZØOð<ó=ñ ˆW�a˜˜Q 
¨JØOð<ó=ðC%€ðP €Ø × Ñ ÙˆW�a˜˜Q 
¨JØOð<ó=ñ ˆW�a˜˜Q 
¨JØOð<ó=ñ ˆW�a˜˜Q 
¨JØOð<ó=ñ ˆW�a˜˜A˜z¨:ØOð<ó=ñ ˆW�a˜˜A˜z¨:ØOð<ó=ñ ˆW�a˜˜Q 
¨JØOð<ó=ñ ˆW�a˜˜Q 
¨JØOð<ó=ñ ˆW�a˜˜QÐ 3°ZØOð<ó=ñ ˆW�a˜˜Q 
¨JØOð<ó=ðC%ô %ðP €Ø × Ñ ÙˆW�a˜˜Q 
¨JØOð<ó=ñ ˆW�a˜˜Q 
¨JØOð<ó=ñ ˆW�a˜˜A˜z¨:ØOð<ó=ñ ˆW�a˜˜A˜z¨:ØOð<ó=ñ ˆW�a˜˜Q 
¨JØOð<ó=ñ ˆW�a˜˜Q 
¨JØOð<ó=ñ ˆW�a˜˜QÐ 3°ZØOð<ó=ñ ˆW�a˜˜Q 
¨JØOð<ó=ð;!ô !ôL[B˜ô [BôF	'Ð/×CÑCÀMÓRô 'ôR1Ð.×BÑBÀ<ÓPõ 1r   