<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>JSDoc: Module: keyring/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">Module: keyring/keyring</h1> <section> <header> <h2> keyring/keyring </h2> </header> <article> <div class="container-overview"> <div class="description">The class that deals with storage of the keyring. Currently the only option is to use HTML5 local storage.</div> <dt> <h4 class="name" id="module:keyring/keyring"><span class="type-signature"></span>new (require("keyring/keyring"))<span class="signature">(<span class="optional">storeHandler</span>)</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. </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Argument</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>storeHandler</code></td> <td class="type"> <span class="param-type">class</span> </td> <td class="attributes"> <optional><br> </td> <td class="description last">class implementing load() and store() methods</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="keyring.js.html">keyring/keyring.js</a>, <a href="keyring.js.html#line40">line 40</a> </li></ul></dd> </dl> </dd> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="keyring.js.html">keyring/keyring.js</a>, <a href="keyring.js.html#line18">line 18</a> </li></ul></dd> </dl> </div> <h3 class="subsection-title">Requires</h3> <ul> <li><a href="module-openpgp.html">module:openpgp</a></li> </ul> <h3 class="subsection-title">Methods</h3> <dl> <dt> <h4 class="name" id="clear"><span class="type-signature"></span>clear<span class="signature">()</span><span class="type-signature"></span></h4> </dt> <dd> <div class="description"> Clear the keyring - erase all the keys </div> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="keyring.js.html">keyring/keyring.js</a>, <a href="keyring.js.html#line57">line 57</a> </li></ul></dd> </dl> </dd> <dt> <h4 class="name" id="exportKey"><span class="type-signature"></span>exportKey<span class="signature">(index)</span><span class="type-signature"> → {String}</span></h4> </dt> <dd> <div class="description"> returns the armored message representation of the key at 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 key within the array</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="keyring.js.html">keyring/keyring.js</a>, <a href="keyring.js.html#line167">line 167</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> armored message representing the key object </div> <dl> <dt> Type </dt> <dd> <span class="param-type">String</span> </dd> </dl> </dd> <dt> <h4 class="name" id="exportPublicKey"><span class="type-signature"></span>exportPublicKey<span class="signature">(index)</span><span class="type-signature"> → {String}</span></h4> </dt> <dd> <div class="description"> returns the armored message representation of the public key portion of the key at 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 key within the array</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="keyring.js.html">keyring/keyring.js</a>, <a href="keyring.js.html#line187">line 187</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> armored message representing the public key object </div> <dl> <dt> Type </dt> <dd> <span class="param-type">String</span> </dd> </dl> </dd> <dt> <h4 class="name" id="getKeysForKeyId"><span class="type-signature"></span>getKeysForKeyId<span class="signature">(keyId)</span><span class="type-signature"> → {Array.<<a href="module-key-Key.html">module:key~Key</a>>}</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="keyring.js.html">keyring/keyring.js</a>, <a href="keyring.js.html#line148">line 148</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> public keys found </div> <dl> <dt> Type </dt> <dd> <span class="param-type">Array.<<a href="module-key-Key.html">module:key~Key</a>></span> </dd> </dl> </dd> <dt> <h4 class="name" id="getPrivateKeyForAddress"><span class="type-signature"></span>getPrivateKeyForAddress<span class="signature">(email)</span><span class="type-signature"> → {Array.<<a href="module-key-Key.html">module:key~Key</a>>}</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</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="keyring.js.html">keyring/keyring.js</a>, <a href="keyring.js.html#line139">line 139</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> private keys found </div> <dl> <dt> Type </dt> <dd> <span class="param-type">Array.<<a href="module-key-Key.html">module:key~Key</a>></span> </dd> </dl> </dd> <dt> <h4 class="name" id="getPublicKeyForAddress"><span class="type-signature"></span>getPublicKeyForAddress<span class="signature">(email)</span><span class="type-signature"> → {Array.<<a href="module-key-Key.html">module:key~Key</a>>}</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</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="keyring.js.html">keyring/keyring.js</a>, <a href="keyring.js.html#line130">line 130</a> </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">Array.<<a href="module-key-Key.html">module:key~Key</a>></span> </dd> </dl> </dd> <dt> <h4 class="name" id="importKey"><span class="type-signature"></span>importKey<span class="signature">(armored)</span><span class="type-signature"></span></h4> </dt> <dd> <div class="description"> Imports a key from an 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</code></td> <td class="type"> <span class="param-type">String</span> </td> <td class="description last">message to read the keys/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="keyring.js.html">keyring/keyring.js</a>, <a href="keyring.js.html#line156">line 156</a> </li></ul></dd> </dl> </dd> <dt> <h4 class="name" id="removeKey"><span class="type-signature"></span>removeKey<span class="signature">(index)</span><span class="type-signature"> → {<a href="module-key-Key.html">module:key~Key</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="keyring.js.html">keyring/keyring.js</a>, <a href="keyring.js.html#line176">line 176</a> </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="module-key-Key.html">module:key~Key</a></span> </dd> </dl> </dd> <dt> <h4 class="name" id="store"><span class="type-signature"></span>store<span class="signature">()</span><span class="type-signature"></span></h4> </dt> <dd> <div class="description"> Calls the storeHandler to save the keys </div> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="keyring.js.html">keyring/keyring.js</a>, <a href="keyring.js.html#line50">line 50</a> </li></ul></dd> </dl> </dd> <dt> <h4 class="name" id="checkForIdentityAndKeyTypeMatch"><span class="type-signature"><inner> </span>checkForIdentityAndKeyTypeMatch<span class="signature">(keys, identityFunction, identityInput, keyType)</span><span class="type-signature"> → {Array.<<a href="module-key-Key.html">module:key~Key</a>>}</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>keys</code></td> <td class="type"> <span class="param-type">Array.<<a href="module-key-Key.html">module:key~Key</a>></span> </td> <td class="description last">array of keys to search</td> </tr> <tr> <td class="name"><code>identityFunction</code></td> <td class="type"> <span class="param-type"><a href="keyring.html#checkCallback">module:keyring/keyring.checkCallback</a></span> </td> <td class="description last">callback function which checks for a match</td> </tr> <tr> <td class="name"><code>identityInput</code></td> <td class="type"> <span class="param-type">String</span> </td> <td class="description last">input to check against</td> </tr> <tr> <td class="name"><code>keyType</code></td> <td class="type"> <span class="param-type"><a href="module-enums.html#packet">module:enums.packet</a></span> </td> <td class="description last">packet types of keys to check</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="keyring.js.html">keyring/keyring.js</a>, <a href="keyring.js.html#line105">line 105</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> array of keys which match </div> <dl> <dt> Type </dt> <dd> <span class="param-type">Array.<<a href="module-key-Key.html">module:key~Key</a>></span> </dd> </dl> </dd> <dt> <h4 class="name" id="emailCheck"><span class="type-signature"><inner> </span>emailCheck<span class="signature">(email, key)</span><span class="type-signature"> → {Boolean}</span></h4> </dt> <dd> <div class="description"> Checks a key to see if it matches 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</code></td> <td class="type"> <span class="param-type">String</span> </td> <td class="description last">email address to search for</td> </tr> <tr> <td class="name"><code>key</code></td> <td class="type"> <span class="param-type"><a href="module-key-Key.html">module:key~Key</a></span> </td> <td class="description last">The key to be checked.</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="keyring.js.html">keyring/keyring.js</a>, <a href="keyring.js.html#line67">line 67</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> True if the email address is defined in the specified key </div> <dl> <dt> Type </dt> <dd> <span class="param-type">Boolean</span> </dd> </dl> </dd> <dt> <h4 class="name" id="idCheck"><span class="type-signature"><inner> </span>idCheck<span class="signature">(id, key)</span><span class="type-signature"> → {Boolean}</span></h4> </dt> <dd> <div class="description"> Checks a key to see if it matches the specified keyid </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>id</code></td> <td class="type"> <span class="param-type">String</span> </td> <td class="description last">hex string keyid to search for</td> </tr> <tr> <td class="name"><code>key</code></td> <td class="type"> <span class="param-type"><a href="module-key-Key.html">module:key~Key</a></span> </td> <td class="description last">the key to be checked.</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="keyring.js.html">keyring/keyring.js</a>, <a href="keyring.js.html#line87">line 87</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> true if the email address is defined in the specified key </div> <dl> <dt> Type </dt> <dd> <span class="param-type">Boolean</span> </dd> </dl> </dd> </dl> <h3 class="subsection-title">Type Definitions</h3> <dl> <dt> <h4 class="name" id="checkCallback"><span class="type-signature"></span>checkCallback<span class="signature">(input, key)</span><span class="type-signature"> → {Boolean}</span></h4> </dt> <dd> <div class="description"> Callback to check if a key matches the input </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>input</code></td> <td class="type"> <span class="param-type">String</span> </td> <td class="description last">input to search for</td> </tr> <tr> <td class="name"><code>key</code></td> <td class="type"> <span class="param-type"><a href="module-key-Key.html">module:key~Key</a></span> </td> <td class="description last">The key to be checked.</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="keyring.js.html">keyring/keyring.js</a>, <a href="keyring.js.html#line26">line 26</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> True if the input matches the specified key </div> <dl> <dt> Type </dt> <dd> <span class="param-type">Boolean</span> </dd> </dl> </dd> </dl> </article> </section> </div> <nav> <h2><a href="index.html">Index</a></h2><h3>Modules</h3><ul><li><a href="module-armor.html">armor</a></li><li><a href="module-cleartext.html">cleartext</a></li><li><a href="module-config.html">config</a></li><li><a href="config.html">config/config</a></li><li><a href="localStorage.html">config/localStorage</a></li><li><a href="module-crypto.html">crypto</a></li><li><a href="cfb.html">crypto/cfb</a></li><li><a href="cipher.html">crypto/cipher</a></li><li><a href="aes.html">crypto/cipher/aes</a></li><li><a href="blowfish.html">crypto/cipher/blowfish</a></li><li><a href="cast5.html">crypto/cipher/cast5</a></li><li><a href="des.html">crypto/cipher/des</a></li><li><a href="twofish.html">crypto/cipher/twofish</a></li><li><a href="crypto.html">crypto/crypto</a></li><li><a href="hash.html">crypto/hash</a></li><li><a href="md5.html">crypto/hash/md5</a></li><li><a href="ripe-md.html">crypto/hash/ripe-md</a></li><li><a href="sha.html">crypto/hash/sha</a></li><li><a href="pkcs1.html">crypto/pkcs1</a></li><li><a href="public_key.html">crypto/public_key</a></li><li><a href="dsa.html">crypto/public_key/dsa</a></li><li><a href="elgamal.html">crypto/public_key/elgamal</a></li><li><a href="jsbn.html">crypto/public_key/jsbn</a></li><li><a href="rsa.html">crypto/public_key/rsa</a></li><li><a href="random.html">crypto/random</a></li><li><a href="signature.html">crypto/signature</a></li><li><a href="armor.html">encoding/armor</a></li><li><a href="base64.html">encoding/base64</a></li><li><a href="module-enums.html">enums</a></li><li><a href="module-key.html">key</a></li><li><a href="module-keyid.html">keyid</a></li><li><a href="keyring.html">keyring/keyring</a></li><li><a href="localstore.html">keyring/localstore</a></li><li><a href="module-message.html">message</a></li><li><a href="module-mpi.html">mpi</a></li><li><a href="module-openpgp.html">openpgp</a></li><li><a href="module-packet.html">packet</a></li><li><a href="compressed.html">packet/compressed</a></li><li><a href="literal.html">packet/literal</a></li><li><a href="marker.html">packet/marker</a></li><li><a href="one_pass_signature.html">packet/one_pass_signature</a></li><li><a href="packet.html">packet/packet</a></li><li><a href="packetlist.html">packet/packetlist</a></li><li><a href="public_key_.html">packet/public_key</a></li><li><a href="public_key_encrypted_session_key.html">packet/public_key_encrypted_session_key</a></li><li><a href="public_subkey.html">packet/public_subkey</a></li><li><a href="secret_key.html">packet/secret_key</a></li><li><a href="secret_subkey.html">packet/secret_subkey</a></li><li><a href="signature_.html">packet/signature</a></li><li><a href="sym_encrypted_integrity_protected.html">packet/sym_encrypted_integrity_protected</a></li><li><a href="sym_encrypted_session_key.html">packet/sym_encrypted_session_key</a></li><li><a href="symmetrically_encrypted.html">packet/symmetrically_encrypted</a></li><li><a href="trust.html">packet/trust</a></li><li><a href="user_attribute.html">packet/user_attribute</a></li><li><a href="userid.html">packet/userid</a></li><li><a href="module-s2k.html">s2k</a></li><li><a href="keyid.html">type/keyid</a></li><li><a href="mpi.html">type/mpi</a></li><li><a href="s2k.html">type/s2k</a></li><li><a href="module-util.html">util</a></li><li><a href="util.html">util/util</a></li></ul><h3>Classes</h3><ul><li><a href="JXG.Util.html">Util</a></li><li><a href="module-cleartext-CleartextMessage.html">CleartextMessage</a></li><li><a href="module-key-Key.html">Key</a></li><li><a href="module-key-SubKey.html">SubKey</a></li><li><a href="module-key-User.html">User</a></li><li><a href="module-message-Message.html">Message</a></li></ul> </nav> <br clear="both"> <footer> Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Mon Jan 06 2014 16:27:52 GMT+0100 (MEZ) </footer> <script> prettyPrint(); </script> <script src="scripts/linenumber.js"> </script> </body> </html>