summaryrefslogtreecommitdiff
path: root/old/api/2.5/Crypto.PublicKey.RSA.RSAImplementation-class.html
diff options
context:
space:
mode:
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.html463
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>&nbsp;&nbsp;&nbsp;<a
+ href="Crypto-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Tree link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Index link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Help link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</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&nbsp;Crypto</a> ::
+ <a href="Crypto.PublicKey-module.html">Package&nbsp;PublicKey</a> ::
+ <a href="Crypto.PublicKey.RSA-module.html">Module&nbsp;RSA</a> ::
+ Class&nbsp;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&nbsp;private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >]&nbsp;|&nbsp;<a href="Crypto.PublicKey.RSA.RSAImplementation-class.html"
+ target="_top">no&nbsp;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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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"
+ >&nbsp;
+ </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"
+ >&nbsp;
+ </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"
+ >&nbsp;
+ </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"
+ >&nbsp;
+ </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>&nbsp;&nbsp;&nbsp;<a
+ href="Crypto-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Tree link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Index link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Help link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</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>