a fWcdI@sdZddlZeeZddlZddlmZddlm Z ddl m Z m Z ddl mZGddde ZGd d d e ZGd d d e ZGd dde ZGddde ZGddde ZGddde ZGddde ZGddde ZdS)z?passlib.tests.test_handlers - tests for passlib hash algorithmsN)hash)u)TestCase HandlerCase) UPASS_WAVc@seZdZddZdS)ldap_pbkdf2_testcCs@|tjdd|tjdd|tjdddS)ztest ldap pbkdf2 wrapperspasswordz?{PBKDF2}1212$OB.dtnSEXZK8U5cgxU/GYQ$y5LKPOplRmok7CZp/aqVDVg8zGIzV{PBKDF2-SHA256}1212$4vjV83LKPjQzk31VI4E0Vw$hsYF68OiOUPdDZ1Fg.fJPeq1h/gXXY7acBp9/6c.tmQz{PBKDF2-SHA512}1212$RHY0Fr3IDMSVO/RSZyb5ow$eNLfBK.eVozomMr.1gYa17k9B7KIK25NOEshvhrSX.esqY3s.FvWZViXz4KoLlQI.BzY/YTNJOiKc5gBYFYGwwN) assertTruerZldap_pbkdf2_sha1verifyZldap_pbkdf2_sha256Zldap_pbkdf2_sha512selfr F/usr/lib/python3.9/site-packages/passlib/tests/test_handlers_pbkdf2.py test_wrapperss$zldap_pbkdf2_test.test_wrappersN)__name__ __module__ __qualname__rr r r rrsrc@s$eZdZejZdedfgZdgZdS)atlassian_pbkdf2_sha1_test)ZadminzI{PKCS5S2}c4xaeTQM0lUieMS3V5voiexyX9XhqC2dBd5ecVy60IPksHChwoTAVYFrhsgoq8/pzI{PKCS5S2}cE9Yq6Am5tQGdHSHhky2XLeOnURwzaLBG2sur7FHKpvy2u0qDn6GcVGRjlmJoIUyz{PKCS5S2}c4xaeTQM0lUieMS3V5voiexyX9XhqC2dBd5ecVy!0IPksHChwoTAVYFrhsgoq8/p{PKCS5S2}c4xaeTQM0lUieMS3V5voiexyX9XhqC2dBd5ecVy60IPksHChwoTAVYFrhsgoq8/{PKCS5S2}c4xaeTQM0lUieMS3V5voiexyX9XhqC2dBd5ecVy60IPksHChwoTAVYFrhsgoq8/=N) rrrrZatlassian_pbkdf2_sha1handlerrknown_correct_hashesknown_malformed_hashesr r r rr6s rc@s&eZdZejZdedfgZgdZdS)pbkdf2_sha1_test)rz?$pbkdf2$1212$OB.dtnSEXZK8U5cgxU/GYQ$y5LKPOplRmok7CZp/aqVDVg8zGIz?$pbkdf2$1212$THDqatpidANpadlLeTeOEg$HV3oi1k5C5LQCgG1BMOL.BX4YZc)z@$pbkdf2$01212$THDqatpidANpadlLeTeOEg$HV3oi1k5C5LQCgG1BMOL.BX4YZcz;$pbkdf2$$THDqatpidANpadlLeTeOEg$HV3oi1k5C5LQCgG1BMOL.BX4YZcz@$pbkdf2$1212$THDqatpidANpadlLeTeOEg$HV3oi1k5C5LQCgG1BMOL.BX4YZc$N) rrrrZ pbkdf2_sha1rrrrr r r rrMsrc@seZdZejZdedfgZdS)pbkdf2_sha256_test)rzV$pbkdf2-sha256$1212$4vjV83LKPjQzk31VI4E0Vw$hsYF68OiOUPdDZ1Fg.fJPeq1h/gXXY7acBp9/6c.tmQzV$pbkdf2-sha256$1212$3SABFJGDtyhrQMVt1uABPw$WyaUoqCLgvz97s523nF4iuOqZNbp5Nt8do/cuaa7AiIN)rrrrZ pbkdf2_sha256rrrr r r rr`s rc@seZdZejZdedfgZdS)pbkdf2_sha512_test)rz$pbkdf2-sha512$1212$RHY0Fr3IDMSVO/RSZyb5ow$eNLfBK.eVozomMr.1gYa17k9B7KIK25NOEshvhrSX.esqY3s.FvWZViXz4KoLlQI.BzY/YTNJOiKc5gBYFYGwwz$pbkdf2-sha512$1212$KkbvoKGsAIcF8IslDR6skQ$8be/PRmd88Ps8fmPowCJttH9G3vgxpG.Krjt3KT.NP6cKJ0V4Prarqf.HBwz0dCkJ6xgWnSj2ynXSV7MlvMa8QN)rrrrZ pbkdf2_sha512rrrr r r rrks rc@s(eZdZejZeddfdedfgZdS)cta_pbkdf2_sha1_testu hashy the ☃z4$p5k2$1000$ZxK4ZBJCfQg=$jJZVscWtO--p1-xIZl6jhO2LKR0=)rz%$p5k2$1$$h1TDLGSw9ST8UMAPeIE13i0t12c=z4$p5k2$4321$OTg3NjU0MzIx$jINJrSvZ3LXeIbUdrJkRpN62_WQ=N) rrrrZcta_pbkdf2_sha1rrrrr r r rrxs rc@s$eZdZejZddddedfgZdS)dlitz_pbkdf2_sha1_test)Zcloadmz,$p5k2$$exec$r1EWMCMk7Rlv3L/RNcFXviDefYa0hlql)Zgnuz1$p5k2$c$u9HvcT4d$Sd1gwSVCLZYAuqZ25piRnbBEoAesaa/g)Zdclz1$p5k2$d$tUsch7fU$nqDkaxMDOFBeJsTSfABsyn.PYUXilHwL)Zspamz3$p5k2$3e8$H0NX9mT/$wk/sE8vv6OMKuMaqazCJYDSUhWY9YB2Jz0$p5k2$$KosHgqNo$9mjN8gqjt02hDoP0c2J0ABtLIwtot8cQN)rrrrZdlitz_pbkdf2_sha1rrrr r r rrsrc@seZdZejZedfdgZdS)grub_pbkdf2_sha512_testzgrub.pbkdf2.sha512.10000.BCAC1CEC5E4341C8C511C5297FA877BE91C2817B32A35A3ECF5CA6B8B257F751.6968526A2A5B1AEEE0A29A9E057336B48D388FFB3F600233237223C2104DE1752CEC35B0DD1ED49563398A282C0F471099C2803FBA47C7919CABC43192C68F60)Ztoomanysecretsagrub.pbkdf2.sha512.10000.9B436BB6978682363D5C449BBEAB322676946C632208BC1294D51F47174A9A3B04A7E4785986CD4EA7470FAB8FE9F6BD522D1FC6C51109A8596FB7AD487C4493.0FE5EF169AFFCB67D86E2581B1E251D88C777B98BA2D3256ECC9F765D84956FC5CA5C4B6FD711AA285F0A04DCF4634083F9A20F4B6F339A52FBD6BED618E527BN)rrrrZgrub_pbkdf2_sha512rrrr r r rrs rcseZdZejZddeddfeddfeddfgZgdZfdd Z d d Z d d Z ddZ ddZ ddZddZd!ddZddZddZddZdd ZZS)" scram_test)pencil>$scram$4096$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30)r$scram$4096$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30,sha-256=qXUXrlcvnaxxWG00DdRgVioR2gnUpuX5r.3EZ1rdhVY,sha-512=lzgniLFcvglRLS0gt.C4gy.NurS3OIOVRAU1zZOV4P.qFiVFO2/edGQSu/kD1LwdX0SNV/KsPdHSwEl5qRTuZQuIX àz>$scram$6400$0BojBCBE6P2/N4bQ$sha-1=YniLes.b8WFMvBhtSACZyyvxeCcu Ⅸ àu­IX à) z?$scram$04096$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30z>$scram$409A$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30z>$scram$4096$QSXCR.Q6sek8bf9-$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30z>$scram$4096$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX3-z$scram$4096$QSXCR.Q6sek8bf92z$scram$4096$QSXCR.Q6sek8bf92$z?$scram$4096$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30$zq$scram$4096$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30sha-256=qXUXrlcvnaxxWG00DdRgVioR2gnUpuX5r.3EZ1rdhVYze$scram$4096$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30,shaxxx-190=HZbuOlKbWl.eR8AfIposuKbhX30z@$scram$4096$QSXCR.Q6sek8bf92$sha-256=HZbuOlKbWl.eR8AfIposuKbhX30z=$scram$4096$QSXCR.Q6sek8bf92$sha1=HZbuOlKbWl.eR8AfIposuKbhX30cs&tt||tdddS)Nignorez norm_hash_name\(\): unknown hash)superrsetUpZrequire_stringprepwarningsfilterwarningsr  __class__r rr#szscram_test.setUpcstdddfdd}|dddtjjt|d|d d g|d gd |d d gd dgt|dgjt|gddt|d dgjt|d gd diddS)ztest parsing of 'algs' settings AAAAAAAAAA)Zsaltroundscs0D]}|||qjfd|i|jS)Nalgs) setdefaultrr*)r*kwdskdefaultsr r rparsesz&scram_test.test_90_algs..parseNT) use_defaultssha1sha-1zsha1, sha256, md5)md5r3sha-256Zsha256r5)r*r1z shaxxx-190s)checksum) dict assertEqualrscram default_algs assertRaises TypeError ValueError RuntimeError)r r0r r.r test_90_algss  zscram_test.test_90_algscCs<|jt|jddtddid|jt|jdddiddS) z+test internal parsing of 'checksum' keywordTr3X)r1r6r5s XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXN)r;r<rrr=r r r rtest_90_checksumss   zscram_test.test_90_checksumscCs|jj}d}d}|||d|ddf|||d|ddf|||d|dd f|t||d d }|t||d |t||d|t||d d S)z test scram.extract_digest_info()z'$scram$10$AAAAAA$sha-1=AQ,bbb=Ag,ccc=AwsSHA1 ZbbbZcccZdddz$scram$10$....$sha-1,bbb,cccr3N)rZextract_digest_infor8r;KeyErrorr=)r Zedihscr r rtest_91_extract_digest_info*sz&scram_test.test_91_extract_digest_infocCsH|jj}||ddg||ddddg||dgddS) z test scram.extract_digest_algs()rr3Zhashlib)formatr2r )r3r5zsha-512N)rextract_digest_algsr8)r Zedar r rtest_92_extract_digest_algs<s  z&scram_test.test_92_extract_digest_algscCs|jj}d}d}||td|dd|||d|dd|||td|dd |||d |dd |||d|dd d |t|d|dd|t|d|dd||td|ddd |dS)ztest scram.derive_digest()ss[tNuPnIZZnⅨr(r3sⅨzSHA-1IXr2sIXrCr4s3/ŽModzsha-666rzlatin-1N)rZ derive_digestr8rr;r=decode)r rs1Zd1r r rtest_93_derive_digestNsz scram_test.test_93_derive_digestcCs|td}||td|||td||td}||td|||td||t|jtd|t|jtd|dS) ztest hash/verify use saslprepuI­XrQrPóuóu‍óu﷐N)Z do_encryptrr Z do_verifyr;r=)r rIr r rtest_94_saslprepgszscram_test.test_94_saslprepr:cCsh|j}t|j}|jfi|di}||j|||jddg|d}|||ddgdS)z#using() -- 'default_algs' parametersha1,md5r4r3dummyN)rlistr:usingr8rrN)r paramrZorigsubclsh1r r rtest_94_using_w_default_algs{s  z'scram_test.test_94_using_w_default_algscCs|jdddS)zusing() -- 'algs' parameterr*)r[N)r^r r r rtest_94_using_w_algsszscram_test.test_94_using_w_algscCsd|jjdd}|d}||||jdd}||||jdd}|||dS)zneeds_update() -- algs settingrW)r*rXr2 sha1,sha256N)rrZr assertFalse needs_updater )r Zhandler1r]Zhandler2Zhandler3r r rtest_94_needs_update_algss   z$scram_test.test_94_needs_update_algscCs|j}ddlm}|dgdd}|d}|||ddg||||jd d}||||jd d}| ||d S) z)test handling of 'algs' in context objectr) CryptContextr9rW)Z scram__algsrXr4r3r2r`N) rZpasslib.contextrdrr8rNrarbcopyr )r rrdZc1rIZc2r r rtest_95_context_algss    zscram_test.test_95_context_algscsfdd}fdd}d}|d||d|d}t|d|d }t|d|d }|d||d|t|d|t|d|d S) ztest verify(full=True) flagcsj||S)Nrr rJrIr r rvpartsz-scram_test.test_96_full_verify..vpartcsjj||ddS)NT)Zfullrgrhr r rvfullsz-scram_test.test_96_full_verify..vfullr rZtapez$scram$4096$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30,sha-256=qXUXrlcvnaxxWG00DdRgVioR2gnUpuX5r.3EZ1rdhV,sha-512=lzgniLFcvglRLS0gt.C4gy.NurS3OIOVRAU1zZOV4P.qFiVFO2/edGQSu/kD1LwdX0SNV/KsPdHSwEl5qRTuZQz$scram$4096$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30,sha-256=qXUXrlcvnaxxWG00DdRgVioR2gnUpuX5r.3EZ1rdhVYa,sha-512=lzgniLFcvglRLS0gt.C4gy.NurS3OIOVRAU1zZOV4P.qFiVFO2/edGQSu/kD1LwdX0SNV/KsPdHSwEl5qRTuZQz$scram$4096$QSXCR.Q6sek8bf92$sha-1=HZbuOlKbWl.eR8AfIposuKbhX30,sha-256=R7RJDWIbeKRTFwhE9oxh04kab0CllrQ3kCcpZUcligc,sha-512=lzgniLFcvglRLS0gt.C4gy.NurS3OIOVRAU1zZOV4P.qFiVFO2/edGQSu/kD1LwdX0SNV/KsPdHSwEl5qRTuZQN)r rar;r=)r rirjrIr r rtest_96_full_verifys  zscram_test.test_96_full_verify)r:)rrrrr9rrrrr#r?rBrLrOrTrVr^r_rcrfrk __classcell__r r r&rrs(   #   r)__doc__ZloggingZ getLoggerrlogr$ZpasslibrZpasslib.utils.compatrZpasslib.tests.utilsrrZpasslib.tests.test_handlersrrrrrrrrrrr r r rs