blob: 2b219f813ac440376b7f5f1eab64de1f1c55ae57 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module gdata.tlslite.utils.RSAKey</title>
</head><body bgcolor="#f0f0f8">
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="gdata.html"><font color="#ffffff">gdata</font></a>.<a href="gdata.tlslite.html"><font color="#ffffff">tlslite</font></a>.<a href="gdata.tlslite.utils.html"><font color="#ffffff">utils</font></a>.RSAKey</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/tlslite/utils/RSAKey.py">/usr/local/google/home/afshar/src/external-gdata-release/google3/src/gdata/tlslite/utils/RSAKey.py</a></font></td></tr></table>
<p><tt>Abstract&nbsp;class&nbsp;for&nbsp;RSA.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="Crypto.html">Crypto</a><br>
<a href="array.html">array</a><br>
</td><td width="25%" valign=top><a href="base64.html">base64</a><br>
<a href="binascii.html">binascii</a><br>
</td><td width="25%" valign=top><a href="math.html">math</a><br>
<a href="os.html">os</a><br>
</td><td width="25%" valign=top><a href="sys.html">sys</a><br>
<a href="traceback.html">traceback</a><br>
</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>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="gdata.tlslite.utils.RSAKey.html#RSAKey">RSAKey</a>
</font></dt></dl>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="RSAKey">class <strong>RSAKey</strong></a></font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>This&nbsp;is&nbsp;an&nbsp;abstract&nbsp;base&nbsp;class&nbsp;for&nbsp;RSA&nbsp;keys.<br>
&nbsp;<br>
Particular&nbsp;implementations&nbsp;of&nbsp;RSA&nbsp;keys,&nbsp;such&nbsp;as<br>
L{OpenSSL_RSAKey.OpenSSL_RSAKey},<br>
L{Python_RSAKey.Python_RSAKey},&nbsp;and<br>
L{PyCrypto_RSAKey.PyCrypto_RSAKey},<br>
inherit&nbsp;from&nbsp;this.<br>
&nbsp;<br>
To&nbsp;create&nbsp;or&nbsp;parse&nbsp;an&nbsp;RSA&nbsp;key,&nbsp;don't&nbsp;use&nbsp;one&nbsp;of&nbsp;these&nbsp;classes<br>
directly.&nbsp;&nbsp;Instead,&nbsp;use&nbsp;the&nbsp;factory&nbsp;functions&nbsp;in<br>
L{tlslite.utils.keyfactory}.<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="RSAKey-__init__"><strong>__init__</strong></a>(self, n<font color="#909090">=0</font>, e<font color="#909090">=0</font>)</dt><dd><tt>Create&nbsp;a&nbsp;new&nbsp;RSA&nbsp;key.<br>
&nbsp;<br>
If&nbsp;n&nbsp;and&nbsp;e&nbsp;are&nbsp;passed&nbsp;in,&nbsp;the&nbsp;new&nbsp;key&nbsp;will&nbsp;be&nbsp;initialized.<br>
&nbsp;<br>
@type&nbsp;n:&nbsp;int<br>
@param&nbsp;n:&nbsp;RSA&nbsp;modulus.<br>
&nbsp;<br>
@type&nbsp;e:&nbsp;int<br>
@param&nbsp;e:&nbsp;RSA&nbsp;public&nbsp;exponent.</tt></dd></dl>
<dl><dt><a name="RSAKey-__len__"><strong>__len__</strong></a>(self)</dt><dd><tt>Return&nbsp;the&nbsp;length&nbsp;of&nbsp;this&nbsp;key&nbsp;in&nbsp;bits.<br>
&nbsp;<br>
@rtype:&nbsp;int</tt></dd></dl>
<dl><dt><a name="RSAKey-acceptsPassword"><strong>acceptsPassword</strong></a>(self)</dt><dd><tt>Return&nbsp;True&nbsp;if&nbsp;the&nbsp;<a href="#RSAKey-write">write</a>()&nbsp;method&nbsp;accepts&nbsp;a&nbsp;password&nbsp;for&nbsp;use<br>
in&nbsp;encrypting&nbsp;the&nbsp;private&nbsp;key.<br>
&nbsp;<br>
@rtype:&nbsp;bool</tt></dd></dl>
<dl><dt><a name="RSAKey-decrypt"><strong>decrypt</strong></a>(self, encBytes)</dt><dd><tt>Decrypt&nbsp;the&nbsp;passed-in&nbsp;bytes.<br>
&nbsp;<br>
This&nbsp;requires&nbsp;the&nbsp;key&nbsp;to&nbsp;have&nbsp;a&nbsp;private&nbsp;component.&nbsp;&nbsp;It&nbsp;performs<br>
PKCS1&nbsp;decryption&nbsp;of&nbsp;the&nbsp;passed-in&nbsp;data.<br>
&nbsp;<br>
@type&nbsp;encBytes:&nbsp;L{array.array}&nbsp;of&nbsp;unsigned&nbsp;bytes<br>
@param&nbsp;encBytes:&nbsp;The&nbsp;value&nbsp;which&nbsp;will&nbsp;be&nbsp;decrypted.<br>
&nbsp;<br>
@rtype:&nbsp;L{array.array}&nbsp;of&nbsp;unsigned&nbsp;bytes&nbsp;or&nbsp;None.<br>
@return:&nbsp;A&nbsp;PKCS1&nbsp;decryption&nbsp;of&nbsp;the&nbsp;passed-in&nbsp;data&nbsp;or&nbsp;None&nbsp;if<br>
the&nbsp;data&nbsp;is&nbsp;not&nbsp;properly&nbsp;formatted.</tt></dd></dl>
<dl><dt><a name="RSAKey-encrypt"><strong>encrypt</strong></a>(self, bytes)</dt><dd><tt>Encrypt&nbsp;the&nbsp;passed-in&nbsp;bytes.<br>
&nbsp;<br>
This&nbsp;performs&nbsp;PKCS1&nbsp;encryption&nbsp;of&nbsp;the&nbsp;passed-in&nbsp;data.<br>
&nbsp;<br>
@type&nbsp;bytes:&nbsp;L{array.array}&nbsp;of&nbsp;unsigned&nbsp;bytes<br>
@param&nbsp;bytes:&nbsp;The&nbsp;value&nbsp;which&nbsp;will&nbsp;be&nbsp;encrypted.<br>
&nbsp;<br>
@rtype:&nbsp;L{array.array}&nbsp;of&nbsp;unsigned&nbsp;bytes.<br>
@return:&nbsp;A&nbsp;PKCS1&nbsp;encryption&nbsp;of&nbsp;the&nbsp;passed-in&nbsp;data.</tt></dd></dl>
<dl><dt><a name="RSAKey-getSigningAlgorithm"><strong>getSigningAlgorithm</strong></a>(self)</dt><dd><tt>Return&nbsp;the&nbsp;cryptoID&nbsp;sigAlgo&nbsp;value&nbsp;corresponding&nbsp;to&nbsp;this&nbsp;key.<br>
&nbsp;<br>
@rtype:&nbsp;str</tt></dd></dl>
<dl><dt><a name="RSAKey-hasPrivateKey"><strong>hasPrivateKey</strong></a>(self)</dt><dd><tt>Return&nbsp;whether&nbsp;or&nbsp;not&nbsp;this&nbsp;key&nbsp;has&nbsp;a&nbsp;private&nbsp;component.<br>
&nbsp;<br>
@rtype:&nbsp;bool</tt></dd></dl>
<dl><dt><a name="RSAKey-hash"><strong>hash</strong></a>(self)</dt><dd><tt>Return&nbsp;the&nbsp;cryptoID&nbsp;&lt;keyHash&gt;&nbsp;value&nbsp;corresponding&nbsp;to&nbsp;this<br>
key.<br>
&nbsp;<br>
@rtype:&nbsp;str</tt></dd></dl>
<dl><dt><a name="RSAKey-hashAndSign"><strong>hashAndSign</strong></a>(self, bytes)</dt><dd><tt>Hash&nbsp;and&nbsp;sign&nbsp;the&nbsp;passed-in&nbsp;bytes.<br>
&nbsp;<br>
This&nbsp;requires&nbsp;the&nbsp;key&nbsp;to&nbsp;have&nbsp;a&nbsp;private&nbsp;component.&nbsp;&nbsp;It&nbsp;performs<br>
a&nbsp;PKCS1-SHA1&nbsp;signature&nbsp;on&nbsp;the&nbsp;passed-in&nbsp;data.<br>
&nbsp;<br>
@type&nbsp;bytes:&nbsp;str&nbsp;or&nbsp;L{array.array}&nbsp;of&nbsp;unsigned&nbsp;bytes<br>
@param&nbsp;bytes:&nbsp;The&nbsp;value&nbsp;which&nbsp;will&nbsp;be&nbsp;hashed&nbsp;and&nbsp;signed.<br>
&nbsp;<br>
@rtype:&nbsp;L{array.array}&nbsp;of&nbsp;unsigned&nbsp;bytes.<br>
@return:&nbsp;A&nbsp;PKCS1-SHA1&nbsp;signature&nbsp;on&nbsp;the&nbsp;passed-in&nbsp;data.</tt></dd></dl>
<dl><dt><a name="RSAKey-hashAndVerify"><strong>hashAndVerify</strong></a>(self, sigBytes, bytes)</dt><dd><tt>Hash&nbsp;and&nbsp;verify&nbsp;the&nbsp;passed-in&nbsp;bytes&nbsp;with&nbsp;the&nbsp;signature.<br>
&nbsp;<br>
This&nbsp;verifies&nbsp;a&nbsp;PKCS1-SHA1&nbsp;signature&nbsp;on&nbsp;the&nbsp;passed-in&nbsp;data.<br>
&nbsp;<br>
@type&nbsp;sigBytes:&nbsp;L{array.array}&nbsp;of&nbsp;unsigned&nbsp;bytes<br>
@param&nbsp;sigBytes:&nbsp;A&nbsp;PKCS1-SHA1&nbsp;signature.<br>
&nbsp;<br>
@type&nbsp;bytes:&nbsp;str&nbsp;or&nbsp;L{array.array}&nbsp;of&nbsp;unsigned&nbsp;bytes<br>
@param&nbsp;bytes:&nbsp;The&nbsp;value&nbsp;which&nbsp;will&nbsp;be&nbsp;hashed&nbsp;and&nbsp;verified.<br>
&nbsp;<br>
@rtype:&nbsp;bool<br>
@return:&nbsp;Whether&nbsp;the&nbsp;signature&nbsp;matches&nbsp;the&nbsp;passed-in&nbsp;data.</tt></dd></dl>
<dl><dt><a name="RSAKey-sign"><strong>sign</strong></a>(self, bytes)</dt><dd><tt>Sign&nbsp;the&nbsp;passed-in&nbsp;bytes.<br>
&nbsp;<br>
This&nbsp;requires&nbsp;the&nbsp;key&nbsp;to&nbsp;have&nbsp;a&nbsp;private&nbsp;component.&nbsp;&nbsp;It&nbsp;performs<br>
a&nbsp;PKCS1&nbsp;signature&nbsp;on&nbsp;the&nbsp;passed-in&nbsp;data.<br>
&nbsp;<br>
@type&nbsp;bytes:&nbsp;L{array.array}&nbsp;of&nbsp;unsigned&nbsp;bytes<br>
@param&nbsp;bytes:&nbsp;The&nbsp;value&nbsp;which&nbsp;will&nbsp;be&nbsp;signed.<br>
&nbsp;<br>
@rtype:&nbsp;L{array.array}&nbsp;of&nbsp;unsigned&nbsp;bytes.<br>
@return:&nbsp;A&nbsp;PKCS1&nbsp;signature&nbsp;on&nbsp;the&nbsp;passed-in&nbsp;data.</tt></dd></dl>
<dl><dt><a name="RSAKey-verify"><strong>verify</strong></a>(self, sigBytes, bytes)</dt><dd><tt>Verify&nbsp;the&nbsp;passed-in&nbsp;bytes&nbsp;with&nbsp;the&nbsp;signature.<br>
&nbsp;<br>
This&nbsp;verifies&nbsp;a&nbsp;PKCS1&nbsp;signature&nbsp;on&nbsp;the&nbsp;passed-in&nbsp;data.<br>
&nbsp;<br>
@type&nbsp;sigBytes:&nbsp;L{array.array}&nbsp;of&nbsp;unsigned&nbsp;bytes<br>
@param&nbsp;sigBytes:&nbsp;A&nbsp;PKCS1&nbsp;signature.<br>
&nbsp;<br>
@type&nbsp;bytes:&nbsp;L{array.array}&nbsp;of&nbsp;unsigned&nbsp;bytes<br>
@param&nbsp;bytes:&nbsp;The&nbsp;value&nbsp;which&nbsp;will&nbsp;be&nbsp;verified.<br>
&nbsp;<br>
@rtype:&nbsp;bool<br>
@return:&nbsp;Whether&nbsp;the&nbsp;signature&nbsp;matches&nbsp;the&nbsp;passed-in&nbsp;data.</tt></dd></dl>
<dl><dt><a name="RSAKey-write"><strong>write</strong></a>(self, password<font color="#909090">=None</font>)</dt><dd><tt>Return&nbsp;a&nbsp;string&nbsp;containing&nbsp;the&nbsp;key.<br>
&nbsp;<br>
@rtype:&nbsp;str<br>
@return:&nbsp;A&nbsp;string&nbsp;describing&nbsp;the&nbsp;key,&nbsp;in&nbsp;whichever&nbsp;format&nbsp;(PEM<br>
or&nbsp;XML)&nbsp;is&nbsp;native&nbsp;to&nbsp;the&nbsp;implementation.</tt></dd></dl>
<dl><dt><a name="RSAKey-writeXMLPublicKey"><strong>writeXMLPublicKey</strong></a>(self, indent<font color="#909090">=''</font>)</dt><dd><tt>Return&nbsp;a&nbsp;string&nbsp;containing&nbsp;the&nbsp;key.<br>
&nbsp;<br>
@rtype:&nbsp;str<br>
@return:&nbsp;A&nbsp;string&nbsp;describing&nbsp;the&nbsp;public&nbsp;key,&nbsp;in&nbsp;XML&nbsp;format.</tt></dd></dl>
<hr>
Static methods defined here:<br>
<dl><dt><a name="RSAKey-generate"><strong>generate</strong></a>(bits)</dt><dd><tt>Generate&nbsp;a&nbsp;new&nbsp;key&nbsp;with&nbsp;the&nbsp;specified&nbsp;bit&nbsp;length.<br>
&nbsp;<br>
@rtype:&nbsp;L{tlslite.utils.<a href="#RSAKey">RSAKey</a>.<a href="#RSAKey">RSAKey</a>}</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>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl><dt><a name="-sha1"><strong>sha1</strong></a> = openssl_sha1(...)</dt><dd><tt>Returns&nbsp;a&nbsp;sha1&nbsp;hash&nbsp;object;&nbsp;optionally&nbsp;initialized&nbsp;with&nbsp;a&nbsp;string</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>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><strong>cryptlibpyLoaded</strong> = False<br>
<strong>gmpyLoaded</strong> = False<br>
<strong>m2cryptoLoaded</strong> = False<br>
<strong>prngName</strong> = 'os.urandom'<br>
<strong>pycryptoLoaded</strong> = True<br>
<strong>sieve</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>