a fWc5Y@sdZddlZeeZddlZddlZddlmZddl m Z ddl m Z m Z ddlmZmZddZd Zeed d d d d ddeed dd d d ddeed dd d d ddeed dd d d ddeed dd d d ddeed d d d d ddeedd d d d ddeed d d d d d!d"eed d d d d#d$d%g Zd&Zeeed d d d d d'd(eed dd d d d)d*eed dd d d d+d,eed dd d d d-d.eed dd d d d/d0eed d d d d d1d2eedd d d d d3d4eed d d d d d5d6eed d d d d#d7d8g d&Zeeed d d d d d9d:eed dd d d d;d<eed dd d d d=d>eed dd d d d?d@eed d d d d dAdBeedd d d d dCdDeed d d d d dEdFeed d d d d#dGdHgGdIdJdJe ZGdKdLdLedMZGdNdOdOedPZdS)QzFpasslib.tests.test_handlers_argon2 - tests for passlib hash algorithmsN)hash)unicode) HandlerCase TEST_MODE) UPASS_TABLEPASS_TABLE_UTF8c Cst|||d|>|||||d S)N) versionroundslogM memory_cost parallelismsecretsalt hex_digestr)dict)r tr prrrrrF/usr/lib/python3.9/site-packages/passlib/tests/test_handlers_argon2.pyhashtestsrrpasswordZsomesaltZ@f6c4db4a54e2a370627aff3db6176b94a2a209a62c8e36152711802f7b30c694zP$argon2i$m=65536,t=2,p=1$c29tZXNhbHQ$9sTbSlTio3Biev89thdrlKKiCaYsjjYVJxGAL3swxpQZ@9690ec55d28d3ed32562f2e73ea62b02b018757643a2ae6e79528459de8106e9zR$argon2i$m=1048576,t=2,p=1$c29tZXNhbHQ$lpDsVdKNPtMlYvLnPqYrArAYdXZDoq5ueVKEWd6BBukZ@3e689aaa3d28a77cf2bc72a51ac53166761751182f1ee292e3f677a7da4c2467zQ$argon2i$m=262144,t=2,p=1$c29tZXNhbHQ$Pmiaqj0op3zyvHKlGsUxZnYXURgvHuKS4/Z3p9pMJGcZ@fd4dd83d762c49bdeaf57c47bdcd0c2f1babf863fdeb490df63ede9975fccf06zN$argon2i$m=256,t=2,p=1$c29tZXNhbHQ$/U3YPXYsSb3q9XxHvc0MLxur+GP960kN9j7emXX8zwYZ@b6c11560a6a9d61eac706b79a2f97d68b4463aa3ad87e00c07e2b01e90c564fbzN$argon2i$m=256,t=2,p=2$c29tZXNhbHQ$tsEVYKap1h6scGt5ovl9aLRGOqOth+AMB+KwHpDFZPsZ@81630552b8f3b1f48cdb1992c4c678643d490b2b5eb4ff6c4b3438b5621724b2zP$argon2i$m=65536,t=1,p=1$c29tZXNhbHQ$gWMFUrjzsfSM2xmSxMZ4ZD1JCytetP9sSzQ4tWIXJLIZ@f212f01615e6eb5d74734dc3ef40ade2d51d052468d8c69440a3a1f2c1c2847bzP$argon2i$m=65536,t=4,p=1$c29tZXNhbHQ$8hLwFhXm6110c03D70Ct4tUdBSRo2MaUQKOh8sHChHsZdifferentpasswordZ@e9c902074b6754531a3a0be519e5baf404b30ce69b3f01ac3bf21229960109a3zP$argon2i$m=65536,t=2,p=1$c29tZXNhbHQ$6ckCB0tnVFMaOgvlGeW69ASzDOabPwGsO/ISKZYBCaMZdiffsaltZ@79a103b90fe8aef8570cb31fc8b22259778916f8336b7bdac3892569d4f1c497zP$argon2i$m=65536,t=2,p=1$ZGlmZnNhbHQ$eaEDuQ/orvhXDLMfyLIiWXeJFvgza3vaw4kladTxxJcZ@c1628832147d9720c5bd1cfd61367078729f6dfb6f8fea9ff98158e0d7816ed0zU$argon2i$v=19$m=65536,t=2,p=1$c29tZXNhbHQ$wWKIMhR9lyDFvRz9YTZweHKfbftvj+qf+YFY4NeBbtAZ@d1587aca0922c3b5d6a83edab31bee3c4ebaef342ed6127a55d19b2351ad1f41zW$argon2i$v=19$m=1048576,t=2,p=1$c29tZXNhbHQ$0Vh6ygkiw7XWqD7asxvuPE667zQu1hJ6VdGbI1GtH0EZ@296dbae80b807cdceaad44ae741b506f14db0959267b183b118f9b24229bc7cbzV$argon2i$v=19$m=262144,t=2,p=1$c29tZXNhbHQ$KW266AuAfNzqrUSudBtQbxTbCVkmexg7EY+bJCKbx8sZ@89e9029f4637b295beb027056a7336c414fadd43f6b208645281cb214a56452fzS$argon2i$v=19$m=256,t=2,p=1$c29tZXNhbHQ$iekCn0Y3spW+sCcFanM2xBT63UP2sghkUoHLIUpWRS8Z@4ff5ce2769a1d7f4c8a491df09d41a9fbe90e5eb02155a13e4c01e20cd4eab61S$argon2i$v=19$m=256,t=2,p=2$c29tZXNhbHQ$T/XOJ2mh1/TIpJHfCdQan76Q5esCFVoT5MAeIM1Oq2EZ@d168075c4d985e13ebeae560cf8b94c3b5d8a16c51916b6f4ac2da3ac11bbecfzU$argon2i$v=19$m=65536,t=1,p=1$c29tZXNhbHQ$0WgHXE2YXhPr6uVgz4uUw7XYoWxRkWtvSsLaOsEbvs8Z@aaa953d58af3706ce3df1aefd4a64a84e31d7f54175231f1285259f88174ce5bzU$argon2i$v=19$m=65536,t=4,p=1$c29tZXNhbHQ$qqlT1YrzcGzj3xrv1KZKhOMdf1QXUjHxKFJZ+IF0zlsZ@14ae8da01afea8700c2358dcef7c5358d9021282bd88663a4562f59fb74d22eezU$argon2i$v=19$m=65536,t=2,p=1$c29tZXNhbHQ$FK6NoBr+qHAMI1jc73xTWNkCEoK9iGY6RWL1n7dNIu4Z@b0357cccfbef91f3860b0dba447b2348cbefecadaf990abfe9cc40726c521271zU$argon2i$v=19$m=65536,t=2,p=1$ZGlmZnNhbHQ$sDV8zPvvkfOGCw26RHsjSMvv7K2vmQq/6cxAcmxSEnEZ@09316115d5cf24ed5a15a31a3ba326e5cf32edc24702987c02b6566f61913cf7zV$argon2id$v=19$m=65536,t=2,p=1$c29tZXNhbHQ$CTFhFdXPJO1aFaMaO6Mm5c8y7cJHAph8ArZWb2GRPPcZ@78fe1ec91fb3aa5657d72e710854e4c3d9b9198c742f9616c2f085bed95b2e8czW$argon2id$v=19$m=262144,t=2,p=1$c29tZXNhbHQ$eP4eyR+zqlZX1y5xCFTkw9m5GYx0L5YWwvCFvtlbLowZ@9dfeb910e80bad0311fee20f9c0e2b12c17987b4cac90c2ef54d5b3021c68bfezT$argon2id$v=19$m=256,t=2,p=1$c29tZXNhbHQ$nf65EOgLrQMR/uIPnA4rEsF5h7TKyQwu9U1bMCHGi/4Z@6d093c501fd5999645e0ea3bf620d7b8be7fd2db59c20d9fff9539da2bf57037zT$argon2id$v=19$m=256,t=2,p=2$c29tZXNhbHQ$bQk8UB/VmZZF4Oo79iDXuL5/0ttZwg2f/5U52iv1cDcZ@f6a5adc1ba723dddef9b5ac1d464e180fcd9dffc9d1cbf76cca2fed795d9ca98zV$argon2id$v=19$m=65536,t=1,p=1$c29tZXNhbHQ$9qWtwbpyPd3vm1rB1GThgPzZ3/ydHL92zKL+15XZypgZ@9025d48e68ef7395cca9079da4c4ec3affb3c8911fe4f86d1a2520856f63172czV$argon2id$v=19$m=65536,t=4,p=1$c29tZXNhbHQ$kCXUjmjvc5XMqQedpMTsOv+zyJEf5PhtGiUghW9jFywZ@0b84d652cf6b0c4beaef0dfe278ba6a80df6696281d7e0d2891b817d8c458fdezV$argon2id$v=19$m=65536,t=2,p=1$c29tZXNhbHQ$C4TWUs9rDEvq7w3+J4umqA32aWKB1+DSiRuBfYxFj94Z@bdf32b05ccc42eb15d58fd19b1f856b113da1e9a5874fdcc544308565aa8141czV$argon2id$v=19$m=65536,t=2,p=1$ZGlmZnNhbHQ$vfMrBczELrFdWP0ZsfhWsRPaHppYdP3MVEMIVlqoFBwc seZdZejZddedfedfddgZgdZ de dd d d d d dfgZ fddZ d(fdd Z ddZddZddZddZddZddZd d!Zd"d#Zd$d%ZGd&d'd'ejZZS))_base_argon2_test)rz>$argon2i$v=19$m=256,t=1,p=1$c29tZXNhbHQ$AJFIsNZTMKTAewB4+ETN1A)rz>$argon2i$v=19$m=380,t=2,p=2$c29tZXNhbHQ$SrssP8n7m/12VWPM8dvNrwzI$argon2i$v=19$m=512,t=2,p=2$1sV0O4PWLtc12Ypv1f7oGw$z+yqzlKtrq3SaNfXDfIDnQ) passwordz>$argon2i$v=19$m=512,t=2,p=2$c29tZXNhbHQ$Fb5+nPuLzZvtqKRwqUEtUQ)rzL$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+ETN1AirsomesaltsHS0{xD)typer r r rchecksumcstt|tdddS)Nignorez.*Using argon2pure backend.*)superr setUpWarningswarningsfilterwarningsself __class__rrr*sz_base_argon2_test.setUpWarningsNc s`|jdkrD|p|jjfi|}|dd}|j|_|js$argon2i$v=19$m=512,t=2,p=2$c29tZXNhbHQ$uEeXt1dxN1iFKGhklseW4wr1r argon2pure) r5r4r;r<r= assertEqualZgenhash assertTrue assertFalse)r.r5Zsample1Zsample2Zsample3rrrtest_data_parameters   z%_base_argon2_test.test_data_parametercCs|t|jjdddS)Nstubzj$argon2i$v=19$m=65536,t=2,p=4,keyid=ABCD,data=EFGH$c29tZXNhbHQ$IMit9qkFULCMA/ViizL57cnTLOa5DiVM9eMwpAvPwr4r:r-rrrtest_keyid_and_data_parameters!sz0_base_argon2_test.test_keyid_and_data_parameterscCs|j}|d|jv|jD]}||tq|d|jv|d|jv||j|jv|}|d}||}|d=|fd|ji||fi||fddi||j t |fddi|dS)Nr&r"drr3TxXx) r5rAZ setting_kwds type_valuesZassertIsInstancerr&Zget_sample_hashZ parsehashr; ValueError)r.clsvaluer5rkwdsrrr test_type_kwd's   z_base_argon2_test.test_type_kwdcCs|j}|j}|jD]}||krq6qtd||jfdd}|}||j||j|d}||j|||j||||||||||jt|jdd|j|d}||j|||j||||jddddS)Nz5expected to find alternate type: default=%r values=%rcSs |ddjS)NTr2r&)rJrrreffective_type[sz9_base_argon2_test.test_type_using..effective_typerNrGIr")r5r&rHAssertionErrorr6r@r;rI)r.r5Z orig_typeZalt_typerOsubclsrrrtest_type_usingMs*   z!_base_argon2_test.test_type_usingcCsB|j}|d}|||tdd|}|||dS)NrDz \$argon2\w+\$z $argon2d$)r5rrB needs_updateresubrA)r.r5rZhash2rrrtest_needs_update_w_typews  z*_base_argon2_test.test_needs_update_w_typecCsH|jjddddd}d}|jdkr4|||n|||dS)Nirr )r time_costr digest_size[$argon2i$m=65536,t=2,p=4$c29tZXNhbHQAAAAAAAAAAA$QWLzI4TY9HkL2ZTLc8g6SinwdhZewYrzz9zxCo0bkGYr)r5r6Z max_versionrBrTrA)r.r5rrrrtest_needs_update_w_versions  z-_base_argon2_test.test_needs_update_w_versioncCs~|j}|jdkr|dd}|jddd|ddd}|d }||d d }|jddd|ddd}|d }||d d S)z3verify we're using right base64 encoding for argon2rz,handler uses wrong version for sample hashesr%r#rrXr")r rYr rZ checksum_sizer&rrssomesaltz^$argon2i$v=19$m=256,t=2,p=2$c29tZXNhbHQAAAAAAAAAAA$rqnbEp1/jFDUEKZZmw+z14amDsFqMDC53dIe57ZHD38N)r5r r8r6rr@)r.r5rZtemprrrrtest_argon_byte_encodings       z*_base_argon2_test.test_argon_byte_encodingc@s6eZdZejjZejdddddZddZ dS) z#_base_argon2_test.FuzzHashGeneratorrandom_memory_cost random_type)r r&cCs|j|jjS)N)rngchoicer5rHr-rrrr_sz/_base_argon2_test.FuzzHashGenerator.random_typecCs0|jjdkr|ddddS|ddddSdS)Nr?ir#ii@i)testr4 randintgaussr-rrrr^s z6_base_argon2_test.FuzzHashGenerator.random_memory_costN) __name__ __module__ __qualname__rFuzzHashGeneratorZ settings_mapcopyupdater_r^rrrrrhs rh)N)rerfrgrargon2r5rrknown_correct_hashesZknown_malformed_hashesrZknown_parsehash_resultsr*r7r9r>rCrErMrSrWr\r]rrh __classcell__rrr/rr s6    :&*  r c@s.eZdZejgdZeddeDdS)argon2_argon2_cffi_test))rr[)rzU$argon2i$v=19$m=65536,t=2,p=4$c29tZXNhbHQ$IMit9qkFULCMA/ViizL57cnTLOa5DiVM9eMwpAvPwr4)rzU$argon2d$v=19$m=65536,t=2,p=4$c29tZXNhbHQ$cZn5d+rFh+ZfuRhm2iGUGgcrW5YLeM6q7L3vBsdmFA0)rzV$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+CZabIQccs6|].}|dtdrdndkr|d|dfVqdS)r ZfullrrrrN)r.0inforrr sz!argon2_argon2_cffi_test.N)rerfrgr rlextendreference_datarrrrrns! rnr1c@sVeZdZejjdddZde_ej ddZ e dde DGdd d ej Z dS) argon2_argon2pure_testrXr)r r TNccs*|]"}|ddkr|d|dfVqdS)r rrrNrrorrrrrs z argon2_argon2pure_test.c@seZdZddZdS)z(argon2_argon2pure_test.FuzzHashGeneratorcCs|ddddS)Nrr$r)rdr-rrr random_roundssz6argon2_argon2pure_test.FuzzHashGenerator.random_roundsN)rerfrgrvrrrrrhsrh) rerfrgrrkr6r5Zpure_use_threadsr rlrsrtrhrrrrrus rur?)__doc__ZloggingZ getLoggerrelogrUr+ZpasslibrZpasslib.utils.compatrZpasslib.tests.utilsrrZpasslib.tests.test_handlersrrrr rtrsr Zcreate_backend_casernrurrrrs   ((&%)