Current File : //usr/lib64/python2.7/site-packages/Crypto/SelfTest/PublicKey/test_ElGamal.pyc
�
�/�Oc@s�dZdZddlZddlmZmZmZddlmZddl	m
Z
ddlTddlTdej
fd	��YZid
�Zedkr�d�Zejd
d�ndS(s,Self-test suite for Crypto.PublicKey.ElGamals$Id$i����N(tlist_test_casesta2b_hextb2a_hex(tRandom(tElGamal(t*tElGamalTestcBsoeZidd6dd6dd6dd6dd	6d
d6dd
6dd6idd6dd6dd6dd6dd	6d
d6dd
6dd6gZidd6dd6dd6dd6dd	6d
d6dd6dd6id d6d!d6d"d6d#d6d$d	6d
d6d%d6d&d6gZd'�Zd(�Zd)�Zd*�Zd+�Zd,�Z	d-d.�Z
d/�Zd0�Zd1�Z
d2�Zd3�ZRS(4t@BA4CAEAAED8CBE952AFD2126C63EB3B345D65C2A0A73D2A3AD4138B6D09BD933tpt05tgt@60D063600ECED7C7C55146020E7A31C4476E9793BEAED420FEC9E77604CAE4EFtyt.1D391BA2EE3C37FE1BA175A69B2C73A11238AD77675932txt.F5893C5BAB4131264066F57AB3D8AD89E391A0B68A68A1tkt48656C6C6F207468657265tptt@32BFD5F487966CEA9E9356715788C491EC515E4ED48B58F0F00971E93AAA5EC7tct1t@7BE8FBFF317C93E82FCEF9BD515284BA506603FEA25D01C0CB874A31F315EE68tct2t�F1B18AE9F7B4E08FDA9A04832F4E919D89462FD31BF12F92791A93519F75076D6CE3942689CDFF2F344CAFF0F82D01864F69F3AECF566C774CBACF728B81A227t07t�688628C676E4F05D630E1BE39D0066178CA7AA83836B645DE5ADD359B4825A12B02EF4252E4E6FA9BEC1DB0BE90F6D7C8629CABB6E531F472B2664868156E20Ct.14E60B1BDFD33436C0DA8A22FDC14A2CCDBBED0627CE68t.38DBF14E1F319BDA9BAB33EEEADCAF6B2EA5250577ACE7t�290F8530C2CC312EC46178724F196F308AD4C523CEABB001FACB0506BFED676083FE0F27AC688B5C749AB3CB8A80CD6F7094DBA421FB19442F5A413E06A9772Bt�1D69AAAD1DC50493FB1B8E8721D621D683F3BF1321BE21BC4A43E11B40C9D4D9C80DE3AAC2AB60D31782B16B61112E68220889D53C4C3136EE6F6CE61F8A23A0t@D2F3C41EA66530838A704A48FFAC9334F4701ECE3A97CEE4C69DD01AE7129DD7t@C3F9417DC0DAFEA6A05C1D2333B7A95E63B3F4F28CC962254B3256984D1012E7t.165E4A39BE44D5A2D8B1332D416BC559616F536BC735BBt@C7F0C794A7EAD726E25A47FF8928013680E73C51DD3D7D99BFDA8F492585928Ftht@35CA98133779E2073EF31165AFCDEB764DD54E96ADE851715495F9C635E1E7C2tsig1t@0135B88B1151279FE5D8078D4FC685EE81177EE9802AB123A73925FC1CB059A7tsig2t�E24CF3A4B8A6AF749DCA6D714282FE4AABEEE44A53BB6ED15FBE32B5D3C3EF9CC4124A2ECA331F3C1C1B667ACA3766825217E7B5F9856648D95F05330C6A19CFt0Bt�2AD3A1049CA5D4ED207B2431C79A8719BB4073D4A94E450EA6CEE8A760EB07ADB67C0D52C275EE85D7B52789061EE45F2F37D9B2AE522A51C28329766BFE68ACt.16CBB4F46D9ECCF24FF9F7E63CAA3BD8936341555062ABt�8A3D89A4E429FD2476D7D717251FB79BF900FFE77444E6BB8299DC3F84D0DD57ABAB50732AE158EA52F5B9E7D8813E81FD9F79470AE22F8F1CF9AEC820A78C69t�BE001AABAFFF976EC9016198FBFEA14CBEF96B000CCC0063D3324016F9E91FE80D8F9325812ED24DDB2B4D4CF4430B169880B3CE88313B53255BD4EC0378586Ft�5E266F3F837BA204E3BBB6DBECC0611429D96F8C7CE8F4EFDF9D4CB681C2A954468A357BF4242CEC7418B51DFC081BCD21299EF5B5A0DDEF3A139A1817503DDEcCs|jd�dS(Ni�(t_test_random_key(tself((sL/usr/lib64/python2.7/site-packages/Crypto/SelfTest/PublicKey/test_ElGamal.pyttest_generate_128`scCs|jd�dS(Ni(R.(R/((sL/usr/lib64/python2.7/site-packages/Crypto/SelfTest/PublicKey/test_ElGamal.pyttest_generate_512cscCs�x�|jD]�}x}dD]u}|j||�}tj|d�}|j|d|d�}|j|d|d�|j|d|d�qWq
WdS(	NiitkeyRRRR(ii(ttvet
convert_tvRt	constructtencrypttassertEquals(R/ttvtas_longstdR2tct((sL/usr/lib64/python2.7/site-packages/Crypto/SelfTest/PublicKey/test_ElGamal.pyttest_encryptionfs
cCsxx|jD]m}xddD]\}|j||�}tj|d�}|j|d|df�}|j||d�qWq
WdS(NiiR2RRR(ii(R3R4RR5tdecryptR7(R/R8R9R:R2R((sL/usr/lib64/python2.7/site-packages/Crypto/SelfTest/PublicKey/test_ElGamal.pyttest_decryptionos
cCs�x�|jD]�}x{dD]s}|j||�}tj|d�}|j|d|d�\}}|j||d�|j||d�qWq
WdS(	NiiR2R"RR$R&(ii(ttvsR4RR5tsignR7(R/R8R9R:R2R$R&((sL/usr/lib64/python2.7/site-packages/Crypto/SelfTest/PublicKey/test_ElGamal.pyttest_signingws
 cCs�x�|jD]�}x�dD]�}|j||�}tj|d�}|j|d|d|df�}|j|�|j|d|dd|df�}|j|�qWq
WdS(NiiR2R"R$R&(ii(R?R4RR5tverifyt
failUnlesstfailIf(R/R8R9R:R2tres((sL/usr/lib64/python2.7/site-packages/Crypto/SelfTest/PublicKey/test_ElGamal.pyttest_verification�s
$
(icCs�d}i}x]|j�D]O}t||�||<|sQ||ksQ|d	krt||�||<qqWg|d<x,|D]$}|dc||g7<||=q}W|S(
sfConvert a test vector from textual form (hexadecimal ascii
        to either integers or byte strings.RR
RRR$R&R2(RR
RR(ssig1ssig2(tkeysRt
bytes_to_long(R/R8R9t	key_compsttv2tc((sL/usr/lib64/python2.7/site-packages/Crypto/SelfTest/PublicKey/test_ElGamal.pyR4�s

cCs_tj|tj�j�}|j|�|j|�|j�}|j|�|j	|�dS(N(
RtgenerateRtnewtreadt_check_private_keyt_exercise_primitivet	publickeyt_check_public_keyt_exercise_public_primitive(R/tbitstelgObjtpub((sL/usr/lib64/python2.7/site-packages/Crypto/SelfTest/PublicKey/test_ElGamal.pyR.�s


cCs�|j|j��|j|j��|j|j��|jd|jko`|jdkn�|jt|j|jd|j�d�|jd|jko�|jdkn�|jt|j|j|j�|j	�dS(Ni(
RCthas_privatetcan_signtcan_encryptR
RR7tpowRR(R/RU((sL/usr/lib64/python2.7/site-packages/Crypto/SelfTest/PublicKey/test_ElGamal.pyRO�s-)-cCs�|j|j��|j|j��|j|j��|jd|jko`|jdkn�|jt|j|jd|j�d�dS(Ni(	RDRWRCRXRYR
RR7RZ(R/RU((sL/usr/lib64/python2.7/site-packages/Crypto/SelfTest/PublicKey/test_ElGamal.pyRR�s
-cCsctd�}|j|d�}|j|�}|j||�|j|d�}|j||�dS(NtTestlM�l�h�u(tbR6R=R7R@RB(R/RUt	plaintextt
ciphertextt
plaintextPt	signature((sL/usr/lib64/python2.7/site-packages/Crypto/SelfTest/PublicKey/test_ElGamal.pyRP�scCs"td�}|j|d�}dS(NR[lM�(R\R6(R/RUR]R^((sL/usr/lib64/python2.7/site-packages/Crypto/SelfTest/PublicKey/test_ElGamal.pyRS�s(t__name__t
__module__R3R?R0R1R<R>RARFR4R.RORRRPRS(((sL/usr/lib64/python2.7/site-packages/Crypto/SelfTest/PublicKey/test_ElGamal.pyR"s`

										
		cCsg}|tt�7}|S(N(RR(tconfigttests((sL/usr/lib64/python2.7/site-packages/Crypto/SelfTest/PublicKey/test_ElGamal.pyt	get_tests�st__main__cCstjt��S(N(tunittestt	TestSuiteRe(((sL/usr/lib64/python2.7/site-packages/Crypto/SelfTest/PublicKey/test_ElGamal.pyt<lambda>�stdefaultTesttsuite(t__doc__t__revision__RgtCrypto.SelfTest.st_commonRRRtCryptoRtCrypto.PublicKeyRtCrypto.Util.numbertCrypto.Util.py3compattTestCaseRReRaRktmain(((sL/usr/lib64/python2.7/site-packages/Crypto/SelfTest/PublicKey/test_ElGamal.pyt<module>s

