<!doctype html>
<html class="no-js" lang="">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="x-ua-compatible" content="ie=edge">
        <title>CICADA</title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
	      <link rel="stylesheet" href="../styles/style.css">
    </head>
    <body>

        <div class="navbar navbar-default navbar-fixed-top visible-xs">
            <a href="../" class="navbar-brand">CICADA</a>
            <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
        </div>

        <div class="xs-menu menu" id="mobile-menu">
                <div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div>            <compodoc-menu></compodoc-menu>
        </div>

        <div class="container-fluid main">
           <div class="row main">
               <div class="hidden-xs menu">
                   <compodoc-menu mode="normal"></compodoc-menu>
               </div>
               <!-- START CONTENT -->
               <div class="content interface">
                   <div class="content-data">












<ol class="breadcrumb">
  <li>Interfaces</li>
  <li>MutableKeyStore</li>
</ol>

<ul class="nav nav-tabs" role="tablist">
        <li class="active">
            <a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
        </li>
        <li >
            <a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
        </li>
</ul>

<div class="tab-content">
    <div class="tab-pane fade active in" id="c-info">
        <p class="comment">
            <h3>File</h3>
        </p>
        <p class="comment">
            <code>src/app/_pgp/pgp-key-store.ts</code>
        </p>

            <p class="comment">
                <h3>Description</h3>
            </p>
            <p class="comment">
                <p>Mutable Key store interface.</p>

            </p>

            <p class="comment">
                <h3>Extends</h3>
            </p>
            <p class="comment">
                    <code>KeyStore</code>
            </p>

        <section>
            <h3 id="index">Index</h3>
            <table class="table table-sm table-bordered index-table">
                <tbody>
                    <tr>
                        <td class="col-md-4">
                            <h6><b>Methods</b></h6>
                        </td>
                    </tr>
                    <tr>
                        <td class="col-md-4">
                            <ul class="index-list">
                                <li>
                                    <a href="#clearKeysInKeyring">clearKeysInKeyring</a>
                                </li>
                                <li>
                                    <a href="#getEncryptKeys">getEncryptKeys</a>
                                </li>
                                <li>
                                    <a href="#getFingerprint">getFingerprint</a>
                                </li>
                                <li>
                                    <a href="#getKeyId">getKeyId</a>
                                </li>
                                <li>
                                    <a href="#getKeysForId">getKeysForId</a>
                                </li>
                                <li>
                                    <a href="#getPrivateKey">getPrivateKey</a>
                                </li>
                                <li>
                                    <a href="#getPrivateKeyForId">getPrivateKeyForId</a>
                                </li>
                                <li>
                                    <a href="#getPrivateKeyId">getPrivateKeyId</a>
                                </li>
                                <li>
                                    <a href="#getPrivateKeys">getPrivateKeys</a>
                                </li>
                                <li>
                                    <a href="#getPublicKeyForId">getPublicKeyForId</a>
                                </li>
                                <li>
                                    <a href="#getPublicKeyForSubkeyId">getPublicKeyForSubkeyId</a>
                                </li>
                                <li>
                                    <a href="#getPublicKeys">getPublicKeys</a>
                                </li>
                                <li>
                                    <a href="#getPublicKeysForAddress">getPublicKeysForAddress</a>
                                </li>
                                <li>
                                    <a href="#getTrustedActiveKeys">getTrustedActiveKeys</a>
                                </li>
                                <li>
                                    <a href="#getTrustedKeys">getTrustedKeys</a>
                                </li>
                                <li>
                                    <a href="#importKeyPair">importKeyPair</a>
                                </li>
                                <li>
                                    <a href="#importPrivateKey">importPrivateKey</a>
                                </li>
                                <li>
                                    <a href="#importPublicKey">importPublicKey</a>
                                </li>
                                <li>
                                    <a href="#isEncryptedPrivateKey">isEncryptedPrivateKey</a>
                                </li>
                                <li>
                                    <a href="#isValidKey">isValidKey</a>
                                </li>
                                <li>
                                    <a href="#loadKeyring">loadKeyring</a>
                                </li>
                                <li>
                                    <a href="#removeKeysForId">removeKeysForId</a>
                                </li>
                                <li>
                                    <a href="#removePublicKey">removePublicKey</a>
                                </li>
                                <li>
                                    <a href="#removePublicKeyForId">removePublicKeyForId</a>
                                </li>
                                <li>
                                    <a href="#sign">sign</a>
                                </li>
                            </ul>
                        </td>
                    </tr>
                </tbody>
            </table>
        </section>

            <section>
    
    <h3 id="methods">
        Methods
    </h3>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="clearKeysInKeyring"></a>
                    <span class="name">
                        <b>
                            clearKeysInKeyring
                        </b>
                        <a href="#clearKeysInKeyring"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>clearKeysInKeyring()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="16"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:16</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Remove all keys from the keyring. </p>
