ó õùPc@sdZdZddlZddlZejddkrWejddkrWddlTnddlTddlZddlm Z m Z m Z d „Z d ej fd „ƒYZd efd „ƒYZdefd„ƒYZid„Zedkr d„ZejddƒndS(s(Self-test suite for Crypto.PublicKey.DSAs$Id$iÿÿÿÿNiii(t*(tlist_test_casesta2b_hextb2a_hexcCs?t|tƒr"dj|jƒƒStdƒj|jƒƒSdS(s,Remove whitespace from a text or byte stringtN(t isinstancetstrtjointsplittb(ts((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyt_sws&stDSATestcBsãeZedƒZedƒZedƒZedƒZedƒZedƒZedƒZ e e dƒƒZ edƒZ ed ƒZed ƒZd „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„ZRS(s¯19131871 d75b1612 a819f29d 78d1b0d7 346f7aa7 7bb62a85 9bfd6c56 75da9d21 2d3a36ef 1672ef66 0b8c7c25 5cc0ec74 858fba33 f44c0669 9630a76b 030ee333s¯626d0278 39ea0a13 413163a5 5b4cb500 299d5522 956cefcb 3bff10f3 99ce2c2e 71cb9de5 fa24babf 58e5b795 21925c9c c42e9f6f 464b088c c572af53 e6d78802s¯8df2a494 492276aa 3d25759b b06869cb eac0d83a fb8d0cf7 cbb8324f 0d7882e5 d0762fc5 b7210eaf c2e9adac 32ab7aac 49693dfb f83724c2 ec0736ee 31c80291s,c773218c 737ec8ee 993b4f2d ed30f48e dace915fs,2070b322 3dba372f de1c0ffc 7b2e3b49 8b260614s,358dad57 1462710f 50e254cf 1a376b2b deaadfbfs,0d516729 8202e49b 4116ac10 4fc3f415 ae52f917tabcs,a9993e36 4706816a ba3e2571 7850c26c 9cd0d89ds,8bac1ab6 6410435c b7181f95 b16ab97c 92b341c0s,41e2345f 1f56df24 58f426d1 55b4ba2d b6dcd8c8cCsIddlmaddlmaddlmam}mat|_dS(Niÿÿÿÿ(tDSA(tRandom(t bytes_to_longtinversetsize( tCrypto.PublicKeyRtCryptoRtCrypto.Util.numberRRRtdsa(tselfR((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pytsetUpKscCs<|jjdƒ}|j|ƒ|jƒ}|j|ƒdS(s7DSA (default implementation) generated key (1 argument)iN(Rtgeneratet_check_private_keyt publickeyt_check_public_key(RtdsaObjtpub((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyttest_generate_1argSs  cCsH|jjdtjƒjƒ}|j|ƒ|jƒ}|j|ƒdS(s8DSA (default implementation) generated key (2 arguments)iN(RRRtnewtreadRRR(RRR((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyttest_generate_2argZs  cCsxg|j|j|j|jfD]}tt|ƒƒ^q\}}}}|jj||||fƒ}|j|ƒdS(s6DSA (default implementation) constructed key (4-tuple)N( tytgtptqRRRt constructt_test_verification(RtparamR#R$R%R&R((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyttest_construct_4tupleasIcCs‘g|j|j|j|j|jfD]}tt|ƒƒ^q%\}}}}}|jj|||||fƒ}|j |ƒ|j |ƒdS(s6DSA (default implementation) constructed key (5-tuple)N( R#R$R%R&txRRRR't _test_signingR((RR)R#R$R%R&R+R((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyttest_construct_5tuplegsR! cCs€|jd|jƒƒ|jd|jƒƒ|jd|jƒƒ|jd|jƒƒ|j|j|jjƒ|j|j|jjƒ|j|j|jjƒ|j|j |jj ƒ|j|j |jj ƒ|jd|j|j kƒ|jdt |j ƒƒ|jd|jd|j ƒ|j|jt |j|j |jƒƒ|jdd|j kov|j knƒdS(Niii ( t assertEqualt has_privatetcan_signt can_encryptt can_blindR#tkeyR$R%R&R+Rtpow(RR((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyRns(cCsÃt|jƒ}t|jƒ}|jd|jƒƒ|jd|jƒƒ|jd|jƒƒ|jd|jƒƒ|j|j|j jƒ|j|j |j j ƒ|j|j |j j ƒ|j|j |j j ƒ|jdt |dƒƒ|jdt |j dƒƒ|jd|j |j kƒ|jdt|j ƒƒ|jd|j d|j ƒ|jt|j||ƒ|j|jƒ|jƒktƒ|j|jƒ|jƒktƒdS(NiiR+i (Rtktm_hashR.R/R0R1R2R#R3R$R%R&thasattrRt assertRaisest TypeErrortsignRtTruetFalse(RRR5R6((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyRƒs$"cCs€t|jƒ}t|jƒ}tt|jƒƒ}tt|jƒƒ}|j||ƒ\}}|j||f||fƒdS(N(RR5R6RtrR R:R.(RRR5R6R=R tr_outts_out((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyR,£s cCs‹t|jƒ}tt|jƒƒ}tt|jƒƒ}|jd|j|||fƒƒ|jd|j|tdƒ||fƒƒdS(Niit(RR6RR=R R.tverifyR (RRR6R=R ((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyR(«s "(t__name__t __module__R R#R$R%R&R+R5t k_inverseRR tmR6R=R RRR"R*R-RRR,R((((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyR -s.                 tDSAFastMathTestcBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCs&tj|ƒtjdtƒ|_dS(Nt use_fast_math(R RRtDSAImplementationR;R(R((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyR³s cCstj|ƒdS(s9DSA (_fastmath implementation) generated key (1 argument)N(R R(R((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyR·scCstj|ƒdS(s:DSA (_fastmath implementation) generated key (2 arguments)N(R R"(R((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyR"»scCstj|ƒdS(s8DSA (_fastmath implementation) constructed key (4-tuple)N(R R*(R((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyR*¿scCstj|ƒdS(s8DSA (_fastmath implementation) constructed key (5-tuple)N(R R-(R((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyR-Ãs(RBRCRRR"R*R-(((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyRF²s     tDSASlowMathTestcBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCs&tj|ƒtjdtƒ|_dS(NRG(R RRRHR<R(R((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyRÈs cCstj|ƒdS(s9DSA (_slowmath implementation) generated key (1 argument)N(R R(R((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyRÌscCstj|ƒdS(s:DSA (_slowmath implementation) generated key (2 arguments)N(R R"(R((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyR"ÐscCstj|ƒdS(s8DSA (_slowmath implementation) constructed key (4-tuple)N(R R*(R((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyR*ÔscCstj|ƒdS(s8DSA (_slowmath implementation) constructed key (5-tuple)N(R R-(R((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyR-Øs(RBRCRRR"R*R-(((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyRIÇs     cCsòg}|ttƒ7}y$ddlm}|ttƒ7}Wn¡tk rÝddlm}ddl}t j j t j j t j j |j|jƒƒƒƒd|dƒƒ}t j j|ƒrÞtddd|ƒ‚qÞnX|ttƒ7}|S( Niÿÿÿÿ(t _fastmath(tget_config_vars/../../PublicKey/_fastmathtSOs-While the _fastmath module exists, importing s<it failed. This may point to the gmp or mpir shared library s.not being in the path. _fastmath was found at (RR RRJRFt ImportErrortdistutils.sysconfigRKtinspecttostpathtnormpathtdirnametabspathtgetfilet currentframetexistsRI(tconfigttestsRJRKROt_fm_path((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyt get_testsÝs   >t__main__cCstjtƒƒS(N(tunittestt TestSuiteR[(((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pytñst defaultTesttsuite(t__doc__t __revision__tsysRPt version_infotCrypto.Util.py21compattCrypto.Util.py3compatR]tCrypto.SelfTest.st_commonRRRR tTestCaseR RFRIR[RBRatmain(((s=..\python\site-packages\Crypto\SelfTest\PublicKey\test_DSA.pyts   &    …