fork-openpgpjs/doc/openpgp_keyring.html
Michal Kolodziej 23295342fc Added utf8 awareness to the literal and userid packet classes. Made s2k
work correctly with utf8 strings. Fixeda visibility issue with the
testing suite and added relevant unit tests.
2013-04-16 10:47:17 +02:00

1730 lines
27 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Class: openpgp_keyring</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Class: openpgp_keyring</h1>
<section>
<header>
<h2>
openpgp_keyring
</h2>
<div class="class-description">The class that deals with storage of the keyring. Currently the only option is to use HTML5 local storage.</div>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="openpgp_keyring"><span class="type-signature"></span>new openpgp_keyring<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.keyring.js.html">openpgp.keyring.js</a>, line 22
</li></ul></dd>
</dl>
</dd>
</div>
<h3 class="subsection-title">Methods</h3>
<dl>
<dt>
<h4 class="name" id="exportPrivateKey"><span class="type-signature">&lt;inner> </span>exportPrivateKey<span class="signature">(index)</span><span class="type-signature"> &rarr; {<a href="openpgp_msg_privatekey.html">openpgp_msg_privatekey</a>}</span></h4>
</dt>
<dd>
<div class="description">
returns the openpgp_msg_privatekey representation of the private key at private key ring index
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>index</code></td>
<td class="type">
<span class="param-type">Integer</span>
</td>
<td class="description last">the index of the private key within the privateKeys array</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.keyring.js.html">openpgp.keyring.js</a>, line 247
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
the private key object
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="openpgp_msg_privatekey.html">openpgp_msg_privatekey</a></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="exportPublicKey"><span class="type-signature">&lt;inner> </span>exportPublicKey<span class="signature">(index)</span><span class="type-signature"> &rarr; {<a href="openpgp_msg_privatekey.html">openpgp_msg_privatekey</a>}</span></h4>
</dt>
<dd>
<div class="description">
returns the openpgp_msg_privatekey representation of the public key at public key ring index
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>index</code></td>
<td class="type">
<span class="param-type">Integer</span>
</td>
<td class="description last">the index of the public key within the publicKeys array</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.keyring.js.html">openpgp.keyring.js</a>, line 224
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
the public key object
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="openpgp_msg_privatekey.html">openpgp_msg_privatekey</a></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="getPrivateKeyForAddress"><span class="type-signature">&lt;inner> </span>getPrivateKeyForAddress<span class="signature">(email_address)</span><span class="type-signature"> &rarr; {openpgp_msg_privatekey[]}</span></h4>
</dt>
<dd>
<div class="description">
Searches the keyring for a private key containing the specified email address
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>email_address</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">email address to search for</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.keyring.js.html">openpgp.keyring.js</a>, line 117
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
private keys found
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">openpgp_msg_privatekey[]</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="getPrivateKeyForKeyId"><span class="type-signature">&lt;inner> </span>getPrivateKeyForKeyId<span class="signature">(keyId)</span><span class="type-signature"> &rarr; {openpgp_msg_privatekey[]}</span></h4>
</dt>
<dd>
<div class="description">
Searches the keyring for private keys having the specified key id
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>keyId</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">8 bytes as string containing the key id to look for</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.keyring.js.html">openpgp.keyring.js</a>, line 172
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
private keys found
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">openpgp_msg_privatekey[]</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="getPublicKeyForAddress"><span class="type-signature">&lt;inner> </span>getPublicKeyForAddress<span class="signature">(email_address)</span><span class="type-signature"> &rarr; {openpgp_msg_publickey[]}</span></h4>
</dt>
<dd>
<div class="description">
searches all public keys in the keyring matching the address or address part of the user ids
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>email_address</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.keyring.js.html">openpgp.keyring.js</a>, line 89
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
The public keys associated with provided email address.
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">openpgp_msg_publickey[]</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="getPublicKeysForKeyId"><span class="type-signature">&lt;inner> </span>getPublicKeysForKeyId<span class="signature">(keyId)</span><span class="type-signature"> &rarr; {openpgp_msg_privatekey[]}</span></h4>
</dt>
<dd>
<div class="description">
Searches the keyring for public keys having the specified key id
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>keyId</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">provided as string of hex number (lowercase)</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.keyring.js.html">openpgp.keyring.js</a>, line 145
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
public keys found
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">openpgp_msg_privatekey[]</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="hasPrivateKey"><span class="type-signature">&lt;inner> </span>hasPrivateKey<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
</dt>
<dd>
<div class="description">
Checks if at least one private key is in the keyring
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.keyring.js.html">openpgp.keyring.js</a>, line 62
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
True if there are private keys, else false.
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Boolean</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="importPrivateKey"><span class="type-signature">&lt;inner> </span>importPrivateKey<span class="signature">(armored_text)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Imports a private key from an exported ascii armored message
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>armored_text</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">PRIVATE KEY BLOCK message to read the private key from</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.keyring.js.html">openpgp.keyring.js</a>, line 206
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="importPublicKey"><span class="type-signature">&lt;inner> </span>importPublicKey<span class="signature">(armored_text)</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Imports a public key from an exported ascii armored message
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>armored_text</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last">PUBLIC KEY BLOCK message to read the public key from</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.keyring.js.html">openpgp.keyring.js</a>, line 194
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="init"><span class="type-signature">&lt;inner> </span>init<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Initialization routine for the keyring. This method reads the
keyring from HTML5 local storage and initializes this instance.
This method is called by openpgp.init().
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.keyring.js.html">openpgp.keyring.js</a>, line 29
</li></ul></dd>
</dl>
</dd>
<dt>
<h4 class="name" id="removePrivateKey"><span class="type-signature">&lt;inner> </span>removePrivateKey<span class="signature">(index)</span><span class="type-signature"> &rarr; {<a href="openpgp_msg_privatekey.html">openpgp_msg_privatekey</a>}</span></h4>
</dt>
<dd>
<div class="description">
Removes a private key from the private key keyring at the specified index
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>index</code></td>
<td class="type">
<span class="param-type">Integer</span>
</td>
<td class="description last">the index of the private key within the privateKeys array</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.keyring.js.html">openpgp.keyring.js</a>, line 257
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
The private key object which has been removed
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="openpgp_msg_privatekey.html">openpgp_msg_privatekey</a></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="removePublicKey"><span class="type-signature">&lt;inner> </span>removePublicKey<span class="signature">(index)</span><span class="type-signature"> &rarr; {<a href="openpgp_msg_privatekey.html">openpgp_msg_privatekey</a>}</span></h4>
</dt>
<dd>
<div class="description">
Removes a public key from the public key keyring at the specified index
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>index</code></td>
<td class="type">
<span class="param-type">Integer</span>
</td>
<td class="description last">the index of the public key within the publicKeys array</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.keyring.js.html">openpgp.keyring.js</a>, line 235
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
The public key object which has been removed
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="openpgp_msg_privatekey.html">openpgp_msg_privatekey</a></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="store"><span class="type-signature">&lt;inner> </span>store<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
Saves the current state of the keyring to HTML5 local storage.
The privateKeys array and publicKeys array gets Stringified using JSON
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="openpgp.keyring.js.html">openpgp.keyring.js</a>, line 71
</li></ul></dd>
</dl>
</dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Index</a></h2><h3>Classes</h3><ul><li><a href="_openpgp_packet.html">_openpgp_packet</a></li><li><a href="JXG.Util.html">Util</a></li><li><a href="openpgp.html">openpgp</a></li><li><a href="openpgp_config.html">openpgp_config</a></li><li><a href="openpgp_keyring.html">openpgp_keyring</a></li><li><a href="openpgp_msg_message.html">openpgp_msg_message</a></li><li><a href="openpgp_msg_privatekey.html">openpgp_msg_privatekey</a></li><li><a href="openpgp_msg_publickey.html">openpgp_msg_publickey</a></li><li><a href="openpgp_packet_compressed.html">openpgp_packet_compressed</a></li><li><a href="openpgp_packet_encrypteddata.html">openpgp_packet_encrypteddata</a></li><li><a href="openpgp_packet_encryptedintegrityprotecteddata.html">openpgp_packet_encryptedintegrityprotecteddata</a></li><li><a href="openpgp_packet_encryptedsessionkey.html">openpgp_packet_encryptedsessionkey</a></li><li><a href="openpgp_packet_keymaterial.html">openpgp_packet_keymaterial</a></li><li><a href="openpgp_packet_literaldata.html">openpgp_packet_literaldata</a></li><li><a href="openpgp_packet_marker.html">openpgp_packet_marker</a></li><li><a href="openpgp_packet_modificationdetectioncode.html">openpgp_packet_modificationdetectioncode</a></li><li><a href="openpgp_packet_onepasssignature.html">openpgp_packet_onepasssignature</a></li><li><a href="openpgp_packet_signature.html">openpgp_packet_signature</a></li><li><a href="openpgp_packet_userattribute.html">openpgp_packet_userattribute</a></li><li><a href="openpgp_packet_userid.html">openpgp_packet_userid</a></li><li><a href="openpgp_type_keyid.html">openpgp_type_keyid</a></li><li><a href="openpgp_type_mpi.html">openpgp_type_mpi</a></li><li><a href="openpgp_type_s2k.html">openpgp_type_s2k</a></li></ul><h3>Global</h3><ul><li><a href="global.html#bin2str">bin2str</a></li><li><a href="global.html#calc_checksum">calc_checksum</a></li><li><a href="global.html#crc_table">crc_table</a></li><li><a href="global.html#decode_utf8">decode_utf8</a></li><li><a href="global.html#encode_utf8">encode_utf8</a></li><li><a href="global.html#get_hashAlgorithmString">get_hashAlgorithmString</a></li><li><a href="global.html#getCheckSum">getCheckSum</a></li><li><a href="global.html#getPGPMessageType">getPGPMessageType</a></li><li><a href="global.html#hash_headers">hash_headers</a></li><li><a href="global.html#hex2bin">hex2bin</a></li><li><a href="global.html#hexidump">hexidump</a></li><li><a href="global.html#hexstrdump">hexstrdump</a></li><li><a href="global.html#MD5">MD5</a></li><li><a href="global.html#openpgp_cfb_decrypt">openpgp_cfb_decrypt</a></li><li><a href="global.html#openpgp_cfb_encrypt">openpgp_cfb_encrypt</a></li><li><a href="global.html#openpgp_cfb_mdc">openpgp_cfb_mdc</a></li><li><a href="global.html#openpgp_crypto_asymetricDecrypt">openpgp_crypto_asymetricDecrypt</a></li><li><a href="global.html#openpgp_crypto_asymetricEncrypt">openpgp_crypto_asymetricEncrypt</a></li><li><a href="global.html#openpgp_crypto_generateKeyPair">openpgp_crypto_generateKeyPair</a></li><li><a href="global.html#openpgp_crypto_generateSessionKey">openpgp_crypto_generateSessionKey</a></li><li><a href="global.html#openpgp_crypto_getHashByteLength">openpgp_crypto_getHashByteLength</a></li><li><a href="global.html#openpgp_crypto_getPrefixRandom">openpgp_crypto_getPrefixRandom</a></li><li><a href="global.html#openpgp_crypto_getPseudoRandom">openpgp_crypto_getPseudoRandom</a></li><li><a href="global.html#openpgp_crypto_getRandomBigInteger">openpgp_crypto_getRandomBigInteger</a></li><li><a href="global.html#openpgp_crypto_getRandomBytes">openpgp_crypto_getRandomBytes</a></li><li><a href="global.html#openpgp_crypto_getSecureRandom">openpgp_crypto_getSecureRandom</a></li><li><a href="global.html#openpgp_crypto_hashData">openpgp_crypto_hashData</a></li><li><a href="global.html#openpgp_crypto_MDCSystemBytes">openpgp_crypto_MDCSystemBytes</a></li><li><a href="global.html#openpgp_crypto_signData">openpgp_crypto_signData</a></li><li><a href="global.html#openpgp_crypto_symmetricDecrypt">openpgp_crypto_symmetricDecrypt</a></li><li><a href="global.html#openpgp_crypto_symmetricEncrypt">openpgp_crypto_symmetricEncrypt</a></li><li><a href="global.html#openpgp_crypto_verifySignature">openpgp_crypto_verifySignature</a></li><li><a href="global.html#openpgp_encoding_armor">openpgp_encoding_armor</a></li><li><a href="global.html#openpgp_encoding_armor_addheader">openpgp_encoding_armor_addheader</a></li><li><a href="global.html#openpgp_encoding_base64_decode">openpgp_encoding_base64_decode</a></li><li><a href="global.html#openpgp_encoding_base64_encode">openpgp_encoding_base64_encode</a></li><li><a href="global.html#openpgp_encoding_deArmor">openpgp_encoding_deArmor</a></li><li><a href="global.html#openpgp_encoding_eme_pkcs1_decode">openpgp_encoding_eme_pkcs1_decode</a></li><li><a href="global.html#openpgp_encoding_eme_pkcs1_encode">openpgp_encoding_eme_pkcs1_encode</a></li><li><a href="global.html#openpgp_encoding_emsa_pkcs1_decode">openpgp_encoding_emsa_pkcs1_decode</a></li><li><a href="global.html#openpgp_encoding_emsa_pkcs1_encode">openpgp_encoding_emsa_pkcs1_encode</a></li><li><a href="global.html#openpgp_encoding_html_encode">openpgp_encoding_html_encode</a></li><li><a href="global.html#print_debug">print_debug</a></li><li><a href="global.html#print_debug_hexstr_dump">print_debug_hexstr_dump</a></li><li><a href="global.html#print_error">print_error</a></li><li><a href="global.html#print_info">print_info</a></li><li><a href="global.html#shiftRight">shiftRight</a></li><li><a href="global.html#str2bin">str2bin</a></li><li><a href="global.html#str2Uint8Array">str2Uint8Array</a></li><li><a href="global.html#Uint8Array2str">Uint8Array2str</a></li><li><a href="global.html#util">util</a></li><li><a href="global.html#verifyCheckSum">verifyCheckSum</a></li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.0-dev</a> on Tue Apr 16 2013 10:42:41 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
</body>
</html>