</div>

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getEncryptKeys"></a>
                    <span class="name">
                        <b>
                            getEncryptKeys
                        </b>
                        <a href="#getEncryptKeys"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>getEncryptKeys()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="24"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:24</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Get all the encryption keys.</p>
</div>

                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Array&lt;any&gt;</code>

                    </div>
                    <div class="io-description">
                        <p>An array of encryption keys.</p>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getFingerprint"></a>
                    <span class="name">
                        <b>
                            getFingerprint
                        </b>
                        <a href="#getFingerprint"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>getFingerprint()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="29"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:29</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Get the first private key&#39;s fingerprint.</p>
</div>

                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                    </div>
                    <div class="io-description">
                        <p>The first private key&#39;s fingerprint.</p>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getKeyId"></a>
                    <span class="name">
                        <b>
                            getKeyId
                        </b>
                        <a href="#getKeyId"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>getKeyId(key: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="35"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:35</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Get a key&#39;s keyId.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>key</td>
                                    <td>
                                                <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                    <td>
                                        <ul>
<li>The key to fetch the keyId from.</li>
</ul>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                    </div>
                    <div class="io-description">
                        <p>The key&#39;s keyId.</p>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getKeysForId"></a>
                    <span class="name">
                        <b>
                            getKeysForId
                        </b>
                        <a href="#getKeysForId"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>getKeysForId(keyId: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="41"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:41</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Get keys from the keyring using their keyId.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>keyId</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                    <td>
                                        <ul>
<li>The keyId of the keys to be fetched from the keyring.</li>
</ul>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Array&lt;any&gt;</code>

                    </div>
                    <div class="io-description">
                        <p>An array of the keys with that keyId.</p>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getPrivateKey"></a>
                    <span class="name">
                        <b>
                            getPrivateKey
                        </b>
                        <a href="#getPrivateKey"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>getPrivateKey()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="46"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:46</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Get the first private key.</p>
</div>

                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>

                    </div>
                    <div class="io-description">
                        <p>The first private key.</p>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getPrivateKeyForId"></a>
                    <span class="name">
                        <b>
                            getPrivateKeyForId
                        </b>
                        <a href="#getPrivateKeyForId"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>getPrivateKeyForId(keyId: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="52"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:52</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Get a private key from the keyring using it&#39;s keyId.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>keyId</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                    <td>
                                        <ul>
<li>The keyId of the private key to be fetched from the keyring.</li>
</ul>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>

                    </div>
                    <div class="io-description">
                        <p>The private key with that keyId.</p>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getPrivateKeyId"></a>
                    <span class="name">
                        <b>
                            getPrivateKeyId
                        </b>
                        <a href="#getPrivateKeyId"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>getPrivateKeyId()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="57"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:57</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Get the first private key&#39;s keyID.</p>
</div>

                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>

                    </div>
                    <div class="io-description">
                        <p>The first private key&#39;s keyId.</p>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getPrivateKeys"></a>
                    <span class="name">
                        <b>
                            getPrivateKeys
                        </b>
                        <a href="#getPrivateKeys"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>getPrivateKeys()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="62"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:62</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Get all private keys.</p>
</div>

                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Array&lt;any&gt;</code>

                    </div>
                    <div class="io-description">
                        <p>An array of all private keys.</p>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getPublicKeyForId"></a>
                    <span class="name">
                        <b>
                            getPublicKeyForId
                        </b>
                        <a href="#getPublicKeyForId"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>getPublicKeyForId(keyId: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="68"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:68</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Get a public key from the keyring using it&#39;s keyId.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>keyId</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                    <td>
                                        <ul>
<li>The keyId of the public key to be fetched from the keyring.</li>
</ul>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>

                    </div>
                    <div class="io-description">
                        <p>The public key with that keyId.</p>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getPublicKeyForSubkeyId"></a>
                    <span class="name">
                        <b>
                            getPublicKeyForSubkeyId
                        </b>
                        <a href="#getPublicKeyForSubkeyId"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>getPublicKeyForSubkeyId(subkeyId: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="74"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:74</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Get a public key from the keyring using it&#39;s subkeyId.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>subkeyId</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                    <td>
                                        <ul>
<li>The subkeyId of the public key to be fetched from the keyring.</li>
</ul>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>

                    </div>
                    <div class="io-description">
                        <p>The public key with that subkeyId.</p>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getPublicKeys"></a>
                    <span class="name">
                        <b>
                            getPublicKeys
                        </b>
                        <a href="#getPublicKeys"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>getPublicKeys()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="79"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:79</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Get all the public keys.</p>
</div>

                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Array&lt;any&gt;</code>

                    </div>
                    <div class="io-description">
                        <p>An array of public keys.</p>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getPublicKeysForAddress"></a>
                    <span class="name">
                        <b>
                            getPublicKeysForAddress
                        </b>
                        <a href="#getPublicKeysForAddress"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>getPublicKeysForAddress(address: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="85"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:85</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Get public keys from the keyring using their address.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>address</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                    <td>
                                        <ul>
<li>The address of the public keys to be fetched from the keyring.</li>
</ul>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Array&lt;any&gt;</code>

                    </div>
                    <div class="io-description">
                        <p>An array of the public keys with that address.</p>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getTrustedActiveKeys"></a>
                    <span class="name">
                        <b>
                            getTrustedActiveKeys
                        </b>
                        <a href="#getTrustedActiveKeys"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>getTrustedActiveKeys()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="90"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:90</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Get all the trusted active keys.</p>
</div>

                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Array&lt;any&gt;</code>

                    </div>
                    <div class="io-description">
                        <p>An array of trusted active keys.</p>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="getTrustedKeys"></a>
                    <span class="name">
                        <b>
                            getTrustedKeys
                        </b>
                        <a href="#getTrustedKeys"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>getTrustedKeys()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="95"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:95</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Get all the trusted keys.</p>
</div>

                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Array&lt;any&gt;</code>

                    </div>
                    <div class="io-description">
                        <p>An array of trusted keys.</p>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="importKeyPair"></a>
                    <span class="name">
                        <b>
                            importKeyPair
                        </b>
                        <a href="#importKeyPair"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>importKeyPair(publicKey: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>, privateKey: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="103"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:103</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Add a key pair to keyring.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>publicKey</td>
                                    <td>
                                                <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                    <td>
                                        <ul>
<li>The public key to be added to the keyring.</li>
</ul>

                                    </td>
                                </tr>
                                <tr>
                                    <td>privateKey</td>
                                    <td>
                                                <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                    <td>
                                        <ul>
<li>The private key to be added to the keyring.</li>
</ul>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Promise&lt;void&gt;</code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="importPrivateKey"></a>
                    <span class="name">
                        <b>
                            importPrivateKey
                        </b>
                        <a href="#importPrivateKey"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>importPrivateKey(privateKey: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="110"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:110</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Add private key to keyring.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>privateKey</td>
                                    <td>
                                                <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                    <td>
                                        <ul>
<li>The private key to be added to the keyring.</li>
</ul>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Promise&lt;void&gt;</code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="importPublicKey"></a>
                    <span class="name">
                        <b>
                            importPublicKey
                        </b>
                        <a href="#importPublicKey"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>importPublicKey(publicKey: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="117"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:117</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Add public key to keyring.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>publicKey</td>
                                    <td>
                                                <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                    <td>
                                        <ul>
<li>The public key to be added to the keyring.</li>
</ul>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Promise&lt;void&gt;</code>

                    </div>
                    <div class="io-description">
                        
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="isEncryptedPrivateKey"></a>
                    <span class="name">
                        <b>
                            isEncryptedPrivateKey
                        </b>
                        <a href="#isEncryptedPrivateKey"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>isEncryptedPrivateKey(privateKey: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="124"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:124</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Verify that a private key is encrypted.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>privateKey</td>
                                    <td>
                                                <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                    <td>
                                        <ul>
<li>The private key to verify.</li>
</ul>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Promise&lt;boolean&gt;</code>

                    </div>
                    <div class="io-description">
                        <p>true - If private key is encrypted.</p>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="isValidKey"></a>
                    <span class="name">
                        <b>
                            isValidKey
                        </b>
                        <a href="#isValidKey"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>isValidKey(key: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="131"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:131</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Test if the input is a valid key.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>key</td>
                                    <td>
                                                <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                    <td>
                                        <ul>
<li>The input to be validated.</li>
</ul>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Promise&lt;boolean&gt;</code>

                    </div>
                    <div class="io-description">
                        <p>true - If the input is a valid key.</p>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="loadKeyring"></a>
                    <span class="name">
                        <b>
                            loadKeyring
                        </b>
                        <a href="#loadKeyring"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>loadKeyring()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="136"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:136</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Instantiate the keyring in the keystore.</p>
</div>

                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="removeKeysForId"></a>
                    <span class="name">
                        <b>
                            removeKeysForId
                        </b>
                        <a href="#removeKeysForId"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>removeKeysForId(keyId: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="142"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:142</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Remove a public key from the keyring using it&#39;s keyId.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>keyId</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                    <td>
                                        <ul>
<li>The keyId of the keys to be removed from the keyring.</li>
</ul>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Array&lt;any&gt;</code>

                    </div>
                    <div class="io-description">
                        <p>An array of the removed keys.</p>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="removePublicKey"></a>
                    <span class="name">
                        <b>
                            removePublicKey
                        </b>
                        <a href="#removePublicKey"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>removePublicKey(publicKey: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="148"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:148</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Remove a public key from the keyring.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>publicKey</td>
                                    <td>
                                                <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                    <td>
                                        <ul>
<li>The public key to be removed from the keyring.</li>
</ul>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>

                    </div>
                    <div class="io-description">
                        <p>The removed public key.</p>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="removePublicKeyForId"></a>
                    <span class="name">
                        <b>
                            removePublicKeyForId
                        </b>
                        <a href="#removePublicKeyForId"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>removePublicKeyForId(keyId: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="154"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:154</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Remove a public key from the keyring using it&#39;s keyId.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>keyId</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                    <td>
                                        <ul>
<li>The keyId of the public key to be removed from the keyring.</li>
</ul>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>

                    </div>
                    <div class="io-description">
                        <p>The removed public key.</p>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="sign"></a>
                    <span class="name">
                        <b>
                            sign
                        </b>
                        <a href="#sign"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>sign(plainText: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="161"
                            class="link-to-prism">src/app/_pgp/pgp-key-store.ts:161</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Sign message using private key.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Description</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>plainText</td>
                                    <td>
                                                <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>


                                    <td>
                                        <ul>
<li>The message to be signed.</li>
</ul>

                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>    <code>Promise&lt;any&gt;</code>

                    </div>
                    <div class="io-description">
                        <p>The generated signature.</p>

                    </div>
                </td>
            </tr>
        </tbody>
    </table>
</section>

    </div>


    <div class="tab-pane fade  tab-source-code" id="c-source">
        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { KeyStore } from &#x27;cic-client-meta&#x27;;
// TODO should we put this on the mutable key store object
import * as openpgp from &#x27;openpgp&#x27;;

/** An openpgp Keyring instance. */
const keyring &#x3D; new openpgp.Keyring();

/**
 * Mutable Key store interface.
 *
 * @extends KeyStore
 */
interface MutableKeyStore extends KeyStore {
  /** Remove all keys from the keyring. */
  clearKeysInKeyring(): void;
  /**
   * Get all the encryption keys.
   * @returns An array of encryption keys.
   * @remarks
   * Current implementation doesn&#x27;t include encryption keys.
   * This is included to appease the implemented Keystore interface.
   */
  getEncryptKeys(): Array&lt;any&gt;;
  /**
   * Get the first private key&#x27;s fingerprint.
   * @returns The first private key&#x27;s fingerprint.
   */
  getFingerprint(): string;
  /**
   * Get a key&#x27;s keyId.
   * @param key - The key to fetch the keyId from.
   * @returns The key&#x27;s keyId.
   */
  getKeyId(key: any): string;
  /**
   * Get keys from the keyring using their keyId.
   * @param keyId - The keyId of the keys to be fetched from the keyring.
   * @returns An array of the keys with that keyId.
   */
  getKeysForId(keyId: string): Array&lt;any&gt;;
  /**
   * Get the first private key.
   * @returns The first private key.
   */
  getPrivateKey(): any;
  /**
   * Get a private key from the keyring using it&#x27;s keyId.
   * @param keyId - The keyId of the private key to be fetched from the keyring.
   * @returns The private key with that keyId.
   */
  getPrivateKeyForId(keyId: string): any;
  /**
   * Get the first private key&#x27;s keyID.
   * @returns The first private key&#x27;s keyId.
   */
  getPrivateKeyId(): string;
  /**
   * Get all private keys.
   * @returns An array of all private keys.
   */
  getPrivateKeys(): Array&lt;any&gt;;
  /**
   * Get a public key from the keyring using it&#x27;s keyId.
   * @param keyId - The keyId of the public key to be fetched from the keyring.
   * @returns The public key with that keyId.
   */
  getPublicKeyForId(keyId: string): any;
  /**
   * Get a public key from the keyring using it&#x27;s subkeyId.
   * @param subkeyId - The subkeyId of the public key to be fetched from the keyring.
   * @returns The public key with that subkeyId.
   */
  getPublicKeyForSubkeyId(subkeyId: string): any;
  /**
   * Get all the public keys.
   * @returns An array of public keys.
   */
  getPublicKeys(): Array&lt;any&gt;;
  /**
   * Get public keys from the keyring using their address.
   * @param address - The address of the public keys to be fetched from the keyring.
   * @returns An array of the public keys with that address.
   */
  getPublicKeysForAddress(address: string): Array&lt;any&gt;;
  /**
   * Get all the trusted active keys.
   * @returns An array of trusted active keys.
   */
  getTrustedActiveKeys(): Array&lt;any&gt;;
  /**
   * Get all the trusted keys.
   * @returns An array of trusted keys.
   */
  getTrustedKeys(): Array&lt;any&gt;;
  /**
   * Add a key pair to keyring.
   * @async
   * @param publicKey - The public key to be added to the keyring.
   * @param privateKey - The private key to be added to the keyring.
   * @throws Error
   */
  importKeyPair(publicKey: any, privateKey: any): Promise&lt;void&gt;;
  /**
   * Add private key to keyring.
   * @async
   * @param privateKey - The private key to be added to the keyring.
   * @throws Error
   */
  importPrivateKey(privateKey: any): Promise&lt;void&gt;;
  /**
   * Add public key to keyring.
   * @async
   * @param publicKey - The public key to be added to the keyring.
   * @throws Error
   */
  importPublicKey(publicKey: any): Promise&lt;void&gt;;
  /**
   * Verify that a private key is encrypted.
   * @async
   * @param privateKey - The private key to verify.
   * @returns true - If private key is encrypted.
   */
  isEncryptedPrivateKey(privateKey: any): Promise&lt;boolean&gt;;
  /**
   * Test if the input is a valid key.
   * @async
   * @param key - The input to be validated.
   * @returns true - If the input is a valid key.
   */
  isValidKey(key: any): Promise&lt;boolean&gt;;
  /**
   * Instantiate the keyring in the keystore.
   * @async
   */
  loadKeyring(): void;
  /**
   * Remove a public key from the keyring using it&#x27;s keyId.
   * @param keyId - The keyId of the keys to be removed from the keyring.
   * @returns An array of the removed keys.
   */
  removeKeysForId(keyId: string): Array&lt;any&gt;;
  /**
   * Remove a public key from the keyring.
   * @param publicKey - The public key to be removed from the keyring.
   * @returns The removed public key.
   */
  removePublicKey(publicKey: any): any;
  /**
   * Remove a public key from the keyring using it&#x27;s keyId.
   * @param keyId - The keyId of the public key to be removed from the keyring.
   * @returns The removed public key.
   */
  removePublicKeyForId(keyId: string): any;
  /**
   * Sign message using private key.
   * @async
   * @param plainText - The message to be signed.
   * @returns The generated signature.
   */
  sign(plainText: string): Promise&lt;any&gt;;
}

/** Provides a keyring for pgp keys. */
class MutablePgpKeyStore implements MutableKeyStore {
  /** Remove all keys from the keyring. */
  clearKeysInKeyring(): void {
    keyring.clear();
  }

  /**
   * Get all the encryption keys.
   * @returns An array of encryption keys.
   * @remarks
   * Current implementation doesn&#x27;t include encryption keys.
   * This is included to appease the implemented Keystore interface.
   */
  getEncryptKeys(): Array&lt;any&gt; {
    return [];
  }

  /**
   * Get the first private key&#x27;s fingerprint.
   * @returns The first private key&#x27;s fingerprint.
   */
  getFingerprint(): string {
    // TODO Handle multiple keys
    return (
      keyring.privateKeys &amp;&amp;
      keyring.privateKeys.keys[0] &amp;&amp;
      keyring.privateKeys.keys[0].keyPacket &amp;&amp;
      keyring.privateKeys.keys[0].keyPacket.fingerprint
    );
  }

  /**
   * Get a key&#x27;s keyId.
   * @param key - The key to fetch the keyId from.
   * @returns The key&#x27;s keyId.
   */
  getKeyId(key: any): string {
    return key.getKeyId().toHex();
  }

  /**
   * Get keys from the keyring using their keyId.
   * @param keyId - The keyId of the keys to be fetched from the keyring.
   * @returns An array of the keys with that keyId.
   */
  getKeysForId(keyId: string): Array&lt;any&gt; {
    return keyring.getKeysForId(keyId);
  }

  /**
   * Get the first private key.
   * @returns The first private key.
   */
  getPrivateKey(): any {
    return keyring.privateKeys &amp;&amp; keyring.privateKeys.keys[0];
  }

  /**
   * Get a private key from the keyring using it&#x27;s keyId.
   * @param keyId - The keyId of the private key to be fetched from the keyring.
   * @returns The private key with that keyId.
   */
  getPrivateKeyForId(keyId): any {
    return keyring.privateKeys &amp;&amp; keyring.privateKeys.getForId(keyId);
  }

  /**
   * Get the first private key&#x27;s keyID.
   * @returns The first private key&#x27;s keyId.
   */
  getPrivateKeyId(): string {
    // TODO is there a library that comes with angular for doing this?
    return (
      keyring.privateKeys &amp;&amp;
      keyring.privateKeys.keys[0] &amp;&amp;
      keyring.privateKeys.keys[0].getKeyId().toHex()
    );
  }

  /**
   * Get all private keys.
   * @returns An array of all private keys.
   */
  getPrivateKeys(): Array&lt;any&gt; {
    return keyring.privateKeys &amp;&amp; keyring.privateKeys.keys;
  }

  /**
   * Get a public key from the keyring using it&#x27;s keyId.
   * @param keyId - The keyId of the public key to be fetched from the keyring.
   * @returns The public key with that keyId.
   */
  getPublicKeyForId(keyId): any {
    return keyring.publicKeys &amp;&amp; keyring.publicKeys.getForId(keyId);
  }

  /**
   * Get a public key from the keyring using it&#x27;s subkeyId.
   * @param subkeyId - The subkeyId of the public key to be fetched from the keyring.
   * @returns The public key with that subkeyId.
   */
  getPublicKeyForSubkeyId(subkeyId): any {
    return keyring.publicKeys &amp;&amp; keyring.publicKeys.getForId(subkeyId, true);
  }

  /**
   * Get all the public keys.
   * @returns An array of public keys.
   */
  getPublicKeys(): Array&lt;any&gt; {
    return keyring.publicKeys &amp;&amp; keyring.publicKeys.keys;
  }

  /**
   * Get public keys from the keyring using their address.
   * @param address - The address of the public keys to be fetched from the keyring.
   * @returns An array of the public keys with that address.
   */
  getPublicKeysForAddress(address): Array&lt;any&gt; {
    return keyring.publicKeys &amp;&amp; keyring.publicKeys.getForAddress(address);
  }

  /**
   * Get all the trusted active keys.
   * @returns An array of trusted active keys.
   */
  getTrustedActiveKeys(): Array&lt;any&gt; {
    return keyring.publicKeys &amp;&amp; keyring.publicKeys.keys;
  }

  /**
   * Get all the trusted keys.
   * @returns An array of trusted keys.
   */
  getTrustedKeys(): Array&lt;any&gt; {
    return keyring.publicKeys &amp;&amp; keyring.publicKeys.keys;
  }

  /**
   * Add a key pair to keyring.
   * @async
   * @param publicKey - The public key to be added to the keyring.
   * @param privateKey - The private key to be added to the keyring.
   * @throws Error
   */
  async importKeyPair(publicKey: any, privateKey: any): Promise&lt;void&gt; {
    try {
      await keyring.publicKeys.importKey(publicKey);
      await keyring.privateKeys.importKey(privateKey);
    } catch (error) {
      throw error;
    }
  }

  /**
   * Add private key to keyring.
   * @async
   * @param privateKey - The private key to be added to the keyring.
   * @throws Error
   */
  async importPrivateKey(privateKey: any): Promise&lt;void&gt; {
    try {
      await keyring.privateKeys.importKey(privateKey);
    } catch (error) {
      throw error;
    }
  }

  /**
   * Add public key to keyring.
   * @async
   * @param publicKey - The public key to be added to the keyring.
   * @throws Error
   */
  async importPublicKey(publicKey: any): Promise&lt;void&gt; {
    try {
      await keyring.publicKeys.importKey(publicKey);
    } catch (error) {
      throw error;
    }
  }

  /**
   * Verify that a private key is encrypted.
   * @async
   * @param privateKey - The private key to verify.
   * @returns true - If private key is encrypted.
   */
  async isEncryptedPrivateKey(privateKey: any): Promise&lt;boolean&gt; {
    const imported &#x3D; await openpgp.key.readArmored(privateKey);
    for (const key of imported.keys) {
      if (key.isDecrypted()) {
        return false;
      }
    }
    return true;
  }

  /**
   * Test if the input is a valid key.
   * @async
   * @param key - The input to be validated.
   * @returns true - If the input is a valid key.
   */
  async isValidKey(key): Promise&lt;boolean&gt; {
    // There is supposed to be an openpgp.readKey() method but I can&#x27;t find it?
    const testKey &#x3D; await openpgp.key.readArmored(key);
    return !testKey.err;
  }

  /**
   * Instantiate the keyring in the keystore.
   * @async
   */
  async loadKeyring(): Promise&lt;void&gt; {
    await keyring.load();
    await keyring.store();
  }

  /**
   * Remove a public key from the keyring using it&#x27;s keyId.
   * @param keyId - The keyId of the keys to be removed from the keyring.
   * @returns An array of the removed keys.
   */
  removeKeysForId(keyId): Array&lt;any&gt; {
    return keyring.removeKeysForId(keyId);
  }

  /**
   * Remove a public key from the keyring.
   * @param publicKey - The public key to be removed from the keyring.
   * @returns The removed public key.
   */
  removePublicKey(publicKey: any): any {
    const keyId &#x3D; publicKey.getKeyId().toHex();
    return keyring.publicKeys &amp;&amp; keyring.publicKeys.removeForId(keyId);
  }

  /**
   * Remove a public key from the keyring using it&#x27;s keyId.
   * @param keyId - The keyId of the public key to be removed from the keyring.
   * @returns The removed public key.
   */
  removePublicKeyForId(keyId): any {
    return keyring.publicKeys &amp;&amp; keyring.publicKeys.removeForId(keyId);
  }

  /**
   * Sign message using private key.
   * @async
   * @param plainText - The message to be signed.
   * @returns The generated signature.
   */
  async sign(plainText): Promise&lt;any&gt; {
    const privateKey &#x3D; this.getPrivateKey();
    if (!privateKey.isDecrypted()) {
      const password &#x3D; window.prompt(&#x27;password&#x27;);
      await privateKey.decrypt(password);
    }
    const opts &#x3D; {
      message: openpgp.message.fromText(plainText),
      privateKeys: [privateKey],
      detached: true,
    };
    const signatureObject &#x3D; await openpgp.sign(opts);
    return signatureObject.signature;
  }
}

/** @exports */
export { MutableKeyStore, MutablePgpKeyStore };
</code></pre>
    </div>
</div>


                   




                   </div><div class="search-results">
    <div class="has-results">
        <h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
        <ul class="search-results-list"></ul>
    </div>
    <div class="no-results">
        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
    </div>
</div>
</div>
               <!-- END CONTENT -->
           </div>
       </div>

       <script>
            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
            var COMPODOC_CURRENT_PAGE_CONTEXT = 'interface';
            var COMPODOC_CURRENT_PAGE_URL = 'MutableKeyStore.html';
            var MAX_SEARCH_RESULTS = 15;
       </script>

       <script src="../js/libs/custom-elements.min.js"></script>
       <script src="../js/libs/lit-html.js"></script>
       <!-- Required to polyfill modern browsers as code is ES5 for IE... -->
       <script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
       <script src="../js/menu-wc.js" defer></script>

       <script src="../js/libs/bootstrap-native.js"></script>

       <script src="../js/libs/es6-shim.min.js"></script>
       <script src="../js/libs/EventDispatcher.js"></script>
       <script src="../js/libs/promise.min.js"></script>
       <script src="../js/libs/zepto.min.js"></script>

       <script src="../js/compodoc.js"></script>

       <script src="../js/tabs.js"></script>
       <script src="../js/menu.js"></script>
       <script src="../js/libs/clipboard.min.js"></script>
       <script src="../js/libs/prism.js"></script>
       <script src="../js/sourceCode.js"></script>
          <script src="../js/search/search.js"></script>
          <script src="../js/search/lunr.min.js"></script>
          <script src="../js/search/search-lunr.js"></script>
          <script src="../js/search/search_index.js"></script>
       <script src="../js/lazy-load-graphs.js"></script>


    </body>
</html>