ó j^ŽXc@s±dZddlZejeƒZddlZejddƒddlmZddl m Z m Z ddl m Z mZde fd „ƒYZejd ƒZejd ƒZdS( s?passlib.tests.test_handlers - tests for passlib hash algorithmsiÿÿÿÿNtignores .*using builtin scrypt backend.*(thash(t HandlerCaset TEST_MODE(t UPASS_TABLEtPASS_TABLE_UTF8t _scrypt_testcBs—eZejZddddedfedfdgZed ƒrXej ddgƒnddddgZ d„Z d„Z de jfd„ƒYZRS(tsA$scrypt$ln=4,r=1,p=1$$d9ZXYjhleyA7GcpCwYoEl/FrSETjB0ro39/6P+3iFEItpasswordsI$scrypt$ln=10,r=8,p=16$TmFDbA$/bq+HJ00cgB4VucZDQHp/nxq18vII3gw53N2Y0s3MWIttestsW$scrypt$ln=8,r=8,p=1$wlhLyXmP8b53bm1NKYVQqg$mTpvG8lzuuDk+DWz8HZIB6Vum6erDuUm0As5yU+VxWAsW$scrypt$ln=8,r=2,p=1$dO6d0xoDoLT2PofQGoNQag$g/Wf2A0vhHhaJM+addK61QPBthSmYB6uVTtQzh8CM3osW$scrypt$ln=7,r=8,p=1$jjGmtDamdA4BQAjBeA9BSA$OiWRHhQtpDx7M/793x6UXK14AD512jg/qNm/hkWZG4MtnaclsW$scrypt$ln=1,r=4,p=2$yhnD+J+Tci4lZCwFgHCuVQ$fAsEWmxSHuC0cHKMwKVFPzrQukgvK09Sj+NueTSxKdstfullt pleaseletmeinsU$scrypt$ln=14,r=8,p=1$U29kaXVtQ2hsb3JpZGU$cCO9yzr9c0hGHAbNgf046/2o+7qQT44+qbVD9lRdofIsH$7$C6..../....SodiumChloride$kBGj9fHznVYFQMEn/qDCfrDevf9YDtcDdKvEqHJLV8DsT$scrypt$ln=10,r=1$wvif8/4fg1Cq9V7L2dv73w$bJcLia1lyfQ1X2x0xflehwVXPzWIUQWWdnlGwfVzBeQsW$scrypt$ln=0,r=1,p=1$wvif8/4fg1Cq9V7L2dv73w$bJcLia1lyfQ1X2x0xflehwVXPzWIUQWWdnlGwfVzBeQsX$scrypt$ln=10,r=A,p=1$wvif8/4fg1Cq9V7L2dv73w$bJcLia1lyfQ1X2x0xflehwVXPzWIUQWWdnlGwfVzBeQs`$scrypt$ln=10,r=134217728,p=8$wvif8/4fg1Cq9V7L2dv73w$bJcLia1lyfQ1X2x0xflehwVXPzWIUQWWdnlGwfVzBeQcCs'tt|ƒjƒtjddƒdS(NRs .*using builtin scrypt backend.*(tsuperRt setUpWarningstwarningstfilterwarnings(tself((sF/usr/lib/python2.7/site-packages/passlib/tests/test_handlers_scrypt.pyRXscCs<|jdkr"|jddƒntt|ƒj|ƒdS(Ntbuiltintroundsi(tbackendt setdefaultR Rtpopulate_settings(Rtkwds((sF/usr/lib/python2.7/site-packages/passlib/tests/test_handlers_scrypt.pyR\stFuzzHashGeneratorcBseZd„ZRS(cCs|jddddƒS(Nii ii(t randintgauss(R((sF/usr/lib/python2.7/site-packages/passlib/tests/test_handlers_scrypt.pyt random_roundsds(t__name__t __module__R(((sF/usr/lib/python2.7/site-packages/passlib/tests/test_handlers_scrypt.pyRbs(RsA$scrypt$ln=4,r=1,p=1$$d9ZXYjhleyA7GcpCwYoEl/FrSETjB0ro39/6P+3iFEI(RsI$scrypt$ln=10,r=8,p=16$TmFDbA$/bq+HJ00cgB4VucZDQHp/nxq18vII3gw53N2Y0s3MWI(R sW$scrypt$ln=8,r=8,p=1$wlhLyXmP8b53bm1NKYVQqg$mTpvG8lzuuDk+DWz8HZIB6Vum6erDuUm0As5yU+VxWA(RsW$scrypt$ln=8,r=2,p=1$dO6d0xoDoLT2PofQGoNQag$g/Wf2A0vhHhaJM+addK61QPBthSmYB6uVTtQzh8CM3o(R sW$scrypt$ln=1,r=4,p=2$yhnD+J+Tci4lZCwFgHCuVQ$fAsEWmxSHuC0cHKMwKVFPzrQukgvK09Sj+NueTSxKds(R sU$scrypt$ln=14,r=8,p=1$U29kaXVtQ2hsb3JpZGU$cCO9yzr9c0hGHAbNgf046/2o+7qQT44+qbVD9lRdofI(R sH$7$C6..../....SodiumChloride$kBGj9fHznVYFQMEn/qDCfrDevf9YDtcDdKvEqHJLV8D(RRRtscryptthandlerRRtknown_correct_hashesRtextendtknown_malformed_hashesRRRR(((sF/usr/lib/python2.7/site-packages/passlib/tests/test_handlers_scrypt.pyRs(         RR(t__doc__tloggingt getLoggerRtlogRRtpasslibRtpasslib.tests.utilsRRtpasslib.tests.test_handlersRRRtcreate_backend_casetscrypt_scrypt_testtscrypt_builtin_test(((sF/usr/lib/python2.7/site-packages/passlib/tests/test_handlers_scrypt.pyts  V