gh!dZdZddlZddlmZmZmZddlmZddl m Z ddl m Z ddl TGd d ejZifd Zed krd ZejddSdS)z,Self-test suite for Crypto.PublicKey.ElGamalz$Id$N)list_test_casesa2b_hexb2a_hex)Random)ElGamal) bytes_to_long)*c eZdZddddddddd d d d d ddddd gZddddddddddddddddddgZdZd Zd!Zd"Zd#Z d$Z d%Z d.d'Z d(Z d)Zd*Zd+Zd,Zd-S)/ ElGamalTest@BA4CAEAAED8CBE952AFD2126C63EB3B345D65C2A0A73D2A3AD4138B6D09BD93305@60D063600ECED7C7C55146020E7A31C4476E9793BEAED420FEC9E77604CAE4EF.1D391BA2EE3C37FE1BA175A69B2C73A11238AD77675932.F5893C5BAB4131264066F57AB3D8AD89E391A0B68A68A148656C6C6F207468657265@32BFD5F487966CEA9E9356715788C491EC515E4ED48B58F0F00971E93AAA5EC7@7BE8FBFF317C93E82FCEF9BD515284BA506603FEA25D01C0CB874A31F315EE68)pgyxkptct1ct2ڀF1B18AE9F7B4E08FDA9A04832F4E919D89462FD31BF12F92791A93519F75076D6CE3942689CDFF2F344CAFF0F82D01864F69F3AECF566C774CBACF728B81A22707ڀ688628C676E4F05D630E1BE39D0066178CA7AA83836B645DE5ADD359B4825A12B02EF4252E4E6FA9BEC1DB0BE90F6D7C8629CABB6E531F472B2664868156E20C.14E60B1BDFD33436C0DA8A22FDC14A2CCDBBED0627CE68.38DBF14E1F319BDA9BAB33EEEADCAF6B2EA5250577ACE7ڀ290F8530C2CC312EC46178724F196F308AD4C523CEABB001FACB0506BFED676083FE0F27AC688B5C749AB3CB8A80CD6F7094DBA421FB19442F5A413E06A9772Bڀ1D69AAAD1DC50493FB1B8E8721D621D683F3BF1321BE21BC4A43E11B40C9D4D9C80DE3AAC2AB60D31782B16B61112E68220889D53C4C3136EE6F6CE61F8A23A0@D2F3C41EA66530838A704A48FFAC9334F4701ECE3A97CEE4C69DD01AE7129DD7@C3F9417DC0DAFEA6A05C1D2333B7A95E63B3F4F28CC962254B3256984D1012E7.165E4A39BE44D5A2D8B1332D416BC559616F536BC735BB@C7F0C794A7EAD726E25A47FF8928013680E73C51DD3D7D99BFDA8F492585928F@35CA98133779E2073EF31165AFCDEB764DD54E96ADE851715495F9C635E1E7C2@0135B88B1151279FE5D8078D4FC685EE81177EE9802AB123A73925FC1CB059A7)rrrrrhsig1sig2ڀE24CF3A4B8A6AF749DCA6D714282FE4AABEEE44A53BB6ED15FBE32B5D3C3EF9CC4124A2ECA331F3C1C1B667ACA3766825217E7B5F9856648D95F05330C6A19CF0Bڀ2AD3A1049CA5D4ED207B2431C79A8719BB4073D4A94E450EA6CEE8A760EB07ADB67C0D52C275EE85D7B52789061EE45F2F37D9B2AE522A51C28329766BFE68AC.16CBB4F46D9ECCF24FF9F7E63CAA3BD8936341555062ABڀ8A3D89A4E429FD2476D7D717251FB79BF900FFE77444E6BB8299DC3F84D0DD57ABAB50732AE158EA52F5B9E7D8813E81FD9F79470AE22F8F1CF9AEC820A78C69ڀBE001AABAFFF976EC9016198FBFEA14CBEF96B000CCC0063D3324016F9E91FE80D8F9325812ED24DDB2B4D4CF4430B169880B3CE88313B53255BD4EC0378586Fڀ5E266F3F837BA204E3BBB6DBECC0611429D96F8C7CE8F4EFDF9D4CB681C2A954468A357BF4242CEC7418B51DFC081BCD21299EF5B5A0DDEF3A139A1817503DDEc0|ddS)N)_test_random_key)selfs /builddir/build/BUILD/imunify360-venv-2.6.0/opt/imunify360/venv/lib64/python3.11/site-packages/Crypto/SelfTest/PublicKey/test_ElGamal.pytest_generate_180zElGamalTest.test_generate_180`s c"""""cF|jD]}||d}tj|d}||d|d}||d|d||d|ddS) NTkeyrrrrr)tve convert_tvr construct_encrypt assertEqual)r6tvdr;cts r7test_encryptionzElGamalTest.test_encryptioncs( . .BD))A#AeH--Cagqv..B   RUAeH - - -   RUAeH - - - -  . .r9c|jD]q}||d}tj|d}||d|df}|||drdS)NTr;rrr)r=r>rr?_decryptrA)r6rBrCr;rs r7test_decryptionzElGamalTest.test_decryptionks( * *BD))A#AeH--Cqx5233B   R4 ) ) ) )  * *r9c4|jD]}||d}tj|d}||d|d\}}|||d|||ddS)NTr;r)rr*r+)tvsr>rr?_signrA)r6rBrCr;r*r+s r7 test_signingzElGamalTest.test_signingrs( . .BD))A#AeH--C1S61S622JD$   T1V9 - - -   T1V9 - - - -  . .r9c||jD]}||d}tj|d}||d|d|df}||||d|ddz|df}||dS)NTr;r)r*r+r<)rJr>rr?_verify assertTrue assertFalse)r6rBrCr;ress r7test_verificationzElGamalTest.test_verificationzs( " "BD))A#AeH--C++qv& !F)'<>>C OOC ++qv& ! AfI'>@@C   S ! ! ! ! " "r9ct||jdddddx}}|dxxdz cc<|tt j||}d|d<|tt j||}|ddz|d<|tt j|dS)Nrr<r;listr>rJ assertRaises ValueErrorrr?r6tuptup0s r7 test_bad_key3zElGamalTest.test_bad_key3s$//$(1+q99%@AA"1"EEd A!  *g&7===A *g&7===QA *g&7=====r9ct||jdddx}}|dxxdz cc<|tt j|dS)Nrr<r;rTrVrZs r7 test_bad_key4zElGamalTest.test_bad_key4sc$//$(1+q99%@AAAd A!  *g&7=====r9rcd}i}|D]<}t||||<|s||vs|dvrt||||<=g|d<|D]}|dxx||gz cc<||=|S)zfConvert a test vector from textual form (hexadecimal ascii to either integers or byte strings.)rrrr)r*r+r;)keysrr)r6rBas_longs key_compstv2cs r7r>zElGamalTest.convert_tvs$  / /ARU^^CF /1 >>Q/-A-A&s1v..AE   A JJJ3q6( "JJJA r9c,tj|tjj}|||||}||| |dSN) rgeneraternewread_check_private_key_exercise_primitive publickey_check_public_key_exercise_public_primitive)r6bitselgObjpubs r7r5zElGamalTest._test_random_keys!$ (9:: '''   (((   s### ''/////r9c|||d|jcxko |jdz knc|t |j|jdz |jd|d|jcxko |jdz knc|t |j|j|j|jdSNr<)rO has_privaterrrApowrrr6rqs r7rkzElGamalTest._check_private_keys **,,--- &(////FHQJ////000 VXvxz68<r5rkrnrlror9r7r r "sQP>>&PP QQ>>&QQ  C<QP>P&QQ QQ>Q&RR  C2###...***... " " " > > >>>>    000 F F FAAA - - -;;;;;r9r c8g}|ttz }|Srg)rr )configtestss r7 get_testsrs E _[ ) ))E Lr9__main__cBtjtSrg)unittest TestSuiterrr9r7rsH&y{{33r9suite) defaultTest)__doc__ __revision__rCrypto.SelfTest.st_commonrrrCryptorCrypto.PublicKeyrCrypto.Util.numberrCrypto.Util.py3compatTestCaser rrrmainrr9r7rs.32 GGGGGGGGGG$$$$$$,,,,,,####m;m;m;m;m;(#m;m;m;^  z 3 3EHMg&&&&&&r9