Format docs using linter and prettier.

This commit is contained in:
Spencer Ofwiti
2021-05-11 20:51:48 +03:00
parent 5228842e61
commit 208c448984
309 changed files with 11327 additions and 3307 deletions

View File

@@ -460,24 +460,34 @@
products: string[];
category?: string;
vcard: {
email: [{
value: string;
}];
fn: [{
value: string;
}];
n: [{
value: string[];
}];
tel: [{
meta: {
TYP: string[];
},
value: string;
}],
version: [{
value: string;
}];
email: [
{
value: string;
}
];
fn: [
{
value: string;
}
];
n: [
{
value: string[];
}
];
tel: [
{
meta: {
TYP: string[];
};
value: string;
}
];
version: [
{
value: string;
}
];
};
}
@@ -515,34 +525,38 @@ const defaultAccount: AccountDetails = {
},
products: [],
vcard: {
email: [{
value: '',
}],
fn: [{
value: 'Sarafu Contract',
}],
n: [{
value: ['Sarafu', 'Contract'],
}],
tel: [{
meta: {
TYP: [],
email: [
{
value: '',
},
value: '',
}],
version: [{
value: '3.0',
}],
],
fn: [
{
value: 'Sarafu Contract',
},
],
n: [
{
value: ['Sarafu', 'Contract'],
},
],
tel: [
{
meta: {
TYP: [],
},
value: '',
},
],
version: [
{
value: '3.0',
},
],
},
};
export {
AccountDetails,
Signature,
Meta,
MetaResponse,
defaultAccount
};
export { AccountDetails, Signature, Meta, MetaResponse, defaultAccount };
</code></pre>
</div>
</div>

View File

@@ -277,12 +277,7 @@ interface AreaType {
area: Array&lt;string&gt;;
}
export {
Action,
Category,
AreaName,
AreaType
};
export { Action, Category, AreaName, AreaType };
</code></pre>
</div>
</div>

View File

@@ -181,12 +181,7 @@ interface AreaType {
area: Array&lt;string&gt;;
}
export {
Action,
Category,
AreaName,
AreaType
};
export { Action, Category, AreaName, AreaType };
</code></pre>
</div>
</div>

View File

@@ -181,12 +181,7 @@ interface AreaType {
area: Array&lt;string&gt;;
}
export {
Action,
Category,
AreaName,
AreaType
};
export { Action, Category, AreaName, AreaType };
</code></pre>
</div>
</div>

View File

@@ -181,12 +181,7 @@ interface AreaType {
area: Array&lt;string&gt;;
}
export {
Action,
Category,
AreaName,
AreaType
};
export { Action, Category, AreaName, AreaType };
</code></pre>
</div>
</div>

View File

