glow.ts 1.0.3 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -15
- package/dist/glow.cjs.js +4 -0
- package/dist/glow.cjs.js.map +1 -0
- package/dist/glow.es.js +993 -0
- package/dist/glow.es.js.map +1 -0
- package/dist/index.d.ts +544 -0
- package/package.json +34 -26
- package/dist/cjs2/config.js +0 -18
- package/dist/cjs2/config.js.map +0 -1
- package/dist/cjs2/crypto-storage/crypto-storage.js +0 -118
- package/dist/cjs2/crypto-storage/crypto-storage.js.map +0 -1
- package/dist/cjs2/crypto-storage/in-memory-storage.js +0 -36
- package/dist/cjs2/crypto-storage/in-memory-storage.js.map +0 -1
- package/dist/cjs2/crypto-storage/local-storage.driver.js +0 -36
- package/dist/cjs2/crypto-storage/local-storage.driver.js.map +0 -1
- package/dist/cjs2/crypto-storage/storage-driver.interface.js +0 -3
- package/dist/cjs2/crypto-storage/storage-driver.interface.js.map +0 -1
- package/dist/cjs2/index.js +0 -28
- package/dist/cjs2/index.js.map +0 -1
- package/dist/cjs2/keyring/keyring.js +0 -151
- package/dist/cjs2/keyring/keyring.js.map +0 -1
- package/dist/cjs2/keys/keys.js +0 -40
- package/dist/cjs2/keys/keys.js.map +0 -1
- package/dist/cjs2/mailbox/mailbox.js +0 -352
- package/dist/cjs2/mailbox/mailbox.js.map +0 -1
- package/dist/cjs2/nacl/encryption.helper.js +0 -101
- package/dist/cjs2/nacl/encryption.helper.js.map +0 -1
- package/dist/cjs2/nacl/js-nacl-driver.js +0 -110
- package/dist/cjs2/nacl/js-nacl-driver.js.map +0 -1
- package/dist/cjs2/nacl/keypair.interface.js +0 -3
- package/dist/cjs2/nacl/keypair.interface.js.map +0 -1
- package/dist/cjs2/nacl/nacl-driver.interface.js +0 -3
- package/dist/cjs2/nacl/nacl-driver.interface.js.map +0 -1
- package/dist/cjs2/nacl/nacl.js +0 -29
- package/dist/cjs2/nacl/nacl.js.map +0 -1
- package/dist/cjs2/relay/network-error.js +0 -12
- package/dist/cjs2/relay/network-error.js.map +0 -1
- package/dist/cjs2/relay/relay-factory.js +0 -22
- package/dist/cjs2/relay/relay-factory.js.map +0 -1
- package/dist/cjs2/relay/relay.js +0 -300
- package/dist/cjs2/relay/relay.js.map +0 -1
- package/dist/cjs2/utils/utils.js +0 -39
- package/dist/cjs2/utils/utils.js.map +0 -1
- package/dist/cjs2/zax.interface.js +0 -46
- package/dist/cjs2/zax.interface.js.map +0 -1
- package/dist/esm/config.js +0 -15
- package/dist/esm/config.js.map +0 -1
- package/dist/esm/crypto-storage/crypto-storage.js +0 -114
- package/dist/esm/crypto-storage/crypto-storage.js.map +0 -1
- package/dist/esm/crypto-storage/in-memory-storage.js +0 -32
- package/dist/esm/crypto-storage/in-memory-storage.js.map +0 -1
- package/dist/esm/crypto-storage/local-storage.driver.js +0 -32
- package/dist/esm/crypto-storage/local-storage.driver.js.map +0 -1
- package/dist/esm/crypto-storage/storage-driver.interface.js +0 -2
- package/dist/esm/crypto-storage/storage-driver.interface.js.map +0 -1
- package/dist/esm/index.js +0 -14
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/keyring/keyring.js +0 -147
- package/dist/esm/keyring/keyring.js.map +0 -1
- package/dist/esm/keys/keys.js +0 -36
- package/dist/esm/keys/keys.js.map +0 -1
- package/dist/esm/mailbox/mailbox.js +0 -348
- package/dist/esm/mailbox/mailbox.js.map +0 -1
- package/dist/esm/nacl/encryption.helper.js +0 -97
- package/dist/esm/nacl/encryption.helper.js.map +0 -1
- package/dist/esm/nacl/js-nacl-driver.js +0 -106
- package/dist/esm/nacl/js-nacl-driver.js.map +0 -1
- package/dist/esm/nacl/keypair.interface.js +0 -2
- package/dist/esm/nacl/keypair.interface.js.map +0 -1
- package/dist/esm/nacl/nacl-driver.interface.js +0 -2
- package/dist/esm/nacl/nacl-driver.interface.js.map +0 -1
- package/dist/esm/nacl/nacl.js +0 -25
- package/dist/esm/nacl/nacl.js.map +0 -1
- package/dist/esm/relay/network-error.js +0 -8
- package/dist/esm/relay/network-error.js.map +0 -1
- package/dist/esm/relay/relay-factory.js +0 -18
- package/dist/esm/relay/relay-factory.js.map +0 -1
- package/dist/esm/relay/relay.js +0 -293
- package/dist/esm/relay/relay.js.map +0 -1
- package/dist/esm/utils/utils.js +0 -35
- package/dist/esm/utils/utils.js.map +0 -1
- package/dist/esm/zax.interface.js +0 -43
- package/dist/esm/zax.interface.js.map +0 -1
- package/dist/types/config.d.ts +0 -10
- package/dist/types/config.d.ts.map +0 -1
- package/dist/types/crypto-storage/crypto-storage.d.ts +0 -20
- package/dist/types/crypto-storage/crypto-storage.d.ts.map +0 -1
- package/dist/types/crypto-storage/in-memory-storage.d.ts +0 -17
- package/dist/types/crypto-storage/in-memory-storage.d.ts.map +0 -1
- package/dist/types/crypto-storage/local-storage.driver.d.ts +0 -15
- package/dist/types/crypto-storage/local-storage.driver.d.ts.map +0 -1
- package/dist/types/crypto-storage/storage-driver.interface.d.ts +0 -11
- package/dist/types/crypto-storage/storage-driver.interface.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -16
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/keyring/keyring.d.ts +0 -43
- package/dist/types/keyring/keyring.d.ts.map +0 -1
- package/dist/types/keys/keys.d.ts +0 -16
- package/dist/types/keys/keys.d.ts.map +0 -1
- package/dist/types/mailbox/mailbox.d.ts +0 -148
- package/dist/types/mailbox/mailbox.d.ts.map +0 -1
- package/dist/types/nacl/encryption.helper.d.ts +0 -37
- package/dist/types/nacl/encryption.helper.d.ts.map +0 -1
- package/dist/types/nacl/js-nacl-driver.d.ts +0 -39
- package/dist/types/nacl/js-nacl-driver.d.ts.map +0 -1
- package/dist/types/nacl/keypair.interface.d.ts +0 -5
- package/dist/types/nacl/keypair.interface.d.ts.map +0 -1
- package/dist/types/nacl/nacl-driver.interface.d.ts +0 -28
- package/dist/types/nacl/nacl-driver.interface.d.ts.map +0 -1
- package/dist/types/nacl/nacl.d.ts +0 -13
- package/dist/types/nacl/nacl.d.ts.map +0 -1
- package/dist/types/relay/network-error.d.ts +0 -6
- package/dist/types/relay/network-error.d.ts.map +0 -1
- package/dist/types/relay/relay-factory.d.ts +0 -10
- package/dist/types/relay/relay-factory.d.ts.map +0 -1
- package/dist/types/relay/relay.d.ts +0 -88
- package/dist/types/relay/relay.d.ts.map +0 -1
- package/dist/types/utils/utils.d.ts +0 -9
- package/dist/types/utils/utils.d.ts.map +0 -1
- package/dist/types/zax.interface.d.ts +0 -101
- package/dist/types/zax.interface.d.ts.map +0 -1
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CryptoStorage = void 0;
|
|
4
|
-
const nacl_1 = require("../nacl/nacl");
|
|
5
|
-
const utils_1 = require("../utils/utils");
|
|
6
|
-
const config_1 = require("../config");
|
|
7
|
-
const local_storage_driver_1 = require("./local-storage.driver");
|
|
8
|
-
// TODO: add bulk operations to set(), get() and remove() pairs of values simultaneously
|
|
9
|
-
/* CryptoStorage is a handy wrapper around any storage that provides JavaScript interface,
|
|
10
|
-
that allows to store symmetrically encrypted serializable Javascript objects and primitives. */
|
|
11
|
-
class CryptoStorage {
|
|
12
|
-
constructor(storageDriver, id) {
|
|
13
|
-
const nacl = nacl_1.NaCl.getInstance();
|
|
14
|
-
this.nacl = nacl;
|
|
15
|
-
this.driver = storageDriver;
|
|
16
|
-
this.id = id ? `.${id}${config_1.config.STORAGE_ROOT}` : config_1.config.STORAGE_ROOT;
|
|
17
|
-
}
|
|
18
|
-
static async new(id) {
|
|
19
|
-
const storageDriver = this.getStorageDriver();
|
|
20
|
-
const storage = new CryptoStorage(storageDriver, id);
|
|
21
|
-
const prefixedStorageKeyTag = storage.addPrefix(config_1.config.SKEY_TAG);
|
|
22
|
-
const storageKey = await storageDriver.get(prefixedStorageKeyTag);
|
|
23
|
-
// Either load or generate a storage key
|
|
24
|
-
if (storageKey) {
|
|
25
|
-
const { key } = JSON.parse(storageKey);
|
|
26
|
-
storage.storageKey = utils_1.Utils.fromBase64(key);
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
storage.storageKey = await storage.nacl.random_bytes(storage.nacl.crypto_secretbox_KEYBYTES);
|
|
30
|
-
await storageDriver.set(prefixedStorageKeyTag, JSON.stringify({ key: utils_1.Utils.toBase64(storage.storageKey) }));
|
|
31
|
-
}
|
|
32
|
-
return storage;
|
|
33
|
-
}
|
|
34
|
-
static getStorageDriver() {
|
|
35
|
-
if (!this.storageDriver) {
|
|
36
|
-
throw new Error('[CryptoStorage] StorageDriver instance is not yet set');
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
return this.storageDriver;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
static setDefaultStorageDriver() {
|
|
43
|
-
return this.setStorageDriver(new local_storage_driver_1.LocalStorageDriver());
|
|
44
|
-
}
|
|
45
|
-
static setStorageDriver(driver) {
|
|
46
|
-
if (this.storageDriver) {
|
|
47
|
-
throw new Error('[CryptoStorage] StorageDriver has been already set, it is supposed to be set only once');
|
|
48
|
-
}
|
|
49
|
-
this.storageDriver = driver;
|
|
50
|
-
return true;
|
|
51
|
-
}
|
|
52
|
-
async save(tag, data) {
|
|
53
|
-
if (!this.driver) {
|
|
54
|
-
throw new Error('[CryptoStorage] Storage driver is not set');
|
|
55
|
-
}
|
|
56
|
-
if (!this.storageKey) {
|
|
57
|
-
throw new Error('[CryptoStorage] Storage key is not set');
|
|
58
|
-
}
|
|
59
|
-
// Convert the data to JSON, then convert that string to a byte array
|
|
60
|
-
const input = JSON.stringify(data);
|
|
61
|
-
const encoded = await this.nacl.encode_utf8(input);
|
|
62
|
-
// For each item in the store we also generate and save its own nonce
|
|
63
|
-
const nonce = await this.nacl.crypto_secretbox_random_nonce();
|
|
64
|
-
const cipherText = await this.nacl.crypto_secretbox(encoded, nonce, this.storageKey);
|
|
65
|
-
// Save the cipher text and nonce
|
|
66
|
-
await this.driver.setMultiple({
|
|
67
|
-
[this.addPrefix(tag)]: utils_1.Utils.toBase64(cipherText),
|
|
68
|
-
[this.addNonceTag(tag)]: utils_1.Utils.toBase64(nonce)
|
|
69
|
-
});
|
|
70
|
-
return true;
|
|
71
|
-
}
|
|
72
|
-
async get(tag) {
|
|
73
|
-
if (!this.driver) {
|
|
74
|
-
throw new Error('[CryptoStorage] Storage driver is not set');
|
|
75
|
-
}
|
|
76
|
-
if (!this.storageKey) {
|
|
77
|
-
throw new Error('[CryptoStorage] Storage key is not set');
|
|
78
|
-
}
|
|
79
|
-
// Get cipher text and nonce from the storage
|
|
80
|
-
const [data, nonce] = await this.driver.getMultiple([this.addPrefix(tag), this.addNonceTag(tag)]);
|
|
81
|
-
// Nothing to do without cipher text or nonce
|
|
82
|
-
if (!data || !nonce) {
|
|
83
|
-
return null;
|
|
84
|
-
}
|
|
85
|
-
const dataBinary = utils_1.Utils.fromBase64(data);
|
|
86
|
-
const nonceBinary = utils_1.Utils.fromBase64(nonce);
|
|
87
|
-
const source = await this.nacl.crypto_secretbox_open(dataBinary, nonceBinary, this.storageKey);
|
|
88
|
-
if (source) {
|
|
89
|
-
const decoded = await this.nacl.decode_utf8(source);
|
|
90
|
-
return JSON.parse(decoded);
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
throw new Error('[CryptoStorage] crypto_secretbox_open: decryption error');
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
async remove(tag) {
|
|
97
|
-
if (!this.driver) {
|
|
98
|
-
throw new Error('[CryptoStorage] Storage driver is not set');
|
|
99
|
-
}
|
|
100
|
-
await this.driver.removeMultiple([this.addPrefix(tag), this.addNonceTag(tag)]);
|
|
101
|
-
return true;
|
|
102
|
-
}
|
|
103
|
-
async selfDestruct() {
|
|
104
|
-
if (!this.driver) {
|
|
105
|
-
throw new Error('[CryptoStorage] Storage driver is not set');
|
|
106
|
-
}
|
|
107
|
-
await this.driver.remove(this.addPrefix(config_1.config.SKEY_TAG));
|
|
108
|
-
}
|
|
109
|
-
// Keys are tagged in the storage with a versioned prefix
|
|
110
|
-
addPrefix(key) {
|
|
111
|
-
return this.id ? (key + this.id) : key;
|
|
112
|
-
}
|
|
113
|
-
addNonceTag(tag) {
|
|
114
|
-
return this.addPrefix(`${config_1.config.NONCE_TAG}.${tag}`);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
exports.CryptoStorage = CryptoStorage;
|
|
118
|
-
//# sourceMappingURL=crypto-storage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-storage.js","sourceRoot":"","sources":["../../../src/crypto-storage/crypto-storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.InMemoryStorage = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* temporary created in-memory storage for testing purposes
|
|
6
|
-
*/
|
|
7
|
-
class InMemoryStorage {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.storage = {};
|
|
10
|
-
}
|
|
11
|
-
async get(key) {
|
|
12
|
-
return (await this.getMultiple([key]))[0];
|
|
13
|
-
}
|
|
14
|
-
async getMultiple(keys) {
|
|
15
|
-
return keys.map(key => this.storage[key]);
|
|
16
|
-
}
|
|
17
|
-
set(key, value) {
|
|
18
|
-
return this.setMultiple({ [key]: value });
|
|
19
|
-
}
|
|
20
|
-
async setMultiple(values) {
|
|
21
|
-
for (const key in values) {
|
|
22
|
-
this.storage[key] = values[key];
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
remove(key) {
|
|
26
|
-
return this.removeMultiple([key]);
|
|
27
|
-
}
|
|
28
|
-
async removeMultiple(keys) {
|
|
29
|
-
keys.forEach(key => delete this.storage[key]);
|
|
30
|
-
}
|
|
31
|
-
reset() {
|
|
32
|
-
this.storage = {};
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
exports.InMemoryStorage = InMemoryStorage;
|
|
36
|
-
//# sourceMappingURL=in-memory-storage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory-storage.js","sourceRoot":"","sources":["../../../src/crypto-storage/in-memory-storage.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,eAAe;IAA5B;QAEU,YAAO,GAAiC,EAAE,CAAC;IA+BrD,CAAC;IA7BC,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAc;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAU;QACzB,OAAO,IAAI,CAAC,WAAW,CAAC,EAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAC,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAyC;QACzD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;SACjC;IACH,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAc;QACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;CACF;AAjCD,0CAiCC"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LocalStorageDriver = void 0;
|
|
4
|
-
class LocalStorageDriver {
|
|
5
|
-
constructor(root = 'storage.') {
|
|
6
|
-
this.rootTag = `__glow.${root}`;
|
|
7
|
-
}
|
|
8
|
-
async get(key) {
|
|
9
|
-
return (await this.getMultiple([key]))[0];
|
|
10
|
-
}
|
|
11
|
-
async getMultiple(keys) {
|
|
12
|
-
return keys.map(key => localStorage.getItem(this.tag(key)) || null);
|
|
13
|
-
}
|
|
14
|
-
async set(key, value) {
|
|
15
|
-
return this.setMultiple({ [key]: value });
|
|
16
|
-
}
|
|
17
|
-
async setMultiple(values) {
|
|
18
|
-
for (const key in values) {
|
|
19
|
-
const value = values[key];
|
|
20
|
-
if (value !== null) {
|
|
21
|
-
localStorage.setItem(this.tag(key), value);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
async remove(key) {
|
|
26
|
-
this.removeMultiple([key]);
|
|
27
|
-
}
|
|
28
|
-
async removeMultiple(keys) {
|
|
29
|
-
keys.forEach(key => localStorage.removeItem(this.tag(key)));
|
|
30
|
-
}
|
|
31
|
-
tag(key) {
|
|
32
|
-
return `${this.rootTag}.${key}`;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
exports.LocalStorageDriver = LocalStorageDriver;
|
|
36
|
-
//# sourceMappingURL=local-storage.driver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"local-storage.driver.js","sourceRoot":"","sources":["../../../src/crypto-storage/local-storage.driver.ts"],"names":[],"mappings":";;;AAEA,MAAa,kBAAkB;IAG7B,YAAY,IAAI,GAAG,UAAU;QAC3B,IAAI,CAAC,OAAO,GAAG,UAAU,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAc;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAoB;QACzC,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAyC;QACzD,KAAI,MAAM,GAAG,IAAI,MAAM,EAAE;YACvB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,KAAK,KAAK,IAAI,EAAE;gBAClB,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;aAC5C;SACF;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAc;QACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEO,GAAG,CAAC,GAAW;QACrB,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC;IAClC,CAAC;CACF;AAvCD,gDAuCC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage-driver.interface.js","sourceRoot":"","sources":["../../../src/crypto-storage/storage-driver.interface.ts"],"names":[],"mappings":""}
|
package/dist/cjs2/index.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.InMemoryStorage = exports.NetworkError = exports.Utils = exports.JsNaClDriver = exports.ZaxMessageKind = exports.LocalStorageDriver = exports.CryptoStorage = exports.Relay = exports.Mailbox = exports.KeyRing = exports.Keys = exports.NaCl = void 0;
|
|
4
|
-
const nacl_1 = require("./nacl/nacl");
|
|
5
|
-
Object.defineProperty(exports, "NaCl", { enumerable: true, get: function () { return nacl_1.NaCl; } });
|
|
6
|
-
const keys_js_1 = require("./keys/keys.js");
|
|
7
|
-
Object.defineProperty(exports, "Keys", { enumerable: true, get: function () { return keys_js_1.Keys; } });
|
|
8
|
-
const keyring_js_1 = require("./keyring/keyring.js");
|
|
9
|
-
Object.defineProperty(exports, "KeyRing", { enumerable: true, get: function () { return keyring_js_1.KeyRing; } });
|
|
10
|
-
const crypto_storage_js_1 = require("./crypto-storage/crypto-storage.js");
|
|
11
|
-
Object.defineProperty(exports, "CryptoStorage", { enumerable: true, get: function () { return crypto_storage_js_1.CryptoStorage; } });
|
|
12
|
-
const local_storage_driver_js_1 = require("./crypto-storage/local-storage.driver.js");
|
|
13
|
-
Object.defineProperty(exports, "LocalStorageDriver", { enumerable: true, get: function () { return local_storage_driver_js_1.LocalStorageDriver; } });
|
|
14
|
-
const mailbox_1 = require("./mailbox/mailbox");
|
|
15
|
-
Object.defineProperty(exports, "Mailbox", { enumerable: true, get: function () { return mailbox_1.Mailbox; } });
|
|
16
|
-
const relay_1 = require("./relay/relay");
|
|
17
|
-
Object.defineProperty(exports, "Relay", { enumerable: true, get: function () { return relay_1.Relay; } });
|
|
18
|
-
const zax_interface_1 = require("./zax.interface");
|
|
19
|
-
Object.defineProperty(exports, "ZaxMessageKind", { enumerable: true, get: function () { return zax_interface_1.ZaxMessageKind; } });
|
|
20
|
-
const js_nacl_driver_1 = require("./nacl/js-nacl-driver");
|
|
21
|
-
Object.defineProperty(exports, "JsNaClDriver", { enumerable: true, get: function () { return js_nacl_driver_1.JsNaClDriver; } });
|
|
22
|
-
const utils_1 = require("./utils/utils");
|
|
23
|
-
Object.defineProperty(exports, "Utils", { enumerable: true, get: function () { return utils_1.Utils; } });
|
|
24
|
-
const network_error_1 = require("./relay/network-error");
|
|
25
|
-
Object.defineProperty(exports, "NetworkError", { enumerable: true, get: function () { return network_error_1.NetworkError; } });
|
|
26
|
-
const in_memory_storage_1 = require("./crypto-storage/in-memory-storage");
|
|
27
|
-
Object.defineProperty(exports, "InMemoryStorage", { enumerable: true, get: function () { return in_memory_storage_1.InMemoryStorage; } });
|
|
28
|
-
//# sourceMappingURL=index.js.map
|
package/dist/cjs2/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,sCAAmC;AAkBjC,qFAlBO,WAAI,OAkBP;AAjBN,4CAAsC;AAkBpC,qFAlBO,cAAI,OAkBP;AAjBN,qDAA+C;AAkB7C,wFAlBO,oBAAO,OAkBP;AAjBT,0EAAmE;AAoBjE,8FApBO,iCAAa,OAoBP;AAlBf,sFAA8E;AAoB5E,mGApBO,4CAAkB,OAoBP;AAnBpB,+CAA4C;AAe1C,wFAfO,iBAAO,OAeP;AAdT,yCAAsC;AAepC,sFAfO,aAAK,OAeP;AAdP,mDAEyB;AAgBvB,+FAjBA,8BAAc,OAiBA;AAfhB,0DAAqD;AAsBnD,6FAtBO,6BAAY,OAsBP;AArBd,yCAAsC;AAsBpC,sFAtBO,aAAK,OAsBP;AApBP,yDAAqD;AAqBnD,6FArBO,4BAAY,OAqBP;AApBd,0EAAqE;AAqBnE,gGArBO,mCAAe,OAqBP"}
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.KeyRing = void 0;
|
|
4
|
-
const crypto_storage_1 = require("../crypto-storage/crypto-storage");
|
|
5
|
-
const keys_1 = require("../keys/keys");
|
|
6
|
-
const nacl_1 = require("../nacl/nacl");
|
|
7
|
-
const utils_1 = require("../utils/utils");
|
|
8
|
-
const commKeyTag = '__::commKey::__';
|
|
9
|
-
// Manages the set of public keys of counterparties
|
|
10
|
-
class KeyRing {
|
|
11
|
-
constructor(naclDriver, cryptoStorage, commKey) {
|
|
12
|
-
this.guestKeys = new Map();
|
|
13
|
-
this.nacl = naclDriver;
|
|
14
|
-
this.storage = cryptoStorage;
|
|
15
|
-
this.commKey = commKey;
|
|
16
|
-
}
|
|
17
|
-
static async new(id) {
|
|
18
|
-
const nacl = nacl_1.NaCl.getInstance();
|
|
19
|
-
const cryptoStorage = await crypto_storage_1.CryptoStorage.new(id);
|
|
20
|
-
const commKey = await KeyRing.getCommKeyOrCreate(nacl, cryptoStorage);
|
|
21
|
-
const keyRing = new KeyRing(nacl, cryptoStorage, commKey);
|
|
22
|
-
await keyRing.loadGuestKeys();
|
|
23
|
-
return keyRing;
|
|
24
|
-
}
|
|
25
|
-
static async fromBackup(id, backupString) {
|
|
26
|
-
const backup = JSON.parse(backupString);
|
|
27
|
-
const secretKey = utils_1.Utils.fromBase64(backup[commKeyTag]);
|
|
28
|
-
const restoredKeyRing = await KeyRing.new(id);
|
|
29
|
-
await restoredKeyRing.setCommFromSecKey(secretKey);
|
|
30
|
-
for (const [key, value] of Object.entries(backup)) {
|
|
31
|
-
if (key !== commKeyTag) {
|
|
32
|
-
await restoredKeyRing.addGuest(key, value);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return restoredKeyRing;
|
|
36
|
-
}
|
|
37
|
-
getNumberOfGuests() {
|
|
38
|
-
return this.guestKeys.size;
|
|
39
|
-
}
|
|
40
|
-
get guests() {
|
|
41
|
-
return this.guestKeys;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Returns public identity, which is the default communication key.
|
|
45
|
-
* Correspondents can know it, whereas Relays do not need it (other than
|
|
46
|
-
* temporarily for internal use during the ownership proof)
|
|
47
|
-
*/
|
|
48
|
-
getPubCommKey() {
|
|
49
|
-
return this.commKey.publicKey;
|
|
50
|
-
}
|
|
51
|
-
getPrivateCommKey() {
|
|
52
|
-
return this.commKey.privateKey;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Returns HPK (hash of the public key) of the mailbox. This is what Zax relays
|
|
56
|
-
* uses as the universal address of the mailbox
|
|
57
|
-
*/
|
|
58
|
-
async getHpk() {
|
|
59
|
-
const hpk = await this.nacl.h2(utils_1.Utils.fromBase64(this.commKey.publicKey));
|
|
60
|
-
return utils_1.Utils.toBase64(hpk);
|
|
61
|
-
}
|
|
62
|
-
getTagByHpk(hpk) {
|
|
63
|
-
for (const [key, value] of this.guestKeys) {
|
|
64
|
-
if (value.hpk === hpk) {
|
|
65
|
-
return key;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return null;
|
|
69
|
-
}
|
|
70
|
-
getGuestKey(guestTag) {
|
|
71
|
-
const keyRecord = this.guestKeys.get(guestTag);
|
|
72
|
-
if (keyRecord) {
|
|
73
|
-
return keyRecord.pk;
|
|
74
|
-
}
|
|
75
|
-
return null;
|
|
76
|
-
}
|
|
77
|
-
// Backups
|
|
78
|
-
async backup() {
|
|
79
|
-
const backup = {
|
|
80
|
-
[commKeyTag]: this.commKey.privateKey
|
|
81
|
-
};
|
|
82
|
-
if (this.getNumberOfGuests() > 0) {
|
|
83
|
-
for (const [key, value] of this.guestKeys) {
|
|
84
|
-
if (key && value) {
|
|
85
|
-
backup[key] = value.pk;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return JSON.stringify(backup);
|
|
90
|
-
}
|
|
91
|
-
async setCommFromSeed(seed) {
|
|
92
|
-
this.commKey = new keys_1.Keys(await this.nacl.crypto_box_keypair_from_seed(seed));
|
|
93
|
-
await this.storage.save(KeyRing.commKeyTag, this.commKey.toString());
|
|
94
|
-
}
|
|
95
|
-
async setCommFromSecKey(rawSecretKey) {
|
|
96
|
-
this.commKey = new keys_1.Keys(await this.nacl.crypto_box_keypair_from_raw_sk(rawSecretKey));
|
|
97
|
-
await this.storage.save(KeyRing.commKeyTag, this.commKey.toString());
|
|
98
|
-
}
|
|
99
|
-
async addGuest(guestTag, publicKey) {
|
|
100
|
-
const b64_h2 = utils_1.Utils.toBase64(await this.nacl.h2(utils_1.Utils.fromBase64(publicKey)));
|
|
101
|
-
this.guestKeys.set(guestTag, {
|
|
102
|
-
pk: publicKey,
|
|
103
|
-
hpk: b64_h2
|
|
104
|
-
});
|
|
105
|
-
await this.saveGuests();
|
|
106
|
-
return b64_h2;
|
|
107
|
-
}
|
|
108
|
-
async removeGuest(guestTag) {
|
|
109
|
-
if (this.guestKeys.has(guestTag)) {
|
|
110
|
-
this.guestKeys.delete(guestTag);
|
|
111
|
-
await this.saveGuests();
|
|
112
|
-
}
|
|
113
|
-
return true;
|
|
114
|
-
}
|
|
115
|
-
async loadGuestKeys() {
|
|
116
|
-
const guestKeys = await this.storage.get(KeyRing.guestRegistryTag);
|
|
117
|
-
if (!guestKeys) {
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
else if (typeof guestKeys === 'object') {
|
|
121
|
-
this.guestKeys = new Map(Object.entries(guestKeys));
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
throw new Error('[Keyring] Guest keys is not an object');
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
async saveGuests() {
|
|
128
|
-
await this.storage.save(KeyRing.guestRegistryTag, utils_1.Utils.toObject(this.guestKeys.entries()));
|
|
129
|
-
}
|
|
130
|
-
static async getCommKeyOrCreate(nacl, storage) {
|
|
131
|
-
const commKeyRecord = await storage.get(KeyRing.commKeyTag);
|
|
132
|
-
if (commKeyRecord && typeof commKeyRecord === 'string') {
|
|
133
|
-
return new keys_1.Keys(commKeyRecord);
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
const keypair = await nacl.crypto_box_keypair();
|
|
137
|
-
const commKey = new keys_1.Keys(keypair);
|
|
138
|
-
await storage.save(KeyRing.commKeyTag, commKey.toString());
|
|
139
|
-
return commKey;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
async selfDestruct() {
|
|
143
|
-
await this.storage.remove(KeyRing.guestRegistryTag);
|
|
144
|
-
await this.storage.remove(KeyRing.commKeyTag);
|
|
145
|
-
await this.storage.selfDestruct();
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
exports.KeyRing = KeyRing;
|
|
149
|
-
KeyRing.commKeyTag = 'comm_key';
|
|
150
|
-
KeyRing.guestRegistryTag = 'guest_registry';
|
|
151
|
-
//# sourceMappingURL=keyring.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keyring.js","sourceRoot":"","sources":["../../../src/keyring/keyring.ts"],"names":[],"mappings":";;;AAAA,qEAAiE;AACjE,uCAAoC;AACpC,uCAAoC;AACpC,0CAA+C;AAQ/C,MAAM,UAAU,GAAG,iBAAiB,CAAC;AAOrC,mDAAmD;AACnD,MAAa,OAAO;IASlB,YAAoB,UAAsB,EAAE,aAA4B,EAAE,OAAa;QAH/E,cAAS,GAA2B,IAAI,GAAG,EAAE,CAAC;QAIpD,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAU;QACzB,MAAM,IAAI,GAAG,WAAI,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,MAAM,8BAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QAE1D,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAU,EAAE,YAAoB;QACtD,MAAM,MAAM,GAAkB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,aAAK,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACvD,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACnD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACjD,IAAI,GAAG,KAAK,UAAU,EAAE;gBACtB,MAAM,eAAe,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAe,CAAC,CAAC;aACtD;SACF;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IAChC,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM;QACV,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QACzE,OAAO,aAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;YACzC,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;gBACrB,OAAO,GAAG,CAAC;aACZ;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,SAAS,EAAE;YACb,OAAO,SAAS,CAAC,EAAE,CAAC;SACrB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU;IAEV,KAAK,CAAC,MAAM;QACV,MAAM,MAAM,GAAkB;YAC5B,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;SACtC,CAAC;QAEF,IAAI,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,EAAE;YAChC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;gBACzC,IAAI,GAAG,IAAI,KAAK,EAAE;oBAChB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;iBACxB;aACF;SACF;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAgB;QACpC,IAAI,CAAC,OAAO,GAAG,IAAI,WAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,YAAwB;QAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,WAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,YAAY,CAAC,CAAC,CAAC;QACtF,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE,SAAiB;QAChD,MAAM,MAAM,GAAG,aAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE;YAC3B,EAAE,EAAE,SAAS;YACb,GAAG,EAAE,MAAM;SACZ,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB;QAChC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAChC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;SACzB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAwB,CAAC;QAC1F,IAAI,CAAC,SAAS,EAAE;YACd,OAAO;SACR;aAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACxC,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;SACrD;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;SAC1D;IACH,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,aAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9F,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAgB,EAAE,OAAsB;QAC9E,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;YACtD,OAAO,IAAI,WAAI,CAAC,aAAa,CAAC,CAAC;SAChC;aAAM;YACL,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,IAAI,WAAI,CAAC,OAAO,CAAC,CAAC;YAClC,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3D,OAAO,OAAO,CAAC;SAChB;IACH,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IACpC,CAAC;;AAjKH,0BAkKC;AAjKiB,kBAAU,GAAG,UAAU,CAAC;AACxB,wBAAgB,GAAG,gBAAgB,CAAC"}
|
package/dist/cjs2/keys/keys.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Keys = void 0;
|
|
4
|
-
const utils_1 = require("../utils/utils");
|
|
5
|
-
/**
|
|
6
|
-
* A simple wrapper around a public/private keys pair.
|
|
7
|
-
* Stores keys in base64 format.
|
|
8
|
-
*/
|
|
9
|
-
class Keys {
|
|
10
|
-
constructor(keys) {
|
|
11
|
-
this.keys = keys;
|
|
12
|
-
if (typeof keys === 'string') {
|
|
13
|
-
const { boxPk, boxSk } = JSON.parse(keys);
|
|
14
|
-
this.keyPair = {
|
|
15
|
-
boxPk: utils_1.Utils.fromBase64(boxPk),
|
|
16
|
-
boxSk: utils_1.Utils.fromBase64(boxSk)
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
this.keyPair = keys;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
static isEqual(keys1, keys2) {
|
|
24
|
-
return keys1.toString() === keys2.toString();
|
|
25
|
-
}
|
|
26
|
-
toString() {
|
|
27
|
-
return JSON.stringify({
|
|
28
|
-
boxPk: this.publicKey,
|
|
29
|
-
boxSk: this.privateKey
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
get publicKey() {
|
|
33
|
-
return utils_1.Utils.toBase64(this.keyPair.boxPk);
|
|
34
|
-
}
|
|
35
|
-
get privateKey() {
|
|
36
|
-
return utils_1.Utils.toBase64(this.keyPair.boxSk);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
exports.Keys = Keys;
|
|
40
|
-
//# sourceMappingURL=keys.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/keys/keys.ts"],"names":[],"mappings":";;;AAAA,0CAA+C;AAG/C;;;GAGG;AACH,MAAa,IAAI;IAGf,YAAmB,IAAsB;QAAtB,SAAI,GAAJ,IAAI,CAAkB;QACvC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO,GAAG;gBACb,KAAK,EAAE,aAAK,CAAC,UAAU,CAAC,KAAK,CAAC;gBAC9B,KAAK,EAAE,aAAK,CAAC,UAAU,CAAC,KAAK,CAAC;aAC/B,CAAC;SACH;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;IACH,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,KAAW,EAAE,KAAW;QACrC,OAAO,KAAK,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,KAAK,EAAE,IAAI,CAAC,UAAU;SACvB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,SAAS;QACX,OAAO,aAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,aAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;CACF;AAjCD,oBAiCC"}
|