cic-staff-client/docs/compodoc/interfaces/MutableKeyStore.html
2021-09-02 23:48:41 +00:00

2385 lines
81 KiB
HTML

<!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">
<link rel="stylesheet" href="../styles/dark.css" media="(prefers-color-scheme: dark)">
</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">
<span ><b>clearKeysInKeyring</b></span>
<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">
<span ><b>getEncryptKeys</b></span>
<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.
Current implementation doesn&#39;t include encryption keys.
This is included to appease the implemented Keystore interface.</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">
<span ><b>getFingerprint</b></span>
<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">
<span ><b>getKeyId</b></span>
<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">
<span ><b>getKeysForId</b></span>
<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">
<span ><b>getPrivateKey</b></span>
<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">
<span ><b>getPrivateKeyForId</b></span>
<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">
<span ><b>getPrivateKeyId</b></span>
<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">
<span ><b>getPrivateKeys</b></span>
<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">
<span ><b>getPublicKeyForId</b></span>
<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">
<span ><b>getPublicKeyForSubkeyId</b></span>
<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">
<span ><b>getPublicKeys</b></span>
<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">
<span ><b>getPublicKeysForAddress</b></span>
<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">
<span ><b>getTrustedActiveKeys</b></span>
<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">
<span ><b>getTrustedKeys</b></span>
<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">
<span ><b>importKeyPair</b></span>
<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">
<span ><b>importPrivateKey</b></span>
<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">
<span ><b>importPublicKey</b></span>
<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">
<span ><b>isEncryptedPrivateKey</b></span>
<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">
<span ><b>isValidKey</b></span>
<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">
<span ><b>loadKeyring</b></span>
<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">
<span ><b>removeKeysForId</b></span>
<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">
<span ><b>removePublicKey</b></span>
<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">
<span ><b>removePublicKeyForId</b></span>
<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">
<span ><b>sign</b></span>
<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>
<script type="module" src="../js/menu-wc.js" defer></script>
<script nomodule src="../js/menu-wc_es5.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>