@@ -212,24 +212,34 @@
products: string[];
category?: string;
vcard: {
email: [{
value: string;
}];
fn: [{
value: string;
}];
n: [{
value: string[];
}];
tel: [{
meta: {
TYP: string[];
},
value: string;
}],
version: [{
value: string;
}];
email: [
{
value: string;
}
];
fn: [
{
value: string;
}
];
n: [
{
value: string[];
}
];
tel: [
{
meta: {
TYP: string[];
};
value: string;
}
];
version: [
{
value: string;
}
];
};
}
@@ -267,34 +277,38 @@ const defaultAccount: AccountDetails &#x3D; {
},
products: [],
vcard: {
email: [{
value: &#x27;&#x27;,
}],
fn: [{
value: &#x27;Sarafu Contract&#x27;,
}],
n: [{
value: [&#x27;Sarafu&#x27;, &#x27;Contract&#x27;],
}],
tel: [{
meta: {
TYP: [],
email: [
{
value: &#x27;&#x27;,
},
value: &#x27;&#x27;,
}],
version: [{
value: &#x27;3.0&#x27;,
}],
],
fn: [
{
value: &#x27;Sarafu Contract&#x27;,
},
],
n: [
{
value: [&#x27;Sarafu&#x27;, &#x27;Contract&#x27;],
},
],
tel: [
{
meta: {
TYP: [],
},
value: &#x27;&#x27;,
},
],
version: [
{
value: &#x27;3.0&#x27;,
},
],
},
};
export {
AccountDetails,
Signature,
Meta,
MetaResponse,
defaultAccount
};
export { AccountDetails, Signature, Meta, MetaResponse, defaultAccount };
</code></pre>
</div>
</div>

View File

@@ -180,24 +180,34 @@
products: string[];
category?: string;
vcard: {
email: [{
value: string;
}];
fn: [{
value: string;
}];
n: [{
value: string[];
}];
tel: [{
meta: {
TYP: string[];
},
value: string;
}],
version: [{
value: string;
}];
email: [
{
value: string;
}
];
fn: [
{
value: string;
}
];
n: [
{
value: string[];
}
];
tel: [
{
meta: {
TYP: string[];
};
value: string;
}
];
version: [
{
value: string;
}
];
};
}
@@ -235,34 +245,38 @@ const defaultAccount: AccountDetails &#x3D; {
},
products: [],
vcard: {
email: [{
value: &#x27;&#x27;,
}],
fn: [{
value: &#x27;Sarafu Contract&#x27;,
}],
n: [{
value: [&#x27;Sarafu&#x27;, &#x27;Contract&#x27;],
}],
tel: [{
meta: {
TYP: [],
email: [
{
value: &#x27;&#x27;,
},
value: &#x27;&#x27;,
}],
version: [{
value: &#x27;3.0&#x27;,
}],
],
fn: [
{
value: &#x27;Sarafu Contract&#x27;,
},
],
n: [
{
value: [&#x27;Sarafu&#x27;, &#x27;Contract&#x27;],
},
],
tel: [
{
meta: {
TYP: [],
},
value: &#x27;&#x27;,
},
],
version: [
{
value: &#x27;3.0&#x27;,
},
],
},
};
export {
AccountDetails,
Signature,
Meta,
MetaResponse,
defaultAccount
};
export { AccountDetails, Signature, Meta, MetaResponse, defaultAccount };
</code></pre>
</div>
</div>

View File

@@ -193,8 +193,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="33"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:33</a></div>
<div class="io-line">Defined in <a href="" data-line="30"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:30</a></div>
</td>
</tr>
@@ -232,8 +232,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="17"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:17</a></div>
<div class="io-line">Defined in <a href="" data-line="14"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:14</a></div>
</td>
</tr>
@@ -271,8 +271,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="22"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:22</a></div>
<div class="io-line">Defined in <a href="" data-line="19"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:19</a></div>
</td>
</tr>
@@ -310,8 +310,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="23"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:23</a></div>
<div class="io-line">Defined in <a href="" data-line="20"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:20</a></div>
</td>
</tr>
@@ -380,8 +380,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="25"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:25</a></div>
<div class="io-line">Defined in <a href="" data-line="22"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:22</a></div>
</td>
</tr>
@@ -450,8 +450,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="19"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:19</a></div>
<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>
@@ -489,8 +489,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="27"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:27</a></div>
<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>
@@ -559,8 +559,8 @@
<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>
<div class="io-line">Defined in <a href="" data-line="21"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:21</a></div>
</td>
</tr>
@@ -598,8 +598,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="18"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:18</a></div>
<div class="io-line">Defined in <a href="" data-line="15"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:15</a></div>
</td>
</tr>
@@ -637,8 +637,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="26"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:26</a></div>
<div class="io-line">Defined in <a href="" data-line="23"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:23</a></div>
</td>
</tr>
@@ -707,8 +707,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="28"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:28</a></div>
<div class="io-line">Defined in <a href="" data-line="25"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:25</a></div>
</td>
</tr>
@@ -777,8 +777,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="14"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:14</a></div>
<div class="io-line">Defined in <a href="" data-line="11"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:11</a></div>
</td>
</tr>
@@ -816,8 +816,8 @@
<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>
<div class="io-line">Defined in <a href="" data-line="26"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:26</a></div>
</td>
</tr>
@@ -886,8 +886,8 @@
<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>
<div class="io-line">Defined in <a href="" data-line="13"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:13</a></div>
</td>
</tr>
@@ -925,8 +925,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="15"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:15</a></div>
<div class="io-line">Defined in <a href="" data-line="12"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:12</a></div>
</td>
</tr>
@@ -964,8 +964,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="11"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:11</a></div>
<div class="io-line">Defined in <a href="" data-line="8"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:8</a></div>
</td>
</tr>
@@ -1046,8 +1046,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="13"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:13</a></div>
<div class="io-line">Defined in <a href="" data-line="10"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:10</a></div>
</td>
</tr>
@@ -1116,8 +1116,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="12"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:12</a></div>
<div class="io-line">Defined in <a href="" data-line="9"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:9</a></div>
</td>
</tr>
@@ -1186,8 +1186,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="21"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:21</a></div>
<div class="io-line">Defined in <a href="" data-line="18"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:18</a></div>
</td>
</tr>
@@ -1256,8 +1256,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="20"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:20</a></div>
<div class="io-line">Defined in <a href="" data-line="17"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:17</a></div>
</td>
</tr>
@@ -1326,8 +1326,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="10"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:10</a></div>
<div class="io-line">Defined in <a href="" data-line="7"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:7</a></div>
</td>
</tr>
@@ -1365,8 +1365,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="30"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:30</a></div>
<div class="io-line">Defined in <a href="" data-line="27"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:27</a></div>
</td>
</tr>
@@ -1435,8 +1435,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="32"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:32</a></div>
<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>
@@ -1505,8 +1505,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="31"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:31</a></div>
<div class="io-line">Defined in <a href="" data-line="28"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:28</a></div>
</td>
</tr>
@@ -1575,8 +1575,8 @@
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="34"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:34</a></div>
<div class="io-line">Defined in <a href="" data-line="31"
class="link-to-prism">src/app/_pgp/pgp-key-store.ts:31</a></div>
</td>
</tr>
@@ -1634,9 +1634,6 @@
import * as openpgp from &#x27;openpgp&#x27;;
const keyring &#x3D; new openpgp.Keyring();
/**
* @extends
*/
interface MutableKeyStore extends KeyStore {
loadKeyring(): void;
importKeyPair(publicKey: any, privateKey: any): Promise&lt;void&gt;;
@@ -1665,11 +1662,7 @@ interface MutableKeyStore extends KeyStore {
sign(plainText: string): Promise&lt;any&gt;;
}
/**
* @implements
*/
class MutablePgpKeyStore implements MutableKeyStore{
class MutablePgpKeyStore implements MutableKeyStore {
async loadKeyring(): Promise&lt;void&gt; {
await keyring.load();
await keyring.store();
@@ -1714,8 +1707,8 @@ class MutablePgpKeyStore implements MutableKeyStore{
async isValidKey(key): Promise&lt;boolean&gt; {
// There is supposed to be an openpgp.readKey() method but I can&#x27;t find it?
const _key &#x3D; await openpgp.key.readArmored(key);
return !_key.err;
const testKey &#x3D; await openpgp.key.readArmored(key);
return !testKey.err;
}
async isEncryptedPrivateKey(privateKey: any): Promise&lt;boolean&gt; {
@@ -1730,8 +1723,12 @@ class MutablePgpKeyStore implements MutableKeyStore{
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;
return (
keyring.privateKeys &amp;&amp;
keyring.privateKeys.keys[0] &amp;&amp;
keyring.privateKeys.keys[0].keyPacket &amp;&amp;
keyring.privateKeys.keys[0].keyPacket.fingerprint
);
}
getKeyId(key: any): string {
@@ -1740,7 +1737,11 @@ class MutablePgpKeyStore implements MutableKeyStore{
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();
return (
keyring.privateKeys &amp;&amp;
keyring.privateKeys.keys[0] &amp;&amp;
keyring.privateKeys.keys[0].getKeyId().toHex()
);
}
getKeysForId(keyId: string): Array&lt;any&gt; {
@@ -1772,7 +1773,7 @@ class MutablePgpKeyStore implements MutableKeyStore{
}
removePublicKey(publicKey: any): any {
const keyId &#x3D; publicKey.getKeyId().toHex();
const keyId &#x3D; publicKey.getKeyId().toHex();
return keyring.publicKeys.removeForId(keyId);
}
@@ -1796,10 +1797,7 @@ class MutablePgpKeyStore implements MutableKeyStore{
}
}
export {
MutablePgpKeyStore,
MutableKeyStore
};
export { MutablePgpKeyStore, MutableKeyStore };
</code></pre>
</div>
</div>

View File

@@ -138,8 +138,8 @@
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import {MutableKeyStore} from &#x27;@app/_pgp/pgp-key-store&#x27;;
import {LoggingService} from &#x27;@app/_services/logging.service&#x27;;
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { MutableKeyStore } from &#x27;@app/_pgp/pgp-key-store&#x27;;
import { LoggingService } from &#x27;@app/_services/logging.service&#x27;;
const openpgp &#x3D; require(&#x27;openpgp&#x27;);
@@ -147,12 +147,12 @@ interface Signable {
digest(): string;
}
type Signature &#x3D; {
engine: string
algo: string
data: string
interface Signature {
engine: string;
algo: string;
data: string;
digest: string;
};
}
interface Signer {
onsign(signature: Signature): void;
@@ -164,7 +164,6 @@ interface Signer {
}
class PGPSigner implements Signer {
engine &#x3D; &#x27;pgp&#x27;;
algo &#x3D; &#x27;sha256&#x27;;
dgst: string;
@@ -190,28 +189,35 @@ class PGPSigner implements Signer {
}
public verify(digest: string, signature: Signature): void {
openpgp.signature.readArmored(signature.data).then((sig) &#x3D;&gt; {
const opts &#x3D; {
message: openpgp.cleartext.fromText(digest),
publicKeys: this.keyStore.getTrustedKeys(),
signature: sig,
};
openpgp.verify(opts).then((v) &#x3D;&gt; {
let i &#x3D; 0;
for (i &#x3D; 0; i &lt; v.signatures.length; i++) {
const s &#x3D; v.signatures[i];
if (s.valid) {
this.onverify(s);
return;
openpgp.signature
.readArmored(signature.data)
.then((sig) &#x3D;&gt; {
const opts &#x3D; {
message: openpgp.cleartext.fromText(digest),
publicKeys: this.keyStore.getTrustedKeys(),
signature: sig,
};
openpgp.verify(opts).then((v) &#x3D;&gt; {
let i &#x3D; 0;
for (i &#x3D; 0; i &lt; v.signatures.length; i++) {
const s &#x3D; v.signatures[i];
if (s.valid) {
this.onverify(s);
return;
}
}
}
this.loggingService.sendErrorLevelMessage(&#x60;Checked ${i} signature(s) but none valid&#x60;, this, {error: &#x27;404 Not found!&#x27;});
this.loggingService.sendErrorLevelMessage(
&#x60;Checked ${i} signature(s) but none valid&#x60;,
this,
{ error: &#x27;404 Not found!&#x27; }
);
this.onverify(false);
});
})
.catch((e) &#x3D;&gt; {
this.loggingService.sendErrorLevelMessage(e.message, this, { error: e });
this.onverify(false);
});
}).catch((e) &#x3D;&gt; {
this.loggingService.sendErrorLevelMessage(e.message, this, {error: e});
this.onverify(false);
});
}
public async sign(digest: string): Promise&lt;void&gt; {
@@ -226,28 +232,26 @@ class PGPSigner implements Signer {
privateKeys: [pk],
detached: true,
};
openpgp.sign(opts).then((s) &#x3D;&gt; {
this.signature &#x3D; {
engine: this.engine,
algo: this.algo,
data: s.signature,
// TODO: fix for browser later
digest,
};
this.onsign(this.signature);
}).catch((e) &#x3D;&gt; {
this.loggingService.sendErrorLevelMessage(e.message, this, {error: e});
this.onsign(undefined);
});
openpgp
.sign(opts)
.then((s) &#x3D;&gt; {
this.signature &#x3D; {
engine: this.engine,
algo: this.algo,
data: s.signature,
// TODO: fix for browser later
digest,
};
this.onsign(this.signature);
})
.catch((e) &#x3D;&gt; {
this.loggingService.sendErrorLevelMessage(e.message, this, { error: e });
this.onsign(undefined);
});
}
}
export {
Signable,
Signature,
Signer,
PGPSigner
};
export { Signable, Signature, Signer, PGPSigner };
</code></pre>
</div>
</div>

