diff options
Diffstat (limited to 'old/api/2.5/Crypto.PublicKey.RSA.RSAImplementation-class.html')
-rw-r--r-- | old/api/2.5/Crypto.PublicKey.RSA.RSAImplementation-class.html | 463 |
1 files changed, 463 insertions, 0 deletions
diff --git a/old/api/2.5/Crypto.PublicKey.RSA.RSAImplementation-class.html b/old/api/2.5/Crypto.PublicKey.RSA.RSAImplementation-class.html new file mode 100644 index 0000000..d1032b0 --- /dev/null +++ b/old/api/2.5/Crypto.PublicKey.RSA.RSAImplementation-class.html @@ -0,0 +1,463 @@ +<?xml version="1.0" encoding="ascii"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + <title>Crypto.PublicKey.RSA.RSAImplementation</title> + <link rel="stylesheet" href="epydoc.css" type="text/css" /> + <script type="text/javascript" src="epydoc.js"></script> +</head> + +<body bgcolor="white" text="black" link="blue" vlink="#204080" + alink="#204080"> +<!-- ==================== NAVIGATION BAR ==================== --> +<table class="navbar" border="0" width="100%" cellpadding="0" + bgcolor="#a0c0ff" cellspacing="0"> + <tr valign="middle"> + <!-- Home link --> + <th> <a + href="Crypto-module.html">Home</a> </th> + + <!-- Tree link --> + <th> <a + href="module-tree.html">Trees</a> </th> + + <!-- Index link --> + <th> <a + href="identifier-index.html">Indices</a> </th> + + <!-- Help link --> + <th> <a + href="help.html">Help</a> </th> + + <!-- Project homepage --> + <th class="navbar" align="right" width="100%"> + <table border="0" cellpadding="0" cellspacing="0"> + <tr><th class="navbar" align="center" + ><a href="http://www.pycrypto.org/">PyCrypto.org</a></th> + </tr></table></th> + </tr> +</table> +<table width="100%" cellpadding="0" cellspacing="0"> + <tr valign="top"> + <td width="100%"> + <span class="breadcrumbs"> + <a href="Crypto-module.html">Package Crypto</a> :: + <a href="Crypto.PublicKey-module.html">Package PublicKey</a> :: + <a href="Crypto.PublicKey.RSA-module.html">Module RSA</a> :: + Class RSAImplementation + </span> + </td> + <td> + <table cellpadding="0" cellspacing="0"> + <!-- hide/show private --> + <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink" + onclick="toggle_private();">hide private</a>]</span></td></tr> + <tr><td align="right"><span class="options" + >[<a href="frames.html" target="_top">frames</a + >] | <a href="Crypto.PublicKey.RSA.RSAImplementation-class.html" + target="_top">no frames</a>]</span></td></tr> + </table> + </td> + </tr> +</table> +<!-- ==================== CLASS DESCRIPTION ==================== --> +<h1 class="epydoc">Class RSAImplementation</h1><p class="nomargin-top"></p> +<pre class="base-tree"> +object --+ + | + <strong class="uidshort">RSAImplementation</strong> +</pre> + +<hr /> +<p>An RSA key factory.</p> +<p>This class is only internally used to implement the methods of the <a href="Crypto.PublicKey.RSA-module.html" class="link">Crypto.PublicKey.RSA</a> modulule.</p> + +<!-- ==================== INSTANCE METHODS ==================== --> +<a name="section-InstanceMethods"></a> +<table class="summary" border="1" cellpadding="3" + cellspacing="0" width="100%" bgcolor="white"> +<tr bgcolor="#70b0f0" class="table-header"> + <td colspan="2" class="table-header"> + <table border="0" cellpadding="0" cellspacing="0" width="100%"> + <tr valign="top"> + <td align="left"><span class="table-header">Instance Methods</span></td> + <td align="right" valign="top" + ><span class="options">[<a href="#section-InstanceMethods" + class="privatelink" onclick="toggle_private();" + >hide private</a>]</span></td> + </tr> + </table> + </td> +</tr> +<tr> + <td width="15%" align="right" valign="top" class="summary"> + <span class="summary-type"> </span> + </td><td class="summary"> + <table width="100%" cellpadding="0" cellspacing="0" border="0"> + <tr> + <td><span class="summary-sig"><a href="Crypto.PublicKey.RSA.RSAImplementation-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>, + <span class="summary-sig-arg">**kwargs</span>)</span><br /> + Create a new RSA key factory.</td> + <td align="right" valign="top"> + + + </td> + </tr> + </table> + + </td> + </tr> +<tr> + <td width="15%" align="right" valign="top" class="summary"> + <span class="summary-type"> </span> + </td><td class="summary"> + <table width="100%" cellpadding="0" cellspacing="0" border="0"> + <tr> + <td><span class="summary-sig"><a href="Crypto.PublicKey.RSA.RSAImplementation-class.html#generate" class="summary-sig-name">generate</a>(<span class="summary-sig-arg">self</span>, + <span class="summary-sig-arg">bits</span>, + <span class="summary-sig-arg">randfunc</span>=<span class="summary-sig-default">None</span>, + <span class="summary-sig-arg">progress_func</span>=<span class="summary-sig-default">None</span>, + <span class="summary-sig-arg">e</span>=<span class="summary-sig-default">65537</span>)</span><br /> + Randomly generate a fresh, new RSA key object.</td> + <td align="right" valign="top"> + + + </td> + </tr> + </table> + + </td> + </tr> +<tr> + <td width="15%" align="right" valign="top" class="summary"> + <span class="summary-type"> </span> + </td><td class="summary"> + <table width="100%" cellpadding="0" cellspacing="0" border="0"> + <tr> + <td><span class="summary-sig"><a href="Crypto.PublicKey.RSA.RSAImplementation-class.html#construct" class="summary-sig-name">construct</a>(<span class="summary-sig-arg">self</span>, + <span class="summary-sig-arg">tup</span>)</span><br /> + Construct an RSA key object from a tuple of valid RSA components.</td> + <td align="right" valign="top"> + + + </td> + </tr> + </table> + + </td> + </tr> +<tr> + <td width="15%" align="right" valign="top" class="summary"> + <span class="summary-type"> </span> + </td><td class="summary"> + <table width="100%" cellpadding="0" cellspacing="0" border="0"> + <tr> + <td><span class="summary-sig"><a href="Crypto.PublicKey.RSA.RSAImplementation-class.html#importKey" class="summary-sig-name">importKey</a>(<span class="summary-sig-arg">self</span>, + <span class="summary-sig-arg">externKey</span>, + <span class="summary-sig-arg">passphrase</span>=<span class="summary-sig-default">None</span>)</span><br /> + Import an RSA key (public or private half), encoded in standard form.</td> + <td align="right" valign="top"> + + + </td> + </tr> + </table> + + </td> + </tr> + <tr> + <td colspan="2" class="summary"> + <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>: + <code>__delattr__</code>, + <code>__format__</code>, + <code>__getattribute__</code>, + <code>__hash__</code>, + <code>__new__</code>, + <code>__reduce__</code>, + <code>__reduce_ex__</code>, + <code>__repr__</code>, + <code>__setattr__</code>, + <code>__sizeof__</code>, + <code>__str__</code>, + <code>__subclasshook__</code> + </p> + </td> + </tr> +</table> +<!-- ==================== PROPERTIES ==================== --> +<a name="section-Properties"></a> +<table class="summary" border="1" cellpadding="3" + cellspacing="0" width="100%" bgcolor="white"> +<tr bgcolor="#70b0f0" class="table-header"> + <td colspan="2" class="table-header"> + <table border="0" cellpadding="0" cellspacing="0" width="100%"> + <tr valign="top"> + <td align="left"><span class="table-header">Properties</span></td> + <td align="right" valign="top" + ><span class="options">[<a href="#section-Properties" + class="privatelink" onclick="toggle_private();" + >hide private</a>]</span></td> + </tr> + </table> + </td> +</tr> + <tr> + <td colspan="2" class="summary"> + <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>: + <code>__class__</code> + </p> + </td> + </tr> +</table> +<!-- ==================== METHOD DETAILS ==================== --> +<a name="section-MethodDetails"></a> +<table class="details" border="1" cellpadding="3" + cellspacing="0" width="100%" bgcolor="white"> +<tr bgcolor="#70b0f0" class="table-header"> + <td colspan="2" class="table-header"> + <table border="0" cellpadding="0" cellspacing="0" width="100%"> + <tr valign="top"> + <td align="left"><span class="table-header">Method Details</span></td> + <td align="right" valign="top" + ><span class="options">[<a href="#section-MethodDetails" + class="privatelink" onclick="toggle_private();" + >hide private</a>]</span></td> + </tr> + </table> + </td> +</tr> +</table> +<a name="__init__"></a> +<div> +<table class="details" border="1" cellpadding="3" + cellspacing="0" width="100%" bgcolor="white"> +<tr><td> + <table width="100%" cellpadding="0" cellspacing="0" border="0"> + <tr valign="top"><td> + <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>, + <span class="sig-arg">**kwargs</span>)</span> + <br /><em class="fname">(Constructor)</em> + </h3> + </td><td align="right" valign="top" + > + </td> + </tr></table> + + Create a new RSA key factory. + <dl class="fields"> + <dt>Parameters:</dt> + <dd><ul class="nomargin-top"> + <li><p><strong class="pname"><code>use_fast_math</code></strong> (bool) - Specify which mathematic library to use:</p> +<ul class="rst-simple"> +<li><em>None</em> (default). Use fastest math available.</li> +<li><em>True</em> . Use fast math.</li> +<li><em>False</em> . Use slow math.</li> +</ul></li> + <li><p><strong class="pname"><code>default_randfunc</code></strong> (callable) - Specify how to collect random data:</p> +<ul class="rst-simple"> +<li><em>None</em> (default). Use Random.new().read().</li> +<li>not <em>Note</em> . Use the specified function directly.</li> +</ul></li> + </ul></dd> + <dt>Raises:</dt> + <dd><ul class="nomargin-top"> + <li><code><strong class='fraise'>RuntimeError</strong></code> - When <strong>use_fast_math</strong> =True but fast math is not available.</li> + </ul></dd> + <dt>Overrides: + object.__init__ + </dt> + </dl> +</td></tr></table> +</div> +<a name="generate"></a> +<div> +<table class="details" border="1" cellpadding="3" + cellspacing="0" width="100%" bgcolor="white"> +<tr><td> + <table width="100%" cellpadding="0" cellspacing="0" border="0"> + <tr valign="top"><td> + <h3 class="epydoc"><span class="sig"><span class="sig-name">generate</span>(<span class="sig-arg">self</span>, + <span class="sig-arg">bits</span>, + <span class="sig-arg">randfunc</span>=<span class="sig-default">None</span>, + <span class="sig-arg">progress_func</span>=<span class="sig-default">None</span>, + <span class="sig-arg">e</span>=<span class="sig-default">65537</span>)</span> + </h3> + </td><td align="right" valign="top" + > + </td> + </tr></table> + + Randomly generate a fresh, new RSA key object. + <dl class="fields"> + <dt>Parameters:</dt> + <dd><ul class="nomargin-top"> + <li><p><strong class="pname"><code>bits</code></strong> (int) - Key length, or size (in bits) of the RSA modulus.</p> +<p>It must be a multiple of 256, and no smaller than 1024.</p></li> + <li><strong class="pname"><code>randfunc</code></strong> (callable) - Random number generation function; it should accept +a single integer N and return a string of random data +N bytes long.</li> + <li><strong class="pname"><code>progress_func</code></strong> (callable) - Optional function that will be called with a short string +containing the key parameter currently being generated; +it's useful for interactive applications where a user is +waiting for a key to be generated.</li> + <li><p><strong class="pname"><code>e</code></strong> (int) - Public RSA exponent. It must be an odd positive integer.</p> +<p>It is typically a small number with very few ones in its +binary representation.</p> +<p>The default value 65537 (= <tt class="rst-docutils literal">0b10000000000000001</tt> ) is a safe +choice: other common values are 5, 7, 17, and 257.</p></li> + </ul></dd> + <dt>Raises:</dt> + <dd><ul class="nomargin-top"> + <li><code><strong class='fraise'>ValueError</strong></code> - When <strong>bits</strong> is too little or not a multiple of 256, or when +<strong>e</strong> is not odd or smaller than 2.</li> + </ul></dd> + </dl> +<div class="fields"> <strong>Attention:</strong> + <ul class="nomargin-top"> + <li> + You should always use a cryptographically secure random number generator, +such as the one defined in the <tt class="rst-docutils literal">Crypto.Random</tt> module; <strong>don't</strong> just use the +current time and the <tt class="rst-docutils literal">random</tt> module. + </li> + <li> + Exponent 3 is also widely used, but it requires very special care when padding +the message. + </li> + </ul> +</div></td></tr></table> +</div> +<a name="construct"></a> +<div> +<table class="details" border="1" cellpadding="3" + cellspacing="0" width="100%" bgcolor="white"> +<tr><td> + <table width="100%" cellpadding="0" cellspacing="0" border="0"> + <tr valign="top"><td> + <h3 class="epydoc"><span class="sig"><span class="sig-name">construct</span>(<span class="sig-arg">self</span>, + <span class="sig-arg">tup</span>)</span> + </h3> + </td><td align="right" valign="top" + > + </td> + </tr></table> + + <p>Construct an RSA key object from a tuple of valid RSA components.</p> +<p>The modulus <strong>n</strong> must be the product of two primes. +The public exponent <strong>e</strong> must be odd and larger than 1.</p> +<p>In case of a private key, the following equations must apply:</p> +<ul class="rst-simple"> +<li>e != 1</li> +<li>p*q = n</li> +<li>e*d = 1 mod (p-1)(q-1)</li> +<li>p*u = 1 mod q</li> +</ul> + <dl class="fields"> + <dt>Parameters:</dt> + <dd><ul class="nomargin-top"> + <li><p><strong class="pname"><code>tup</code></strong> (tuple) - A tuple of long integers, with at least 2 and no +more than 6 items. The items come in the following order:</p> +<ol class="rst-arabic simple"> +<li>RSA modulus (n).</li> +<li>Public exponent (e).</li> +<li>Private exponent (d). Only required if the key is private.</li> +<li>First factor of n (p). Optional.</li> +<li>Second factor of n (q). Optional.</li> +<li>CRT coefficient, (1/p) mod q (u). Optional.</li> +</ol></li> + </ul></dd> + </dl> +</td></tr></table> +</div> +<a name="importKey"></a> +<div> +<table class="details" border="1" cellpadding="3" + cellspacing="0" width="100%" bgcolor="white"> +<tr><td> + <table width="100%" cellpadding="0" cellspacing="0" border="0"> + <tr valign="top"><td> + <h3 class="epydoc"><span class="sig"><span class="sig-name">importKey</span>(<span class="sig-arg">self</span>, + <span class="sig-arg">externKey</span>, + <span class="sig-arg">passphrase</span>=<span class="sig-default">None</span>)</span> + </h3> + </td><td align="right" valign="top" + > + </td> + </tr></table> + + Import an RSA key (public or private half), encoded in standard form. + <dl class="fields"> + <dt>Parameters:</dt> + <dd><ul class="nomargin-top"> + <li><p><strong class="pname"><code>externKey</code></strong> (string) - The RSA key to import, encoded as a string.</p> +<p>The key can be in any of the following formats:</p> +<ul class="rst-simple"> +<li>DER + PKCS#1 (binary)</li> +<li>PEM + PKCS#1 (textual, according to RFC1421/3)</li> +<li>DER + PKCS#8 (binary, private key only)</li> +<li>PEM + PKCS#8 (textual, according to RFC5208, private key only)</li> +<li>OpenSSH (textual public key only)</li> +</ul> +<p>In case of PEM + PKCS#1, the key can be encrypted with DES or 3TDES according to a certain <tt class="rst-docutils literal">pass phrase</tt>. +Only OpenSSL-compatible pass phrases are supported.</p></li> + <li><strong class="pname"><code>passphrase</code></strong> (string) - In case of an encrypted PEM key, this is the pass phrase from which the encryption key is derived.</li> + </ul></dd> + <dt>Raises:</dt> + <dd><ul class="nomargin-top"> + <li><code><strong class='fraise'>ValueError/IndexError/TypeError</strong></code> - When the given key cannot be parsed (possibly because the pass phrase is wrong).</li> + </ul></dd> + </dl> +</td></tr></table> +</div> +<br /> +<!-- ==================== NAVIGATION BAR ==================== --> +<table class="navbar" border="0" width="100%" cellpadding="0" + bgcolor="#a0c0ff" cellspacing="0"> + <tr valign="middle"> + <!-- Home link --> + <th> <a + href="Crypto-module.html">Home</a> </th> + + <!-- Tree link --> + <th> <a + href="module-tree.html">Trees</a> </th> + + <!-- Index link --> + <th> <a + href="identifier-index.html">Indices</a> </th> + + <!-- Help link --> + <th> <a + href="help.html">Help</a> </th> + + <!-- Project homepage --> + <th class="navbar" align="right" width="100%"> + <table border="0" cellpadding="0" cellspacing="0"> + <tr><th class="navbar" align="center" + ><a href="http://www.pycrypto.org/">PyCrypto.org</a></th> + </tr></table></th> + </tr> +</table> +<table border="0" cellpadding="0" cellspacing="0" width="100%%"> + <tr> + <td align="left" class="footer"> + Generated by Epydoc 3.0.1 on Fri Jan 13 12:36:11 2012 + </td> + <td align="right" class="footer"> + <a target="mainFrame" href="http://epydoc.sourceforge.net" + >http://epydoc.sourceforge.net</a> + </td> + </tr> +</table> + +<script type="text/javascript"> + <!-- + // Private objects are initially displayed (because if + // javascript is turned off then we want them to be + // visible); but by default, we want to hide them. So hide + // them unless we have a cookie that says to show them. + checkCookie(); + // --> +</script> +</body> +</html> |