cic-staff-client/docs/compodoc/classes/MutablePgpKeyStore.html

2357 lines
77 KiB
HTML
Raw Normal View History

2021-05-10 20:56:20 +02:00
<!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 class">
<div class="content-data">
<ol class="breadcrumb">
<li>Classes</li>
<li>MutablePgpKeyStore</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>
2021-05-12 12:21:18 +02:00
<p class="comment">
<h3>Description</h3>
</p>
<p class="comment">
<p>Provides a keyring for pgp keys. </p>
</p>
2021-05-10 20:56:20 +02:00
<p class="comment">
<h3>Implements</h3>
</p>
<p class="comment">
<code><a href="../interfaces/MutableKeyStore.html" target="_self" >MutableKeyStore</a></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>
<span class="modifier">Async</span>
<a href="#importKeyPair">importKeyPair</a>
</li>
<li>
<span class="modifier">Async</span>
<a href="#importPrivateKey">importPrivateKey</a>
</li>
<li>
2021-05-12 12:21:18 +02:00
<span class="modifier">Async</span>
2021-05-10 20:56:20 +02:00
<a href="#importPublicKey">importPublicKey</a>
</li>
<li>
<span class="modifier">Async</span>
<a href="#isEncryptedPrivateKey">isEncryptedPrivateKey</a>
</li>
<li>
<span class="modifier">Async</span>
<a href="#isValidKey">isValidKey</a>
</li>
<li>
<span class="modifier">Async</span>
<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>
<span class="modifier">Async</span>
<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="167"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:167</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Remove all keys from the keyring. </p>
</div>
2021-05-10 20:56:20 +02:00
<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="178"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:178</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Get all the encryption keys.</p>
</div>
2021-05-10 20:56:20 +02:00
2021-05-12 12:21:18 +02:00
<div>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Returns : </b> <code>Array&lt;any&gt;</code>
</div>
2021-05-12 12:21:18 +02:00
<div class="io-description">
<p>An array of encryption keys.</p>
</div>
2021-05-10 20:56:20 +02:00
</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="186"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:186</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Get the first private key&#39;s fingerprint.</p>
</div>
2021-05-10 20:56:20 +02:00
2021-05-12 12:21:18 +02:00
<div>
</div>
2021-05-10 20:56:20 +02:00
<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>
2021-05-12 12:21:18 +02:00
<div class="io-description">
<p>The first private key&#39;s fingerprint.</p>
</div>
2021-05-10 20:56:20 +02:00
</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="201"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:201</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Get a key&#39;s keyId.</p>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
2021-05-12 12:21:18 +02:00
<td>Description</td>
2021-05-10 20:56:20 +02:00
</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>
2021-05-12 12:21:18 +02:00
<td>
<ul>
<li>The key to fetch the keyId from.</li>
</ul>
</td>
2021-05-10 20:56:20 +02:00
</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">
2021-05-12 12:21:18 +02:00
<p>The key&#39;s keyId.</p>
2021-05-10 20:56:20 +02:00
</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="210"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:210</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Get keys from the keyring using their keyId.</p>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
2021-05-12 12:21:18 +02:00
<td>Description</td>
2021-05-10 20:56:20 +02:00
</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>
2021-05-12 12:21:18 +02:00
<td>
<ul>
<li>The keyId of the keys to be fetched from the keyring.</li>
</ul>
</td>
2021-05-10 20:56:20 +02:00
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Array&lt;any&gt;</code>
</div>
<div class="io-description">
2021-05-12 12:21:18 +02:00
<p>An array of the keys with that keyId.</p>
2021-05-10 20:56:20 +02:00
</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="218"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:218</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Get the first private key.</p>
</div>
2021-05-10 20:56:20 +02:00
2021-05-12 12:21:18 +02:00
<div>
</div>
2021-05-10 20:56:20 +02:00
<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>
2021-05-12 12:21:18 +02:00
<div class="io-description">
<p>The first private key.</p>
</div>
2021-05-10 20:56:20 +02:00
</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)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="227"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:227</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Get a private key from the keyring using it&#39;s keyId.</p>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
2021-05-12 12:21:18 +02:00
<td>Description</td>
2021-05-10 20:56:20 +02:00
</tr>
</thead>
<tbody>
<tr>
<td>keyId</td>
<td>
No
</td>
2021-05-12 12:21:18 +02:00
<td>
<ul>
<li>The keyId of the private key to be fetched from the keyring.</li>
</ul>
</td>
2021-05-10 20:56:20 +02:00
</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">
2021-05-12 12:21:18 +02:00
<p>The private key with that keyId.</p>
2021-05-10 20:56:20 +02:00
</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="235"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:235</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Get the first private key&#39;s keyID.</p>
</div>
2021-05-10 20:56:20 +02:00
2021-05-12 12:21:18 +02:00
<div>
</div>
2021-05-10 20:56:20 +02:00
<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>
2021-05-12 12:21:18 +02:00
<div class="io-description">
<p>The first private key&#39;s keyId.</p>
</div>
2021-05-10 20:56:20 +02:00
</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="248"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:248</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Get all private keys.</p>
</div>
2021-05-10 20:56:20 +02:00
2021-05-12 12:21:18 +02:00
<div>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Returns : </b> <code>Array&lt;any&gt;</code>
</div>
2021-05-12 12:21:18 +02:00
<div class="io-description">
<p>An array of all private keys.</p>
</div>
2021-05-10 20:56:20 +02:00
</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)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="257"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:257</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Get a public key from the keyring using it&#39;s keyId.</p>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
2021-05-12 12:21:18 +02:00
<td>Description</td>
2021-05-10 20:56:20 +02:00
</tr>
</thead>
<tbody>
<tr>
<td>keyId</td>
<td>
No
</td>
2021-05-12 12:21:18 +02:00
<td>
<ul>
<li>The keyId of the public key to be fetched from the keyring.</li>
</ul>
</td>
2021-05-10 20:56:20 +02:00
</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">
2021-05-12 12:21:18 +02:00
<p>The public key with that keyId.</p>
2021-05-10 20:56:20 +02:00
</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)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="266"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:266</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Get a public key from the keyring using it&#39;s subkeyId.</p>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
2021-05-12 12:21:18 +02:00
<td>Description</td>
2021-05-10 20:56:20 +02:00
</tr>
</thead>
<tbody>
<tr>
<td>subkeyId</td>
<td>
No
</td>
2021-05-12 12:21:18 +02:00
<td>
<ul>
<li>The subkeyId of the public key to be fetched from the keyring.</li>
</ul>
</td>
2021-05-10 20:56:20 +02:00
</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">
2021-05-12 12:21:18 +02:00
<p>The public key with that subkeyId.</p>
2021-05-10 20:56:20 +02:00
</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="274"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:274</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Get all the public keys.</p>
</div>
2021-05-10 20:56:20 +02:00
2021-05-12 12:21:18 +02:00
<div>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Returns : </b> <code>Array&lt;any&gt;</code>
</div>
2021-05-12 12:21:18 +02:00
<div class="io-description">
<p>An array of public keys.</p>
</div>
2021-05-10 20:56:20 +02:00
</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)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="283"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:283</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Get public keys from the keyring using their address.</p>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
2021-05-12 12:21:18 +02:00
<td>Description</td>
2021-05-10 20:56:20 +02:00
</tr>
</thead>
<tbody>
<tr>
<td>address</td>
<td>
No
</td>
2021-05-12 12:21:18 +02:00
<td>
<ul>
<li>The address of the public keys to be fetched from the keyring.</li>
</ul>
</td>
2021-05-10 20:56:20 +02:00
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Array&lt;any&gt;</code>
</div>
<div class="io-description">
2021-05-12 12:21:18 +02:00
<p>An array of the public keys with that address.</p>
2021-05-10 20:56:20 +02:00
</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="291"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:291</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Get all the trusted active keys.</p>
</div>
2021-05-10 20:56:20 +02:00
2021-05-12 12:21:18 +02:00
<div>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Returns : </b> <code>Array&lt;any&gt;</code>
</div>
2021-05-12 12:21:18 +02:00
<div class="io-description">
<p>An array of trusted active keys.</p>
</div>
2021-05-10 20:56:20 +02:00
</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="299"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:299</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Get all the trusted keys.</p>
</div>
2021-05-10 20:56:20 +02:00
2021-05-12 12:21:18 +02:00
<div>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Returns : </b> <code>Array&lt;any&gt;</code>
</div>
2021-05-12 12:21:18 +02:00
<div class="io-description">
<p>An array of trusted keys.</p>
</div>
2021-05-10 20:56:20 +02:00
</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>
<span class="modifier">Async</span>
importKeyPair
</b>
<a href="#importKeyPair"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<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="310"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:310</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Add a key pair to keyring.</p>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
2021-05-12 12:21:18 +02:00
<td>Description</td>
2021-05-10 20:56:20 +02:00
</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>
2021-05-12 12:21:18 +02:00
<td>
<ul>
<li>The public key to be added to the keyring.</li>
</ul>
</td>
2021-05-10 20:56:20 +02:00
</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>
2021-05-12 12:21:18 +02:00
<td>
<ul>
<li>The private key to be added to the keyring.</li>
</ul>
</td>
2021-05-10 20:56:20 +02:00
</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>
<span class="modifier">Async</span>
importPrivateKey
</b>
<a href="#importPrivateKey"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<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="325"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:325</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Add private key to keyring.</p>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
2021-05-12 12:21:18 +02:00
<td>Description</td>
2021-05-10 20:56:20 +02:00
</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>
2021-05-12 12:21:18 +02:00
<td>
<ul>
<li>The private key to be added to the keyring.</li>
</ul>
</td>
2021-05-10 20:56:20 +02:00
</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>
2021-05-12 12:21:18 +02:00
<span class="modifier">Async</span>
2021-05-10 20:56:20 +02:00
importPublicKey
</b>
<a href="#importPublicKey"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<span class="modifier-icon icon ion-ios-reset"></span>
<code>importPublicKey(publicKey: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="339"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:339</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Add public key to keyring.</p>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
2021-05-12 12:21:18 +02:00
<td>Description</td>
2021-05-10 20:56:20 +02:00
</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>
2021-05-12 12:21:18 +02:00
<td>
<ul>
<li>The public key to be added to the keyring.</li>
</ul>
</td>
2021-05-10 20:56:20 +02:00
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
2021-05-12 12:21:18 +02:00
<b>Returns : </b> <code>Promise&lt;void&gt;</code>
2021-05-10 20:56:20 +02:00
</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>
<span class="modifier">Async</span>
isEncryptedPrivateKey
</b>
<a href="#isEncryptedPrivateKey"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<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="353"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:353</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Verify that a private key is encrypted.</p>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
2021-05-12 12:21:18 +02:00
<td>Description</td>
2021-05-10 20:56:20 +02:00
</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>
2021-05-12 12:21:18 +02:00
<td>
<ul>
<li>The private key to verify.</li>
</ul>
</td>
2021-05-10 20:56:20 +02:00
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;boolean&gt;</code>
</div>
<div class="io-description">
2021-05-12 12:21:18 +02:00
<p>true - If private key is encrypted.</p>
2021-05-10 20:56:20 +02:00
</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>
<span class="modifier">Async</span>
isValidKey
</b>
<a href="#isValidKey"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>isValidKey(key)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="369"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:369</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Test if the input is a valid key.</p>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
2021-05-12 12:21:18 +02:00
<td>Description</td>
2021-05-10 20:56:20 +02:00
</tr>
</thead>
<tbody>
<tr>
<td>key</td>
<td>
No
</td>
2021-05-12 12:21:18 +02:00
<td>
<ul>
<li>The input to be validated.</li>
</ul>
</td>
2021-05-10 20:56:20 +02:00
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;boolean&gt;</code>
</div>
<div class="io-description">
2021-05-12 12:21:18 +02:00
<p>true - If the input is a valid key.</p>
2021-05-10 20:56:20 +02:00
</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>
<span class="modifier">Async</span>
loadKeyring
</b>
<a href="#loadKeyring"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>loadKeyring()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="379"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:379</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Instantiate the keyring in the keystore.</p>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;void&gt;</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)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="389"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:389</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Remove a public key from the keyring using it&#39;s keyId.</p>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
2021-05-12 12:21:18 +02:00
<td>Description</td>
2021-05-10 20:56:20 +02:00
</tr>
</thead>
<tbody>
<tr>
<td>keyId</td>
<td>
No
</td>
2021-05-12 12:21:18 +02:00
<td>
<ul>
<li>The keyId of the keys to be removed from the keyring.</li>
</ul>
</td>
2021-05-10 20:56:20 +02:00
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Array&lt;any&gt;</code>
</div>
<div class="io-description">
2021-05-12 12:21:18 +02:00
<p>An array of the removed keys.</p>
2021-05-10 20:56:20 +02:00
</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="398"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:398</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Remove a public key from the keyring.</p>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
2021-05-12 12:21:18 +02:00
<td>Description</td>
2021-05-10 20:56:20 +02:00
</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>
2021-05-12 12:21:18 +02:00
<td>
<ul>
<li>The public key to be removed from the keyring.</li>
</ul>
</td>
2021-05-10 20:56:20 +02:00
</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">
2021-05-12 12:21:18 +02:00
<p>The removed public key.</p>
2021-05-10 20:56:20 +02:00
</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)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="408"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:408</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Remove a public key from the keyring using it&#39;s keyId.</p>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
2021-05-12 12:21:18 +02:00
<td>Description</td>
2021-05-10 20:56:20 +02:00
</tr>
</thead>
<tbody>
<tr>
<td>keyId</td>
<td>
No
</td>
2021-05-12 12:21:18 +02:00
<td>
<ul>
<li>The keyId of the public key to be removed from the keyring.</li>
</ul>
</td>
2021-05-10 20:56:20 +02:00
</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">
2021-05-12 12:21:18 +02:00
<p>The removed public key.</p>
2021-05-10 20:56:20 +02:00
</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>
<span class="modifier">Async</span>
sign
</b>
<a href="#sign"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>sign(plainText)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-line">Defined in <a href="" data-line="418"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:418</a></div>
2021-05-10 20:56:20 +02:00
</td>
</tr>
<tr>
<td class="col-md-4">
2021-05-12 12:21:18 +02:00
<div class="io-description"><p>Sign message using private key.</p>
</div>
2021-05-10 20:56:20 +02:00
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
2021-05-12 12:21:18 +02:00
<td>Description</td>
2021-05-10 20:56:20 +02:00
</tr>
</thead>
<tbody>
<tr>
<td>plainText</td>
<td>
No
</td>
2021-05-12 12:21:18 +02:00
<td>
<ul>
<li>The message to be signed.</li>
</ul>
</td>
2021-05-10 20:56:20 +02:00
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;any&gt;</code>
</div>
<div class="io-description">
2021-05-12 12:21:18 +02:00
<p>The generated signature.</p>
2021-05-10 20:56:20 +02:00
</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;;
2021-05-12 12:21:18 +02:00
/** An openpgp Keyring instance. */
2021-05-10 20:56:20 +02:00
const keyring &#x3D; new openpgp.Keyring();
2021-05-12 08:16:38 +02:00
/**
2021-05-12 12:21:18 +02:00
* Mutable Key store interface.
*
* @extends KeyStore
2021-05-12 08:16:38 +02:00
*/
2021-05-10 20:56:20 +02:00
interface MutableKeyStore extends KeyStore {
/** Remove all keys from the keyring. */
clearKeysInKeyring(): void;
2021-05-12 12:21:18 +02:00
/**
* 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.
*/
2021-05-10 20:56:20 +02:00
getEncryptKeys(): Array&lt;any&gt;;
2021-05-12 12:21:18 +02:00
/**
* Get the first private key&#x27;s fingerprint.
* @returns The first private key&#x27;s fingerprint.
*/
2021-05-10 20:56:20 +02:00
getFingerprint(): string;
2021-05-12 12:21:18 +02:00
/**
* Get a key&#x27;s keyId.
* @param key - The key to fetch the keyId from.
* @returns The key&#x27;s keyId.
*/
2021-05-10 20:56:20 +02:00
getKeyId(key: any): string;
2021-05-12 12:21:18 +02:00
/**
* 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.
*/
2021-05-10 20:56:20 +02:00
getKeysForId(keyId: string): Array&lt;any&gt;;
2021-05-12 12:21:18 +02:00
/**
* Get the first private key.
* @returns The first private key.
2021-05-12 12:21:18 +02:00
*/
getPrivateKey(): any;
2021-05-12 12:21:18 +02:00
/**
* 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.
*/
2021-05-10 20:56:20 +02:00
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;
2021-05-12 12:21:18 +02:00
/**
* 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.
*/
2021-05-10 20:56:20 +02:00
getPublicKeyForSubkeyId(subkeyId: string): any;
/**
* Get all the public keys.
* @returns An array of public keys.
*/
getPublicKeys(): Array&lt;any&gt;;
2021-05-12 12:21:18 +02:00
/**
* 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.
*/
2021-05-10 20:56:20 +02:00
getPublicKeysForAddress(address: string): Array&lt;any&gt;;
2021-05-12 12:21:18 +02:00
/**
* Get all the trusted active keys.
* @returns An array of trusted active keys.
2021-05-12 12:21:18 +02:00
*/
getTrustedActiveKeys(): Array&lt;any&gt;;
2021-05-12 12:21:18 +02:00
/**
* Get all the trusted keys.
* @returns An array of trusted keys.
2021-05-12 12:21:18 +02:00
*/
getTrustedKeys(): Array&lt;any&gt;;
2021-05-12 12:21:18 +02:00
/**
* 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;;
2021-05-12 12:21:18 +02:00
/**
* Add private key to keyring.
2021-05-12 12:21:18 +02:00
* @async
* @param privateKey - The private key to be added to the keyring.
2021-05-12 12:21:18 +02:00
* @throws Error
*/
importPrivateKey(privateKey: any): Promise&lt;void&gt;;
2021-05-12 12:21:18 +02:00
/**
* Add public key to keyring.
2021-05-12 12:21:18 +02:00
* @async
* @param publicKey - The public key to be added to the keyring.
2021-05-12 12:21:18 +02:00
* @throws Error
*/
importPublicKey(publicKey: any): Promise&lt;void&gt;;
2021-05-12 12:21:18 +02:00
/**
* Verify that a private key is encrypted.
* @async
* @param privateKey - The private key to verify.
* @returns true - If private key is encrypted.
2021-05-12 12:21:18 +02:00
*/
isEncryptedPrivateKey(privateKey: any): Promise&lt;boolean&gt;;
2021-05-12 12:21:18 +02:00
/**
* 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.
2021-05-12 12:21:18 +02:00
*/
isValidKey(key: any): Promise&lt;boolean&gt;;
2021-05-12 12:21:18 +02:00
/**
* Instantiate the keyring in the keystore.
* @async
2021-05-12 12:21:18 +02:00
*/
loadKeyring(): void;
2021-05-12 12:21:18 +02:00
/**
* 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.
2021-05-12 12:21:18 +02:00
*/
removeKeysForId(keyId: string): Array&lt;any&gt;;
2021-05-12 12:21:18 +02:00
/**
* Remove a public key from the keyring.
* @param publicKey - The public key to be removed from the keyring.
* @returns The removed public key.
2021-05-12 12:21:18 +02:00
*/
removePublicKey(publicKey: any): any;
2021-05-12 12:21:18 +02:00
/**
* 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.
2021-05-12 12:21:18 +02:00
*/
removePublicKeyForId(keyId: string): any;
2021-05-12 12:21:18 +02:00
/**
* Sign message using private key.
2021-05-12 12:21:18 +02:00
* @async
* @param plainText - The message to be signed.
* @returns The generated signature.
2021-05-12 12:21:18 +02:00
*/
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();
2021-05-10 20:56:20 +02:00
}
2021-05-12 12:21:18 +02:00
/**
* 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.
2021-05-12 12:21:18 +02:00
*/
getEncryptKeys(): Array&lt;any&gt; {
return [];
2021-05-10 20:56:20 +02:00
}
2021-05-12 12:21:18 +02:00
/**
* Get the first private key&#x27;s fingerprint.
* @returns The first private key&#x27;s fingerprint.
*/
2021-05-10 20:56:20 +02:00
getFingerprint(): string {
// TODO Handle multiple keys
2021-05-11 19:51:48 +02:00
return (
keyring.privateKeys &amp;&amp;
keyring.privateKeys.keys[0] &amp;&amp;
keyring.privateKeys.keys[0].keyPacket &amp;&amp;
keyring.privateKeys.keys[0].keyPacket.fingerprint
);
2021-05-10 20:56:20 +02:00
}
2021-05-12 12:21:18 +02:00
/**
* Get a key&#x27;s keyId.
* @param key - The key to fetch the keyId from.
* @returns The key&#x27;s keyId.
*/
2021-05-10 20:56:20 +02:00
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);
}
2021-05-12 12:21:18 +02:00
/**
* Get the first private key&#x27;s keyID.
* @returns The first private key&#x27;s keyId.
*/
2021-05-10 20:56:20 +02:00
getPrivateKeyId(): string {
// TODO is there a library that comes with angular for doing this?
2021-05-11 19:51:48 +02:00
return (
keyring.privateKeys &amp;&amp;
keyring.privateKeys.keys[0] &amp;&amp;
keyring.privateKeys.keys[0].getKeyId().toHex()
);
2021-05-10 20:56:20 +02:00
}
2021-05-12 12:21:18 +02:00
/**
* Get all private keys.
* @returns An array of all private keys.
2021-05-12 12:21:18 +02:00
*/
getPrivateKeys(): Array&lt;any&gt; {
return keyring.privateKeys &amp;&amp; keyring.privateKeys.keys;
2021-05-10 20:56:20 +02:00
}
2021-05-12 12:21:18 +02:00
/**
* 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.
*/
2021-05-10 20:56:20 +02:00
getPublicKeyForId(keyId): any {
2021-05-12 12:21:18 +02:00
return keyring.publicKeys &amp;&amp; keyring.publicKeys.getForId(keyId);
2021-05-10 20:56:20 +02:00
}
2021-05-12 12:21:18 +02:00
/**
* 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.
*/
2021-05-10 20:56:20 +02:00
getPublicKeyForSubkeyId(subkeyId): any {
2021-05-12 12:21:18 +02:00
return keyring.publicKeys &amp;&amp; keyring.publicKeys.getForId(subkeyId, true);
2021-05-10 20:56:20 +02:00
}
/**
* Get all the public keys.
* @returns An array of public keys.
*/
getPublicKeys(): Array&lt;any&gt; {
return keyring.publicKeys &amp;&amp; keyring.publicKeys.keys;
}
2021-05-12 12:21:18 +02:00
/**
* 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.
*/
2021-05-10 20:56:20 +02:00
getPublicKeysForAddress(address): Array&lt;any&gt; {
2021-05-12 12:21:18 +02:00
return keyring.publicKeys &amp;&amp; keyring.publicKeys.getForAddress(address);
2021-05-10 20:56:20 +02:00
}
2021-05-12 12:21:18 +02:00
/**
* Get all the trusted active keys.
* @returns An array of trusted active keys.
2021-05-12 12:21:18 +02:00
*/
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();
2021-05-10 20:56:20 +02:00
}
2021-05-12 12:21:18 +02:00
/**
* 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.
2021-05-12 12:21:18 +02:00
*/
removeKeysForId(keyId): Array&lt;any&gt; {
return keyring.removeKeysForId(keyId);
2021-05-10 20:56:20 +02:00
}
2021-05-12 12:21:18 +02:00
/**
* Remove a public key from the keyring.
* @param publicKey - The public key to be removed from the keyring.
* @returns The removed public key.
*/
2021-05-10 20:56:20 +02:00
removePublicKey(publicKey: any): any {
2021-05-11 19:51:48 +02:00
const keyId &#x3D; publicKey.getKeyId().toHex();
2021-05-12 12:21:18 +02:00
return keyring.publicKeys &amp;&amp; keyring.publicKeys.removeForId(keyId);
2021-05-10 20:56:20 +02:00
}
/**
* 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);
2021-05-10 20:56:20 +02:00
}
2021-05-12 12:21:18 +02:00
/**
* Sign message using private key.
* @async
* @param plainText - The message to be signed.
* @returns The generated signature.
*/
2021-05-10 20:56:20 +02:00
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;
}
}
2021-05-12 12:21:18 +02:00
/** @exports */
export { MutableKeyStore, MutablePgpKeyStore };
2021-05-10 20:56:20 +02:00
</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 = 'class';
var COMPODOC_CURRENT_PAGE_URL = 'MutablePgpKeyStore.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>