View File

@@ -0,0 +1,398 @@
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content interface">
<div class="content-data">
<ol class="breadcrumb">
<li>Interfaces</li>
<li>Signature</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-signer.ts</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>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#algo">algo</a>
</li>
<li>
<a href="#data">data</a>
</li>
<li>
<a href="#digest">digest</a>
</li>
<li>
<a href="#engine">engine</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">Properties</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="algo"></a>
<span class="name"><b>algo</b><a href="#algo"><span class="icon ion-ios-link"></span></a></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>algo: <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="data"></a>
<span class="name"><b>data</b><a href="#data"><span class="icon ion-ios-link"></span></a></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>data: <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="digest"></a>
<span class="name"><b>digest</b><a href="#digest"><span class="icon ion-ios-link"></span></a></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>digest: <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="engine"></a>
<span class="name"><b>engine</b><a href="#engine"><span class="icon ion-ios-link"></span></a></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>engine: <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</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 { MutableKeyStore } from &#x27;@app/_pgp/pgp-key-store&#x27;;
import { LoggingService } from &#x27;@app/_services/logging.service&#x27;;
const openpgp &#x3D; require(&#x27;openpgp&#x27;);
interface Signable {
digest(): string;
}
interface Signature {
engine: string;
algo: string;
data: string;
digest: string;
}
interface Signer {
onsign(signature: Signature): void;
onverify(flag: boolean): void;
fingerprint(): string;
prepare(material: Signable): boolean;
verify(digest: string, signature: Signature): void;
sign(digest: string): Promise&lt;void&gt;;
}
class PGPSigner implements Signer {
engine &#x3D; &#x27;pgp&#x27;;
algo &#x3D; &#x27;sha256&#x27;;
dgst: string;
signature: Signature;
keyStore: MutableKeyStore;
onsign: (signature: Signature) &#x3D;&gt; void;
onverify: (flag: boolean) &#x3D;&gt; void;
loggingService: LoggingService;
constructor(keyStore: MutableKeyStore) {
this.keyStore &#x3D; keyStore;
this.onsign &#x3D; (signature: Signature) &#x3D;&gt; {};
this.onverify &#x3D; (flag: boolean) &#x3D;&gt; {};
}
public fingerprint(): string {
return this.keyStore.getFingerprint();
}
public prepare(material: Signable): boolean {
this.dgst &#x3D; material.digest();
return true;
}
public verify(digest: string, signature: Signature): void {
openpgp.signature
.readArmored(signature.data)
.then((sig) &#x3D;&gt; {
const opts &#x3D; {
message: openpgp.cleartext.fromText(digest),
publicKeys: this.keyStore.getTrustedKeys(),
signature: sig,
};
openpgp.verify(opts).then((v) &#x3D;&gt; {
let i &#x3D; 0;
for (i &#x3D; 0; i &lt; v.signatures.length; i++) {
const s &#x3D; v.signatures[i];
if (s.valid) {
this.onverify(s);
return;
}
}
this.loggingService.sendErrorLevelMessage(
&#x60;Checked ${i} signature(s) but none valid&#x60;,
this,
{ error: &#x27;404 Not found!&#x27; }
);
this.onverify(false);
});
})
.catch((e) &#x3D;&gt; {
this.loggingService.sendErrorLevelMessage(e.message, this, { error: e });
this.onverify(false);
});
}
public async sign(digest: string): Promise&lt;void&gt; {
const m &#x3D; openpgp.cleartext.fromText(digest);
const pk &#x3D; this.keyStore.getPrivateKey();
if (!pk.isDecrypted()) {
const password &#x3D; window.prompt(&#x27;password&#x27;);
await pk.decrypt(password);
}
const opts &#x3D; {
message: m,
privateKeys: [pk],
detached: true,
};
openpgp
.sign(opts)
.then((s) &#x3D;&gt; {
this.signature &#x3D; {
engine: this.engine,
algo: this.algo,
data: s.signature,
// TODO: fix for browser later
digest,
};
this.onsign(this.signature);
})
.catch((e) &#x3D;&gt; {
this.loggingService.sendErrorLevelMessage(e.message, this, { error: e });
this.onsign(undefined);
});
}
}
export { Signable, Signature, Signer, PGPSigner };
</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 = 'Signature-1.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>

