§
    HŠtj5Y  ã                   óø  — 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           ú`/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/passlib/tests/test_handlers_argon2.pyÚhashtestr      s5   € Ý˜¨°À!ÀTÁ'ÐWXØ D°ZÀdð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Ú@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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    ‘H°ÖS0¤À{ xøDÍÔ)Ú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�   ø€ ØŒ<˜=Ò(Ð(ð 6�wÐ. $¤,Ô5ÐAÐA¸ÐAÐAˆGØ�7¨Ð-Ñ-Ô-ˆDØ Ô/ˆDŒMØ”=Ð Ð �=Ø—>’>Ñ#Ô#Ð#àA•5Õ*¨DÑ1Ô1ÔAÀ'ÐVÐVÈXÐ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   € à�mŠmÐ?Ñ@Ô@Ð@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¬|Ô/BÀJð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ˆð Œ<˜=Ò(Ð(ð ×ÒÕ1°7´>À:ÈwÑWÔWÐWð ×Ò˜WŸ_š_¨Z¸ÑAÔAÀ7ÑKÔKÐKÐKð ”< <Ò/Ð/Ð/Ð/à�OŠO˜GŸNšN¨:°wÑ?Ô?Ñ@Ô@Ð@ð ×Ò˜WŸ_š_¨Z¸ÑAÔAÀ7ÑKÔKÐKð Œ<˜=Ò(Ð(ð ×ÒÕ1°7´>À*ÈgÑVÔVÐVð ×Ò˜WŸ_š_¨Z¸ÑAÔAÀ7ÑKÔKÐKÐKÐKð ”< <Ò/Ð/Ð/Ð/à×Ò˜Tœ\×0Ò0°¸WÑEÔEÑFÔFÐFð ×Ò˜WŸ_š_¨Z¸ÑAÔAÀ7Ñ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¬|Ô/BÀFð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ð 	2ˆEØ×!Ò! %­Ñ1Ô1Ð1Ð1Ø�Š˜˜sœÐ.Ñ/Ô/Ð/Ø�Š˜˜sœÐ.Ñ/Ô/Ð/ð 	�Š˜œ C¤OÐ3Ñ4Ô4Ð4ð ˆØ×#Ò#Ñ%Ô% aÔ(ˆØ× Ò  Ñ&Ô&ˆØ�ˆLð 	ˆÐ&Ð&�S”XÐ& Ð&Ð&Ð&ð
 	ˆˆˆ�$ˆˆˆð 	ˆÐ*Ð*˜TÐ* TÐ*Ð*Ð*ð 	ˆÔ�* gÐBÐB°EÐB¸TÐ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   € Ø�3 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  sÀ  € Ø”,ˆð
 ”Lˆ	ØÔ+ð 	Cð 	CˆHØ˜9Ò$Ð$Ø�ð %õ !�.Ø"+ ) )¨WÔ-@Ð-@ð"Bñ Cô Cð Cð	/ð 	/ð 	/ð —’‘”ˆØ×Ò˜œ iÑ0Ô0Ð0ð —’ H�Ñ-Ô-ˆØ×Ò˜œ hÑ/Ô/Ð/Ø×Ò˜œ yÑ1Ô1Ð1ð 	×Ò˜˜¨Ñ/Ô/°Ñ:Ô:Ð:Ø×Ò˜˜¨Ñ0Ô0°)Ñ<Ô<Ð<ð 	×Ò�* g¤m¸%ÐÑ@Ô@Ð@ð —’ 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‹   € Ø”,×$Ò$°À!ÐQRØ13ð %ñ 5ô 5ˆð>ˆàÔ $Ò&Ð&Ø×Ò˜W×1Ò1°$Ñ7Ô7Ñ8Ô8Ð8Ð8Ð8à�OŠO˜G×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ð ˆØ�}Š}¨¸ÀqÈtØ+-°Cð ñ 9ô 9ˆà�yŠy˜Ñ$Ô$ˆØ×Ò˜ð  Nñ 	Oô 	Oð 	Oð
 ;ˆØ�}Š}¨¸ÀqÈtØ+-°Cð ñ 9ô 9ˆà�yŠy˜Ñ$Ô$ˆØ×Ò˜ð  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Ø×(Ò(¨¨c°3¸Ñ<Ô<Ð<à×(Ò(¨¨e°U¸DÑ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Æ  ø€ € € € € ØŒk€Gð 	Wð 	Wð 
ð /ð 	0à	ð 3ð 	4ð 	[ð 	eð+
Ðð2ð ð Ðð* 
JØ	ˆ�3 C°¸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Ð;˜B˜B¸Ò<Ð<ð 
ˆ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¨¨1¨aÑ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×Ò¨B¸AÐÑ>Ô>€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ð
 €à€HˆW�a˜˜Q 
¨JØOð<ñ=ô =ð €HˆW�a˜˜Q 
¨JØOð<ñ=ô =ð €HˆW�a˜˜Q 
¨JØOð<ñ=ô =ð €HˆW�a˜˜A˜z¨:ØOð<ñ=ô =ð €HˆW�a˜˜A˜z¨:ØOð<ñ=ô =ð €HˆW�a˜˜Q 
¨JØOð<ñ=ô =ð €HˆW�a˜˜Q 
¨JØOð<ñ=ô =ð €HˆW�a˜˜QÐ 3°ZØOð<ñ=ô =ð €HˆW�a˜˜Q 
¨JØOð<ñ=ô =ðC%€ðP €Ø × Ò Ø€HˆW�a˜˜Q 
¨JØOð<ñ=ô =ð €HˆW�a˜˜Q 
¨JØOð<ñ=ô =ð €HˆW�a˜˜Q 
¨JØOð<ñ=ô =ð €HˆW�a˜˜A˜z¨:ØOð<ñ=ô =ð €HˆW�a˜˜A˜z¨:ØOð<ñ=ô =ð €HˆW�a˜˜Q 
¨JØOð<ñ=ô =ð €HˆW�a˜˜Q 
¨JØOð<ñ=ô =ð €HˆW�a˜˜QÐ 3°ZØOð<ñ=ô =ð €HˆW�a˜˜Q 
¨JØOð<ñ=ô =ðC%ñ %ô %ð %ðP €Ø × Ò Ø€HˆW�a˜˜Q 
¨JØOð<ñ=ô =ð €HˆW�a˜˜Q 
¨JØOð<ñ=ô =ð €HˆW�a˜˜A˜z¨:ØOð<ñ=ô =ð €HˆW�a˜˜A˜z¨:ØOð<ñ=ô =ð €HˆW�a˜˜Q 
¨JØOð<ñ=ô =ð €HˆW�a˜˜Q 
¨JØOð<ñ=ô =ð €HˆW�a˜˜QÐ 3°ZØOð<ñ=ô =ð €HˆW�a˜˜Q 
¨JØOð<ñ=ô =ð;!ñ !ô !ð !ðL[Bð [Bð [Bð [Bð [B˜ñ [Bô [Bð [BðF	'ð 'ð 'ð 'ð 'Ð/×CÒCÀMÑRÔRñ 'ô 'ð 'ðR1ð 1ð 1ð 1ð 1Ð.×BÒBÀ<ÑPÔPñ 1ô 1ð 1ð 1ð 1r   