wec@sdZddlZddlmZmZddlmZddlmZddl m Z ddl m Z m Z mZdejfd YZd ejfd YZed6ddidd6pgZeed7ddidd6pg7ZxmeeD]_\ZZejdkr+e dZne ejZeejdZeedeeqWed8ddidd6pgZeed9ddidd6pg7ZxmeeD]_\ZZejdkre dZne ejZeejdZeed eeqWed:d!d"id#d6pDgZeed;d$d%id&d6plg7ZxmeeD]_\ZZejdkre dZne ejZeejd'Zeed(eeq}Wed<d)d*id+d6pgZeed=d,d-id.d6p*g7ZxmeeD]_\ZZejdkree dZne ejZeejd/Zeed0eeq;Wid1Ze d2krddlZd3Z!ej"d4d5ndS(>s&Self-test suite for Crypto.Hash.keccakiN(thexlifyt unhexlify(tload_test_vectors(tlist_test_cases(tkeccak(tbttobytestbchrt KeccakTestcBsPeZdZdZdZdZdZdZdZdZ RS(cCsxZd D]R}tjd|}|j|j|d|j}|j|j|dqWxRd D]J}tjd |}|j|j||j}|j|j|qdWdS(Niiiit digest_bitsiii i0i@t digest_bytes(iiii(ii i0i@(Rtnewt assertEqualt digest_size(tselfR thobjthobj2R ((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyttest_new_positive,s    cCs_tjdtdddj}tjddjtdj}|j||dS(NtdatasR i@(RR RtdigesttupdateR (Rtdigest1tdigest2((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyttest_new_positive2<s$'cCs|jttjtjdd}|jttjdddd|jttjdd|jttjdd|jttjdd|jttjdd|jttjdd|jttjdddS( NR iR i@iiiAi(t assertRaisest TypeErrorRR t ValueError(Rth((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyttest_new_negativeBscCstddtddg}tjdd}|j|dj|d|j}tjdd}|j|d|d|j|j|dS( Ni iii,R i@ii(RRR RRR (RtpiecesRR((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyt test_updateVs  cCs,tjdd}|jt|jddS(NR i@ustring(RR RRR(RR((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyttest_update_negative_scCsZtjdd}|j}|j|j||jt|ttddS(NR i@R(RR RR t assertTruet isinstancettypeR(RRR((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyt test_digestcs cCs|tjdd}|j}|j}|jt|t||j|j||jt|t ddS(NR iR( RR Rt hexdigestR RRR R!R"(RtmacRR$((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyttest_hex_digestls   cCstd}tjddd|d }|j}|jt|j|dtjddd|j}tjddd|d dt}|j|j||j|d|j|j|dS(NtrrrrtttR iRitupdate_after_digest( RRR RRRRtTrueR (RtmsgRtdig1tdig2((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyttest_update_after_digestxs  "( t__name__t __module__RRRRRR#R&R-(((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyR*s     t KeccakVectorscBseZRS((R.R/(((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyR0stHashRsShortMsgKAT_224.txtsShort Messages KAT 224cCs t|S(N(tint(tx((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pytstlensLongMsgKAT_224.txtsLong Messages KAT 224cCs t|S(N(R2(R3((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyR4sitcCs2tjddd|}|j|j|dS(NR iR(RR R R(RRtresultR((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pytnew_testss test_224_%dsShortMsgKAT_256.txtsShort Messages KAT 256cCs t|S(N(R2(R3((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyR4ssLongMsgKAT_256.txtsLong Messages KAT 256cCs t|S(N(R2(R3((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyR4scCs2tjddd|}|j|j|dS(NR iR(RR R R(RRR7R((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyR8ss test_256_%dsShortMsgKAT_384.txtsShort Messages KAT 384cCs t|S(N(R2(R3((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyR4ssLongMsgKAT_384.txtsLong Messages KAT 384cCs t|S(N(R2(R3((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyR4scCs2tjddd|}|j|j|dS(NR iR(RR R R(RRR7R((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyR8ss test_384_%dsShortMsgKAT_512.txtsShort Messages KAT 512cCs t|S(N(R2(R3((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyR4ssLongMsgKAT_512.txtsLong Messages KAT 512cCs t|S(N(R2(R3((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyR4scCs2tjddd|}|j|j|dS(NR iR(RR R R(RRR7R((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyR8ss test_512_%dcCs*g}|tt7}|tt7}|S(N(RRR0(tconfigttests((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyt get_testsst__main__cCstjtS(N(tunittestt TestSuiteR;(((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyR4st defaultTesttsuite(R1skeccak(R1skeccak(R1skeccak(R1skeccak(R1skeccak(R1skeccak(R1skeccak(R1skeccak(#t__doc__R=tbinasciiRRtCrypto.SelfTest.loaderRtCrypto.SelfTest.st_commonRt Crypto.HashRtCrypto.Util.py3compatRRRtTestCaseRR0ttest_vectors_224t enumeratetidxttvR5RR*tmdR8tsetattrttest_vectors_256ttest_vectors_384ttest_vectors_512R;R.R@tmain(((sF/usr/lib64/python2.7/site-packages/Crypto/SelfTest/Hash/test_keccak.pyts `