diff options
Diffstat (limited to 'old/api/2.6/Crypto.PublicKey.DSA._DSAobj-class.html')
-rw-r--r-- | old/api/2.6/Crypto.PublicKey.DSA._DSAobj-class.html | 638 |
1 files changed, 638 insertions, 0 deletions
diff --git a/old/api/2.6/Crypto.PublicKey.DSA._DSAobj-class.html b/old/api/2.6/Crypto.PublicKey.DSA._DSAobj-class.html new file mode 100644 index 0000000..75bfd67 --- /dev/null +++ b/old/api/2.6/Crypto.PublicKey.DSA._DSAobj-class.html @@ -0,0 +1,638 @@ +<?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.DSA._DSAobj</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.DSA-module.html">Module DSA</a> :: + Class _DSAobj + </span> + </td> + <td> + <table cellpadding="0" cellspacing="0"> + <!-- hide/show private --> + <tr><td align="right"><span class="options" + >[<a href="frames.html" target="_top">frames</a + >] | <a href="Crypto.PublicKey.DSA._DSAobj-class.html" + target="_top">no frames</a>]</span></td></tr> + </table> + </td> + </tr> +</table> +<!-- ==================== CLASS DESCRIPTION ==================== --> +<h1 class="epydoc">Class _DSAobj</h1><p class="nomargin-top"></p> +<pre class="base-tree"> +pubkey.pubkey --+ + | + <strong class="uidshort">_DSAobj</strong> +</pre> + +<hr /> +Class defining an actual DSA key. + +<!-- ==================== 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 align="left" colspan="2" class="table-header"> + <span class="table-header">Instance Methods</span></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.DSA._DSAobj-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>, + <span class="summary-sig-arg">implementation</span>, + <span class="summary-sig-arg">key</span>)</span></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.DSA._DSAobj-class.html#sign" class="summary-sig-name">sign</a>(<span class="summary-sig-arg">self</span>, + <span class="summary-sig-arg">M</span>, + <span class="summary-sig-arg">K</span>)</span><br /> + Sign a piece of data with DSA.</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.DSA._DSAobj-class.html#verify" class="summary-sig-name">verify</a>(<span class="summary-sig-arg">self</span>, + <span class="summary-sig-arg">M</span>, + <span class="summary-sig-arg">signature</span>)</span><br /> + Verify the validity of a DSA signature.</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.DSA._DSAobj-class.html#has_private" class="summary-sig-name">has_private</a>(<span class="summary-sig-arg">self</span>)</span><br /> + Tell if the key object contains private 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.DSA._DSAobj-class.html#size" class="summary-sig-name">size</a>(<span class="summary-sig-arg">self</span>)</span><br /> + Tell the maximum number of bits that can be handled by this key.</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.DSA._DSAobj-class.html#can_blind" class="summary-sig-name">can_blind</a>(<span class="summary-sig-arg">self</span>)</span><br /> + Tell if the algorithm can deal with data blinding.</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.DSA._DSAobj-class.html#can_encrypt" class="summary-sig-name">can_encrypt</a>(<span class="summary-sig-arg">self</span>)</span><br /> + Tell if the algorithm can deal with data encryption.</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.DSA._DSAobj-class.html#can_sign" class="summary-sig-name">can_sign</a>(<span class="summary-sig-arg">self</span>)</span><br /> + Tell if the algorithm can deal with cryptographic signatures.</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.DSA._DSAobj-class.html#publickey" class="summary-sig-name">publickey</a>(<span class="summary-sig-arg">self</span>)</span><br /> + Construct a new key carrying only the public information.</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>pubkey.pubkey</code></b>: + <code>blind</code>, + <code>decrypt</code>, + <code>encrypt</code>, + <code>unblind</code> + </p> + </td> + </tr> +</table> +<!-- ==================== CLASS VARIABLES ==================== --> +<a name="section-ClassVariables"></a> +<table class="summary" border="1" cellpadding="3" + cellspacing="0" width="100%" bgcolor="white"> +<tr bgcolor="#70b0f0" class="table-header"> + <td align="left" colspan="2" class="table-header"> + <span class="table-header">Class Variables</span></td> +</tr> +<tr> + <td width="15%" align="right" valign="top" class="summary"> + <span class="summary-type"> </span> + </td><td class="summary"> + <a href="Crypto.PublicKey.DSA._DSAobj-class.html#keydata" class="summary-name">keydata</a> = <code title="['y', 'g', 'p', 'q', 'x']"><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">y</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">g</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">p</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">q</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">x</code><code class="variable-quote">'</code><code class="variable-group">]</code></code><br /> + Dictionary of DSA parameters. + </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 align="left" colspan="2" class="table-header"> + <span class="table-header">Method Details</span></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">implementation</span>, + <span class="sig-arg">key</span>)</span> + <br /><em class="fname">(Constructor)</em> + </h3> + </td><td align="right" valign="top" + > + </td> + </tr></table> + + + <dl class="fields"> + <dt>Overrides: + pubkey.pubkey.__init__ + </dt> + </dl> +</td></tr></table> +</div> +<a name="sign"></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">sign</span>(<span class="sig-arg">self</span>, + <span class="sig-arg">M</span>, + <span class="sig-arg">K</span>)</span> + </h3> + </td><td align="right" valign="top" + > + </td> + </tr></table> + + <p>Sign a piece of data with DSA.</p> + <dl class="fields"> + <dt>Parameters:</dt> + <dd><ul class="nomargin-top"> + <li><strong class="pname"><code>M</code></strong> (byte string or long) - The piece of data to sign with DSA. It may +not be longer in bit size than the sub-group order (<em>q</em>).</li> + <li><strong class="pname"><code>K</code></strong> (long (recommended) or byte string (not recommended)) - A secret number, chosen randomly in the closed +range <em>[1,q-1]</em>.</li> + </ul></dd> + <dt>Returns:</dt> + <dd>A tuple with 2 longs.</dd> + <dt>Overrides: + pubkey.pubkey.sign + </dt> + </dl> +<div class="fields"> <strong>Attention:</strong> + <ul class="nomargin-top"> + <li> + selection of <em>K</em> is crucial for security. Generating a +random number larger than <em>q</em> and taking the modulus by <em>q</em> is +<strong>not</strong> secure, since smaller values will occur more frequently. +Generating a random number systematically smaller than <em>q-1</em> +(e.g. <em>floor((q-1)/8)</em> random bytes) is also <strong>not</strong> secure. In general, +it shall not be possible for an attacker to know the value of <a class="rst-reference external" href="http://www.di.ens.fr/~pnguyen/pub_NgSh00.htm" target="_top">any +bit of K</a>. + </li> + <li> + The number <em>K</em> shall not be reused for any other +operation and shall be discarded immediately. + </li> + <li> + M must be a digest cryptographic hash, otherwise +an attacker may mount an existential forgery attack. + </li> + </ul> +</div></td></tr></table> +</div> +<a name="verify"></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">verify</span>(<span class="sig-arg">self</span>, + <span class="sig-arg">M</span>, + <span class="sig-arg">signature</span>)</span> + </h3> + </td><td align="right" valign="top" + > + </td> + </tr></table> + + Verify the validity of a DSA signature. + <dl class="fields"> + <dt>Parameters:</dt> + <dd><ul class="nomargin-top"> + <li><strong class="pname"><code>M</code></strong> (byte string or long) - The expected message.</li> + <li><strong class="pname"><code>signature</code></strong> (A tuple with 2 longs as return by <a href="Crypto.PublicKey.DSA._DSAobj-class.html#sign" class="link">sign</a>) - The DSA signature to verify.</li> + </ul></dd> + <dt>Returns:</dt> + <dd>True if the signature is correct, False otherwise.</dd> + <dt>Overrides: + pubkey.pubkey.verify + </dt> + </dl> +</td></tr></table> +</div> +<a name="has_private"></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">has_private</span>(<span class="sig-arg">self</span>)</span> + </h3> + </td><td align="right" valign="top" + > + </td> + </tr></table> + + Tell if the key object contains private components. + <dl class="fields"> + <dt>Returns:</dt> + <dd>bool</dd> + <dt>Overrides: + pubkey.pubkey.has_private + <dd><em class="note">(inherited documentation)</em></dd> + </dt> + </dl> +</td></tr></table> +</div> +<a name="size"></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">size</span>(<span class="sig-arg">self</span>)</span> + </h3> + </td><td align="right" valign="top" + > + </td> + </tr></table> + + Tell the maximum number of bits that can be handled by this key. + <dl class="fields"> + <dt>Returns:</dt> + <dd>int</dd> + <dt>Overrides: + pubkey.pubkey.size + <dd><em class="note">(inherited documentation)</em></dd> + </dt> + </dl> +</td></tr></table> +</div> +<a name="can_blind"></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">can_blind</span>(<span class="sig-arg">self</span>)</span> + </h3> + </td><td align="right" valign="top" + > + </td> + </tr></table> + + <p>Tell if the algorithm can deal with data blinding.</p> +<p>This property concerns the <em>algorithm</em>, not the key itself. +It may happen that this particular key object hasn't got +the private information required carry out blinding.</p> + <dl class="fields"> + <dt>Returns:</dt> + <dd>boolean</dd> + <dt>Overrides: + pubkey.pubkey.can_blind + <dd><em class="note">(inherited documentation)</em></dd> + </dt> + </dl> +</td></tr></table> +</div> +<a name="can_encrypt"></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">can_encrypt</span>(<span class="sig-arg">self</span>)</span> + </h3> + </td><td align="right" valign="top" + > + </td> + </tr></table> + + <p>Tell if the algorithm can deal with data encryption.</p> +<p>This property concerns the <em>algorithm</em>, not the key itself. +It may happen that this particular key object hasn't got +the private information required to decrypt data.</p> + <dl class="fields"> + <dt>Returns:</dt> + <dd>boolean</dd> + <dt>Overrides: + pubkey.pubkey.can_encrypt + <dd><em class="note">(inherited documentation)</em></dd> + </dt> + </dl> +</td></tr></table> +</div> +<a name="can_sign"></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">can_sign</span>(<span class="sig-arg">self</span>)</span> + </h3> + </td><td align="right" valign="top" + > + </td> + </tr></table> + + <p>Tell if the algorithm can deal with cryptographic signatures.</p> +<p>This property concerns the <em>algorithm</em>, not the key itself. +It may happen that this particular key object hasn't got +the private information required to generate a signature.</p> + <dl class="fields"> + <dt>Returns:</dt> + <dd>boolean</dd> + <dt>Overrides: + pubkey.pubkey.can_sign + <dd><em class="note">(inherited documentation)</em></dd> + </dt> + </dl> +</td></tr></table> +</div> +<a name="publickey"></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">publickey</span>(<span class="sig-arg">self</span>)</span> + </h3> + </td><td align="right" valign="top" + > + </td> + </tr></table> + + Construct a new key carrying only the public information. + <dl class="fields"> + <dt>Returns:</dt> + <dd>A new pubkey object.</dd> + <dt>Overrides: + pubkey.pubkey.publickey + <dd><em class="note">(inherited documentation)</em></dd> + </dt> + </dl> +</td></tr></table> +</div> +<br /> +<!-- ==================== CLASS VARIABLE DETAILS ==================== --> +<a name="section-ClassVariableDetails"></a> +<table class="details" border="1" cellpadding="3" + cellspacing="0" width="100%" bgcolor="white"> +<tr bgcolor="#70b0f0" class="table-header"> + <td align="left" colspan="2" class="table-header"> + <span class="table-header">Class Variable Details</span></td> +</tr> +</table> +<a name="keydata"></a> +<div> +<table class="details" border="1" cellpadding="3" + cellspacing="0" width="100%" bgcolor="white"> +<tr><td> + <h3 class="epydoc">keydata</h3> + <p>Dictionary of DSA parameters.</p> +<p>A public key will only have the following entries:</p> +<blockquote> +<ul class="rst-simple"> +<li><strong>y</strong>, the public key.</li> +<li><strong>g</strong>, the generator.</li> +<li><strong>p</strong>, the modulus.</li> +<li><strong>q</strong>, the order of the sub-group.</li> +</ul> +</blockquote> +<p>A private key will also have:</p> +<blockquote> +<ul class="rst-simple"> +<li><strong>x</strong>, the private key.</li> +</ul> +</blockquote> + <dl class="fields"> + </dl> + <dl class="fields"> + <dt>Value:</dt> + <dd><table><tr><td><pre class="variable"> +<code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">y</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">g</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">p</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">q</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">x</code><code class="variable-quote">'</code><code class="variable-group">]</code> +</pre></td></tr></table> +</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 Thu May 24 09:02:37 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> |