| |
| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <html><head><title>Python: module gdata.Crypto.PublicKey.ElGamal</title> |
| </head><body bgcolor="#f0f0f8"> |
| |
| <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading"> |
| <tr bgcolor="#7799ee"> |
| <td valign=bottom> <br> |
| <font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="gdata.html"><font color="#ffffff">gdata</font></a>.<a href="gdata.Crypto.html"><font color="#ffffff">Crypto</font></a>.<a href="gdata.Crypto.PublicKey.html"><font color="#ffffff">PublicKey</font></a>.ElGamal</strong></big></big></font></td |
| ><td align=right valign=bottom |
| ><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/usr/local/google/home/afshar/src/external-gdata-release/google3/src/gdata/Crypto/PublicKey/ElGamal.py">/usr/local/google/home/afshar/src/external-gdata-release/google3/src/gdata/Crypto/PublicKey/ElGamal.py</a></font></td></tr></table> |
| <p><tt># ElGamal.py : ElGamal encryption/decryption and signatures<br> |
| #<br> |
| # Part of the Python Cryptography Toolkit<br> |
| #<br> |
| # Distribute and use freely; there are no restrictions on further<br> |
| # dissemination and usage except those imposed by the laws of your<br> |
| # country of residence. This software is provided "as is" without<br> |
| # warranty of fitness for use or suitability for any purpose, express<br> |
| # or implied. Use at your own risk or not at all.<br> |
| #</tt></p> |
| <p> |
| <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> |
| <tr bgcolor="#aa55cc"> |
| <td colspan=3 valign=bottom> <br> |
| <font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr> |
| |
| <tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td> |
| <td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="math.html">math</a><br> |
| <a href="Crypto.Util.number.html">Crypto.Util.number</a><br> |
| </td><td width="25%" valign=top><a href="struct.html">struct</a><br> |
| <a href="sys.html">sys</a><br> |
| </td><td width="25%" valign=top><a href="types.html">types</a><br> |
| <a href="warnings.html">warnings</a><br> |
| </td><td width="25%" valign=top></td></tr></table></td></tr></table><p> |
| <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> |
| <tr bgcolor="#ee77aa"> |
| <td colspan=3 valign=bottom> <br> |
| <font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr> |
| |
| <tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td> |
| <td width="100%"><dl> |
| <dt><font face="helvetica, arial"><a href="Crypto.PublicKey.pubkey.html#pubkey">Crypto.PublicKey.pubkey.pubkey</a> |
| </font></dt><dd> |
| <dl> |
| <dt><font face="helvetica, arial"><a href="gdata.Crypto.PublicKey.ElGamal.html#ElGamalobj">ElGamalobj</a> |
| </font></dt><dt><font face="helvetica, arial"><a href="gdata.Crypto.PublicKey.ElGamal.html#ElGamalobj">ElGamalobj</a> |
| </font></dt></dl> |
| </dd> |
| <dt><font face="helvetica, arial"><a href="exceptions.html#Exception">exceptions.Exception</a>(<a href="exceptions.html#BaseException">exceptions.BaseException</a>) |
| </font></dt><dd> |
| <dl> |
| <dt><font face="helvetica, arial"><a href="gdata.Crypto.PublicKey.ElGamal.html#error">error</a> |
| </font></dt></dl> |
| </dd> |
| </dl> |
| <p> |
| <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> |
| <tr bgcolor="#ffc8d8"> |
| <td colspan=3 valign=bottom> <br> |
| <font color="#000000" face="helvetica, arial"><a name="ElGamalobj">class <strong>ElGamalobj</strong></a>(<a href="Crypto.PublicKey.pubkey.html#pubkey">Crypto.PublicKey.pubkey.pubkey</a>)</font></td></tr> |
| |
| <tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td> |
| <td width="100%">Methods defined here:<br> |
| <dl><dt><a name="ElGamalobj-has_private"><strong>has_private</strong></a>(self)</dt><dd><tt>Return a Boolean denoting whether the <a href="#object">object</a> contains<br> |
| private components.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-publickey"><strong>publickey</strong></a>(self)</dt><dd><tt>Return a new key <a href="#object">object</a> containing only the public information.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-size"><strong>size</strong></a>(self)</dt><dd><tt>Return the maximum number of bits that can be handled by this key.</tt></dd></dl> |
| |
| <hr> |
| Data and other attributes defined here:<br> |
| <dl><dt><strong>keydata</strong> = ['p', 'g', 'y', 'x']</dl> |
| |
| <hr> |
| Methods inherited from <a href="Crypto.PublicKey.pubkey.html#pubkey">Crypto.PublicKey.pubkey.pubkey</a>:<br> |
| <dl><dt><a name="ElGamalobj-__eq__"><strong>__eq__</strong></a>(self, other)</dt><dd><tt><a href="#ElGamalobj-__eq__">__eq__</a>(other): 0, 1<br> |
| Compare us to other for equality.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-__getstate__"><strong>__getstate__</strong></a>(self)</dt><dd><tt>To keep key objects platform-independent, the key data is<br> |
| converted to standard Python long integers before being<br> |
| written out. It will then be reconverted as necessary on<br> |
| restoration.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-__init__"><strong>__init__</strong></a>(self)</dt></dl> |
| |
| <dl><dt><a name="ElGamalobj-__ne__"><strong>__ne__</strong></a>(self, other)</dt><dd><tt><a href="#ElGamalobj-__ne__">__ne__</a>(other): 0, 1<br> |
| Compare us to other for inequality.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-__setstate__"><strong>__setstate__</strong></a>(self, d)</dt><dd><tt>On unpickling a key <a href="#object">object</a>, the key data is converted to the big<br> |
| number representation being used, whether that is Python long<br> |
| integers, MPZ objects, or whatever.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-blind"><strong>blind</strong></a>(self, M, B)</dt><dd><tt><a href="#ElGamalobj-blind">blind</a>(M : string|long, B : string|long) : string|long<br> |
| Blind message M using blinding factor B.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-can_blind"><strong>can_blind</strong></a>(self)</dt><dd><tt><a href="#ElGamalobj-can_blind">can_blind</a>() : bool<br> |
| Return a Boolean value recording whether this algorithm can<br> |
| blind data. (This does not imply that this<br> |
| particular key <a href="#object">object</a> has the private information required to<br> |
| to blind a message.)</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-can_encrypt"><strong>can_encrypt</strong></a>(self)</dt><dd><tt><a href="#ElGamalobj-can_encrypt">can_encrypt</a>() : bool<br> |
| Return a Boolean value recording whether this algorithm can<br> |
| encrypt data. (This does not imply that this<br> |
| particular key <a href="#object">object</a> has the private information required to<br> |
| to decrypt a message.)</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-can_sign"><strong>can_sign</strong></a>(self)</dt><dd><tt><a href="#ElGamalobj-can_sign">can_sign</a>() : bool<br> |
| Return a Boolean value recording whether this algorithm can<br> |
| generate signatures. (This does not imply that this<br> |
| particular key <a href="#object">object</a> has the private information required to<br> |
| to generate a signature.)</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-decrypt"><strong>decrypt</strong></a>(self, ciphertext)</dt><dd><tt><a href="#ElGamalobj-decrypt">decrypt</a>(ciphertext:tuple|string|long): string<br> |
| Decrypt 'ciphertext' using this key.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-encrypt"><strong>encrypt</strong></a>(self, plaintext, K)</dt><dd><tt><a href="#ElGamalobj-encrypt">encrypt</a>(plaintext:string|long, K:string|long) : tuple<br> |
| Encrypt the string or integer plaintext. K is a random<br> |
| parameter required by some algorithms.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-sign"><strong>sign</strong></a>(self, M, K)</dt><dd><tt><a href="#ElGamalobj-sign">sign</a>(M : string|long, K:string|long) : tuple<br> |
| Return a tuple containing the signature for the message M.<br> |
| K is a random parameter required by some algorithms.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-unblind"><strong>unblind</strong></a>(self, M, B)</dt><dd><tt><a href="#ElGamalobj-unblind">unblind</a>(M : string|long, B : string|long) : string|long<br> |
| Unblind message M using blinding factor B.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-validate"><strong>validate</strong></a>(self, M, signature)</dt><dd><tt># alias to compensate for the old <a href="#ElGamalobj-validate">validate</a>() name</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-verify"><strong>verify</strong></a>(self, M, signature)</dt><dd><tt><a href="#ElGamalobj-verify">verify</a>(M:string|long, signature:tuple) : bool<br> |
| Verify that the signature is valid for the message M;<br> |
| returns true if the signature checks out.</tt></dd></dl> |
| |
| </td></tr></table> <p> |
| <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> |
| <tr bgcolor="#ffc8d8"> |
| <td colspan=3 valign=bottom> <br> |
| <font color="#000000" face="helvetica, arial"><a name="error">class <strong>error</strong></a>(<a href="exceptions.html#Exception">exceptions.Exception</a>)</font></td></tr> |
| |
| <tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td> |
| <td width="100%"><dl><dt>Method resolution order:</dt> |
| <dd><a href="gdata.Crypto.PublicKey.ElGamal.html#error">error</a></dd> |
| <dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd> |
| <dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd> |
| <dd><a href="__builtin__.html#object">__builtin__.object</a></dd> |
| </dl> |
| <hr> |
| Data descriptors defined here:<br> |
| <dl><dt><strong>__weakref__</strong></dt> |
| <dd><tt>list of weak references to the object (if defined)</tt></dd> |
| </dl> |
| <hr> |
| Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br> |
| <dl><dt><a name="error-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__init__">__init__</a>(...) initializes x; see help(type(x)) for signature</tt></dd></dl> |
| |
| <hr> |
| Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br> |
| <dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.<a href="#error-__new__">__new__</a>(S, ...) -> a new <a href="#object">object</a> with type S, a subtype of T</tt></dl> |
| |
| <hr> |
| Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br> |
| <dl><dt><a name="error-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__delattr__">__delattr__</a>('name') <==> del x.name</tt></dd></dl> |
| |
| <dl><dt><a name="error-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__getattribute__">__getattribute__</a>('name') <==> x.name</tt></dd></dl> |
| |
| <dl><dt><a name="error-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__getitem__">__getitem__</a>(y) <==> x[y]</tt></dd></dl> |
| |
| <dl><dt><a name="error-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__getslice__">__getslice__</a>(i, j) <==> x[i:j]<br> |
| <br> |
| Use of negative indices is not supported.</tt></dd></dl> |
| |
| <dl><dt><a name="error-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl> |
| |
| <dl><dt><a name="error-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__repr__">__repr__</a>() <==> repr(x)</tt></dd></dl> |
| |
| <dl><dt><a name="error-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__setattr__">__setattr__</a>('name', value) <==> x.name = value</tt></dd></dl> |
| |
| <dl><dt><a name="error-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl> |
| |
| <dl><dt><a name="error-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__str__">__str__</a>() <==> str(x)</tt></dd></dl> |
| |
| <dl><dt><a name="error-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl> |
| |
| <hr> |
| Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br> |
| <dl><dt><strong>__dict__</strong></dt> |
| </dl> |
| <dl><dt><strong>args</strong></dt> |
| </dl> |
| <dl><dt><strong>message</strong></dt> |
| </dl> |
| </td></tr></table> <p> |
| <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> |
| <tr bgcolor="#ffc8d8"> |
| <td colspan=3 valign=bottom> <br> |
| <font color="#000000" face="helvetica, arial"><strong>object</strong> = <a name="object">class ElGamalobj</a>(<a href="Crypto.PublicKey.pubkey.html#pubkey">Crypto.PublicKey.pubkey.pubkey</a>)</font></td></tr> |
| |
| <tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td> |
| <td width="100%">Methods defined here:<br> |
| <dl><dt><a name="ElGamalobj-has_private"><strong>has_private</strong></a>(self)</dt><dd><tt>Return a Boolean denoting whether the <a href="#object">object</a> contains<br> |
| private components.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-publickey"><strong>publickey</strong></a>(self)</dt><dd><tt>Return a new key <a href="#object">object</a> containing only the public information.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-size"><strong>size</strong></a>(self)</dt><dd><tt>Return the maximum number of bits that can be handled by this key.</tt></dd></dl> |
| |
| <hr> |
| Data and other attributes defined here:<br> |
| <dl><dt><strong>keydata</strong> = ['p', 'g', 'y', 'x']</dl> |
| |
| <hr> |
| Methods inherited from <a href="Crypto.PublicKey.pubkey.html#pubkey">Crypto.PublicKey.pubkey.pubkey</a>:<br> |
| <dl><dt><a name="ElGamalobj-__eq__"><strong>__eq__</strong></a>(self, other)</dt><dd><tt><a href="#object-__eq__">__eq__</a>(other): 0, 1<br> |
| Compare us to other for equality.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-__getstate__"><strong>__getstate__</strong></a>(self)</dt><dd><tt>To keep key objects platform-independent, the key data is<br> |
| converted to standard Python long integers before being<br> |
| written out. It will then be reconverted as necessary on<br> |
| restoration.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-__init__"><strong>__init__</strong></a>(self)</dt></dl> |
| |
| <dl><dt><a name="ElGamalobj-__ne__"><strong>__ne__</strong></a>(self, other)</dt><dd><tt><a href="#object-__ne__">__ne__</a>(other): 0, 1<br> |
| Compare us to other for inequality.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-__setstate__"><strong>__setstate__</strong></a>(self, d)</dt><dd><tt>On unpickling a key <a href="#object">object</a>, the key data is converted to the big<br> |
| number representation being used, whether that is Python long<br> |
| integers, MPZ objects, or whatever.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-blind"><strong>blind</strong></a>(self, M, B)</dt><dd><tt><a href="#object-blind">blind</a>(M : string|long, B : string|long) : string|long<br> |
| Blind message M using blinding factor B.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-can_blind"><strong>can_blind</strong></a>(self)</dt><dd><tt><a href="#object-can_blind">can_blind</a>() : bool<br> |
| Return a Boolean value recording whether this algorithm can<br> |
| blind data. (This does not imply that this<br> |
| particular key <a href="#object">object</a> has the private information required to<br> |
| to blind a message.)</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-can_encrypt"><strong>can_encrypt</strong></a>(self)</dt><dd><tt><a href="#object-can_encrypt">can_encrypt</a>() : bool<br> |
| Return a Boolean value recording whether this algorithm can<br> |
| encrypt data. (This does not imply that this<br> |
| particular key <a href="#object">object</a> has the private information required to<br> |
| to decrypt a message.)</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-can_sign"><strong>can_sign</strong></a>(self)</dt><dd><tt><a href="#object-can_sign">can_sign</a>() : bool<br> |
| Return a Boolean value recording whether this algorithm can<br> |
| generate signatures. (This does not imply that this<br> |
| particular key <a href="#object">object</a> has the private information required to<br> |
| to generate a signature.)</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-decrypt"><strong>decrypt</strong></a>(self, ciphertext)</dt><dd><tt><a href="#object-decrypt">decrypt</a>(ciphertext:tuple|string|long): string<br> |
| Decrypt 'ciphertext' using this key.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-encrypt"><strong>encrypt</strong></a>(self, plaintext, K)</dt><dd><tt><a href="#object-encrypt">encrypt</a>(plaintext:string|long, K:string|long) : tuple<br> |
| Encrypt the string or integer plaintext. K is a random<br> |
| parameter required by some algorithms.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-sign"><strong>sign</strong></a>(self, M, K)</dt><dd><tt><a href="#object-sign">sign</a>(M : string|long, K:string|long) : tuple<br> |
| Return a tuple containing the signature for the message M.<br> |
| K is a random parameter required by some algorithms.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-unblind"><strong>unblind</strong></a>(self, M, B)</dt><dd><tt><a href="#object-unblind">unblind</a>(M : string|long, B : string|long) : string|long<br> |
| Unblind message M using blinding factor B.</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-validate"><strong>validate</strong></a>(self, M, signature)</dt><dd><tt># alias to compensate for the old <a href="#object-validate">validate</a>() name</tt></dd></dl> |
| |
| <dl><dt><a name="ElGamalobj-verify"><strong>verify</strong></a>(self, M, signature)</dt><dd><tt><a href="#object-verify">verify</a>(M:string|long, signature:tuple) : bool<br> |
| Verify that the signature is valid for the message M;<br> |
| returns true if the signature checks out.</tt></dd></dl> |
| |
| </td></tr></table></td></tr></table><p> |
| <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> |
| <tr bgcolor="#eeaa77"> |
| <td colspan=3 valign=bottom> <br> |
| <font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr> |
| |
| <tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td> |
| <td width="100%"><dl><dt><a name="-construct"><strong>construct</strong></a>(tuple)</dt><dd><tt><a href="#-construct">construct</a>(tuple:(long,long,long,long)|(long,long,long,long,long)))<br> |
| : <a href="#ElGamalobj">ElGamalobj</a><br> |
| Construct an ElGamal key from a 3- or 4-tuple of numbers.</tt></dd></dl> |
| <dl><dt><a name="-generate"><strong>generate</strong></a>(bits, randfunc, progress_func<font color="#909090">=None</font>)</dt><dd><tt><a href="#-generate">generate</a>(bits:int, randfunc:callable, progress_func:callable)<br> |
| <br> |
| Generate an ElGamal key of length 'bits', using 'randfunc' to get<br> |
| random data and 'progress_func', if present, to display<br> |
| the progress of the key generation.</tt></dd></dl> |
| </td></tr></table><p> |
| <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> |
| <tr bgcolor="#55aa55"> |
| <td colspan=3 valign=bottom> <br> |
| <font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr> |
| |
| <tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td> |
| <td width="100%"><strong>__revision__</strong> = '$Id: ElGamal.py,v 1.9 2003/04/04 19:44:26 akuchling Exp $'<br> |
| <strong>sieve_base</strong> = (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, ...)</td></tr></table> |
| </body></html> |