View File

@@ -244,24 +244,34 @@
products: string[];
category?: string;
vcard: {
email: [{
value: string;
}];
fn: [{
value: string;
}];
n: [{
value: string[];
}];
tel: [{
meta: {
TYP: string[];
},
value: string;
}],
version: [{
value: string;
}];
email: [
{
value: string;
}
];
fn: [
{
value: string;
}
];
n: [
{
value: string[];
}
];
tel: [
{
meta: {
TYP: string[];
};
value: string;
}
];
version: [
{
value: string;
}
];
};
}
@@ -299,34 +309,38 @@ const defaultAccount: AccountDetails &#x3D; {
},
products: [],
vcard: {
email: [{
value: &#x27;&#x27;,
}],
fn: [{
value: &#x27;Sarafu Contract&#x27;,
}],
n: [{
value: [&#x27;Sarafu&#x27;, &#x27;Contract&#x27;],
}],
tel: [{
meta: {
TYP: [],
email: [
{
value: &#x27;&#x27;,
},
value: &#x27;&#x27;,
}],
version: [{
value: &#x27;3.0&#x27;,
}],
],
fn: [
{
value: &#x27;Sarafu Contract&#x27;,
},
],
n: [
{
value: [&#x27;Sarafu&#x27;, &#x27;Contract&#x27;],
},
],
tel: [
{
meta: {
TYP: [],
},
value: &#x27;&#x27;,
},
],
version: [
{
value: &#x27;3.0&#x27;,
},
],
},
};
export {
AccountDetails,
Signature,
Meta,
MetaResponse,
defaultAccount
};
export { AccountDetails, Signature, Meta, MetaResponse, defaultAccount };
</code></pre>
</div>
</div>

View File

@@ -515,8 +515,8 @@
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import {MutableKeyStore} from &#x27;@app/_pgp/pgp-key-store&#x27;;
import {LoggingService} from &#x27;@app/_services/logging.service&#x27;;
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { MutableKeyStore } from &#x27;@app/_pgp/pgp-key-store&#x27;;
import { LoggingService } from &#x27;@app/_services/logging.service&#x27;;
const openpgp &#x3D; require(&#x27;openpgp&#x27;);
@@ -524,12 +524,12 @@ interface Signable {
digest(): string;
}
type Signature &#x3D; {
engine: string
algo: string
data: string
interface Signature {
engine: string;
algo: string;
data: string;
digest: string;
};
}
interface Signer {
onsign(signature: Signature): void;
@@ -541,7 +541,6 @@ interface Signer {
}
class PGPSigner implements Signer {
engine &#x3D; &#x27;pgp&#x27;;
algo &#x3D; &#x27;sha256&#x27;;
dgst: string;
@@ -567,28 +566,35 @@ class PGPSigner implements Signer {
}
public verify(digest: string, signature: Signature): void {
openpgp.signature.readArmored(signature.data).then((sig) &#x3D;&gt; {
const opts &#x3D; {
message: openpgp.cleartext.fromText(digest),
publicKeys: this.keyStore.getTrustedKeys(),
signature: sig,
};
openpgp.verify(opts).then((v) &#x3D;&gt; {
let i &#x3D; 0;
for (i &#x3D; 0; i &lt; v.signatures.length; i++) {
const s &#x3D; v.signatures[i];
if (s.valid) {
this.onverify(s);
return;
openpgp.signature
.readArmored(signature.data)
.then((sig) &#x3D;&gt; {
const opts &#x3D; {
message: openpgp.cleartext.fromText(digest),
publicKeys: this.keyStore.getTrustedKeys(),
signature: sig,
};
openpgp.verify(opts).then((v) &#x3D;&gt; {
let i &#x3D; 0;
for (i &#x3D; 0; i &lt; v.signatures.length; i++) {
const s &#x3D; v.signatures[i];
if (s.valid) {
this.onverify(s);
return;
}
}
}
this.loggingService.sendErrorLevelMessage(&#x60;Checked ${i} signature(s) but none valid&#x60;, this, {error: &#x27;404 Not found!&#x27;});
this.loggingService.sendErrorLevelMessage(
&#x60;Checked ${i} signature(s) but none valid&#x60;,
this,
{ error: &#x27;404 Not found!&#x27; }
);
this.onverify(false);
});
})
.catch((e) &#x3D;&gt; {
this.loggingService.sendErrorLevelMessage(e.message, this, { error: e });
this.onverify(false);
});
}).catch((e) &#x3D;&gt; {
this.loggingService.sendErrorLevelMessage(e.message, this, {error: e});
this.onverify(false);
});
}
public async sign(digest: string): Promise&lt;void&gt; {
@@ -603,28 +609,26 @@ class PGPSigner implements Signer {
privateKeys: [pk],
detached: true,
};
openpgp.sign(opts).then((s) &#x3D;&gt; {
this.signature &#x3D; {
engine: this.engine,
algo: this.algo,
data: s.signature,
// TODO: fix for browser later
digest,
};
this.onsign(this.signature);
}).catch((e) &#x3D;&gt; {
this.loggingService.sendErrorLevelMessage(e.message, this, {error: e});
this.onsign(undefined);
});
openpgp
.sign(opts)
.then((s) &#x3D;&gt; {
this.signature &#x3D; {
engine: this.engine,
algo: this.algo,
data: s.signature,
// TODO: fix for browser later
digest,
};
this.onsign(this.signature);
})
.catch((e) &#x3D;&gt; {
this.loggingService.sendErrorLevelMessage(e.message, this, { error: e });
this.onsign(undefined);
});
}
}
export {
Signable,
Signature,
Signer,
PGPSigner
};
export { Signable, Signature, Signer, PGPSigner };
</code></pre>
</div>
</div>

View File

@@ -262,9 +262,7 @@
userid: string;
}
export {
Staff
};
export { Staff };
</code></pre>
</div>
</div>

View File

@@ -372,15 +372,13 @@
&#x27;0xa686005CE37Dce7738436256982C3903f2E4ea8E&#x27;?: {
weight: string;
balance: string;
}
};
};
reserveRatio?: string;
owner?: string;
}
export {
Token
};
export { Token };
</code></pre>
</div>
</div>