glow.ts 1.0.2 → 1.1.0

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.
Files changed (121) hide show
  1. package/README.md +6 -21
  2. package/dist/glow.cjs.js +4 -0
  3. package/dist/glow.cjs.js.map +1 -0
  4. package/dist/glow.es.js +993 -0
  5. package/dist/glow.es.js.map +1 -0
  6. package/dist/index.d.ts +544 -0
  7. package/package.json +34 -26
  8. package/dist/cjs2/config.js +0 -18
  9. package/dist/cjs2/config.js.map +0 -1
  10. package/dist/cjs2/crypto-storage/crypto-storage.js +0 -118
  11. package/dist/cjs2/crypto-storage/crypto-storage.js.map +0 -1
  12. package/dist/cjs2/crypto-storage/in-memory-storage.js +0 -36
  13. package/dist/cjs2/crypto-storage/in-memory-storage.js.map +0 -1
  14. package/dist/cjs2/crypto-storage/local-storage.driver.js +0 -36
  15. package/dist/cjs2/crypto-storage/local-storage.driver.js.map +0 -1
  16. package/dist/cjs2/crypto-storage/storage-driver.interface.js +0 -3
  17. package/dist/cjs2/crypto-storage/storage-driver.interface.js.map +0 -1
  18. package/dist/cjs2/index.js +0 -28
  19. package/dist/cjs2/index.js.map +0 -1
  20. package/dist/cjs2/keyring/keyring.js +0 -151
  21. package/dist/cjs2/keyring/keyring.js.map +0 -1
  22. package/dist/cjs2/keys/keys.js +0 -40
  23. package/dist/cjs2/keys/keys.js.map +0 -1
  24. package/dist/cjs2/mailbox/mailbox.js +0 -352
  25. package/dist/cjs2/mailbox/mailbox.js.map +0 -1
  26. package/dist/cjs2/nacl/encryption.helper.js +0 -101
  27. package/dist/cjs2/nacl/encryption.helper.js.map +0 -1
  28. package/dist/cjs2/nacl/js-nacl-driver.js +0 -110
  29. package/dist/cjs2/nacl/js-nacl-driver.js.map +0 -1
  30. package/dist/cjs2/nacl/keypair.interface.js +0 -3
  31. package/dist/cjs2/nacl/keypair.interface.js.map +0 -1
  32. package/dist/cjs2/nacl/nacl-driver.interface.js +0 -3
  33. package/dist/cjs2/nacl/nacl-driver.interface.js.map +0 -1
  34. package/dist/cjs2/nacl/nacl.js +0 -29
  35. package/dist/cjs2/nacl/nacl.js.map +0 -1
  36. package/dist/cjs2/relay/network-error.js +0 -12
  37. package/dist/cjs2/relay/network-error.js.map +0 -1
  38. package/dist/cjs2/relay/relay-factory.js +0 -22
  39. package/dist/cjs2/relay/relay-factory.js.map +0 -1
  40. package/dist/cjs2/relay/relay.js +0 -300
  41. package/dist/cjs2/relay/relay.js.map +0 -1
  42. package/dist/cjs2/utils/utils.js +0 -39
  43. package/dist/cjs2/utils/utils.js.map +0 -1
  44. package/dist/cjs2/zax.interface.js +0 -46
  45. package/dist/cjs2/zax.interface.js.map +0 -1
  46. package/dist/esm/config.js +0 -15
  47. package/dist/esm/config.js.map +0 -1
  48. package/dist/esm/crypto-storage/crypto-storage.js +0 -114
  49. package/dist/esm/crypto-storage/crypto-storage.js.map +0 -1
  50. package/dist/esm/crypto-storage/in-memory-storage.js +0 -32
  51. package/dist/esm/crypto-storage/in-memory-storage.js.map +0 -1
  52. package/dist/esm/crypto-storage/local-storage.driver.js +0 -32
  53. package/dist/esm/crypto-storage/local-storage.driver.js.map +0 -1
  54. package/dist/esm/crypto-storage/storage-driver.interface.js +0 -2
  55. package/dist/esm/crypto-storage/storage-driver.interface.js.map +0 -1
  56. package/dist/esm/index.js +0 -14
  57. package/dist/esm/index.js.map +0 -1
  58. package/dist/esm/keyring/keyring.js +0 -147
  59. package/dist/esm/keyring/keyring.js.map +0 -1
  60. package/dist/esm/keys/keys.js +0 -36
  61. package/dist/esm/keys/keys.js.map +0 -1
  62. package/dist/esm/mailbox/mailbox.js +0 -348
  63. package/dist/esm/mailbox/mailbox.js.map +0 -1
  64. package/dist/esm/nacl/encryption.helper.js +0 -97
  65. package/dist/esm/nacl/encryption.helper.js.map +0 -1
  66. package/dist/esm/nacl/js-nacl-driver.js +0 -106
  67. package/dist/esm/nacl/js-nacl-driver.js.map +0 -1
  68. package/dist/esm/nacl/keypair.interface.js +0 -2
  69. package/dist/esm/nacl/keypair.interface.js.map +0 -1
  70. package/dist/esm/nacl/nacl-driver.interface.js +0 -2
  71. package/dist/esm/nacl/nacl-driver.interface.js.map +0 -1
  72. package/dist/esm/nacl/nacl.js +0 -25
  73. package/dist/esm/nacl/nacl.js.map +0 -1
  74. package/dist/esm/relay/network-error.js +0 -8
  75. package/dist/esm/relay/network-error.js.map +0 -1
  76. package/dist/esm/relay/relay-factory.js +0 -18
  77. package/dist/esm/relay/relay-factory.js.map +0 -1
  78. package/dist/esm/relay/relay.js +0 -293
  79. package/dist/esm/relay/relay.js.map +0 -1
  80. package/dist/esm/utils/utils.js +0 -35
  81. package/dist/esm/utils/utils.js.map +0 -1
  82. package/dist/esm/zax.interface.js +0 -43
  83. package/dist/esm/zax.interface.js.map +0 -1
  84. package/dist/types/config.d.ts +0 -10
  85. package/dist/types/config.d.ts.map +0 -1
  86. package/dist/types/crypto-storage/crypto-storage.d.ts +0 -20
  87. package/dist/types/crypto-storage/crypto-storage.d.ts.map +0 -1
  88. package/dist/types/crypto-storage/in-memory-storage.d.ts +0 -17
  89. package/dist/types/crypto-storage/in-memory-storage.d.ts.map +0 -1
  90. package/dist/types/crypto-storage/local-storage.driver.d.ts +0 -15
  91. package/dist/types/crypto-storage/local-storage.driver.d.ts.map +0 -1
  92. package/dist/types/crypto-storage/storage-driver.interface.d.ts +0 -11
  93. package/dist/types/crypto-storage/storage-driver.interface.d.ts.map +0 -1
  94. package/dist/types/index.d.ts +0 -16
  95. package/dist/types/index.d.ts.map +0 -1
  96. package/dist/types/keyring/keyring.d.ts +0 -43
  97. package/dist/types/keyring/keyring.d.ts.map +0 -1
  98. package/dist/types/keys/keys.d.ts +0 -16
  99. package/dist/types/keys/keys.d.ts.map +0 -1
  100. package/dist/types/mailbox/mailbox.d.ts +0 -148
  101. package/dist/types/mailbox/mailbox.d.ts.map +0 -1
  102. package/dist/types/nacl/encryption.helper.d.ts +0 -37
  103. package/dist/types/nacl/encryption.helper.d.ts.map +0 -1
  104. package/dist/types/nacl/js-nacl-driver.d.ts +0 -39
  105. package/dist/types/nacl/js-nacl-driver.d.ts.map +0 -1
  106. package/dist/types/nacl/keypair.interface.d.ts +0 -5
  107. package/dist/types/nacl/keypair.interface.d.ts.map +0 -1
  108. package/dist/types/nacl/nacl-driver.interface.d.ts +0 -28
  109. package/dist/types/nacl/nacl-driver.interface.d.ts.map +0 -1
  110. package/dist/types/nacl/nacl.d.ts +0 -13
  111. package/dist/types/nacl/nacl.d.ts.map +0 -1
  112. package/dist/types/relay/network-error.d.ts +0 -6
  113. package/dist/types/relay/network-error.d.ts.map +0 -1
  114. package/dist/types/relay/relay-factory.d.ts +0 -10
  115. package/dist/types/relay/relay-factory.d.ts.map +0 -1
  116. package/dist/types/relay/relay.d.ts +0 -88
  117. package/dist/types/relay/relay.d.ts.map +0 -1
  118. package/dist/types/utils/utils.d.ts +0 -9
  119. package/dist/types/utils/utils.d.ts.map +0 -1
  120. package/dist/types/zax.interface.d.ts +0 -101
  121. package/dist/types/zax.interface.d.ts.map +0 -1
@@ -1,352 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Mailbox = void 0;
4
- const nacl_1 = require("../nacl/nacl");
5
- const encryption_helper_1 = require("../nacl/encryption.helper");
6
- const keyring_1 = require("../keyring/keyring");
7
- const utils_1 = require("../utils/utils");
8
- const zax_interface_1 = require("../zax.interface");
9
- const relay_factory_1 = require("../relay/relay-factory");
10
- const async_mutex_1 = require("async-mutex");
11
- /**
12
- * Mailbox class represents a wrapper around a Keyring that allows to exchange
13
- * encrypted messages with other Mailboxes via a relay
14
- */
15
- class Mailbox {
16
- constructor(naclDriver, keyRing, identity) {
17
- /**
18
- * each mailbox use it's own relays for connection
19
- * this gives possibility to connect different mailboxes to same server simultaneously
20
- * because they will use different session keys, tokens, server pub keys
21
- */
22
- this.relayFactory = new relay_factory_1.RelayFactory;
23
- this.relayConnectionMutexes = new Map();
24
- this.nacl = naclDriver;
25
- this.keyRing = keyRing;
26
- this.identity = identity;
27
- }
28
- static async new(identity) {
29
- return new Mailbox(nacl_1.NaCl.getInstance(), await keyring_1.KeyRing.new(identity), identity);
30
- }
31
- // ---------- Alternative initializers ----------
32
- /**
33
- * Create a Mailbox where the secret identity key is derived from a well-known seed
34
- */
35
- static async fromSeed(id, seed) {
36
- const mbx = await this.new(id);
37
- if (!(seed instanceof Uint8Array)) {
38
- seed = utils_1.Utils.encode_latin1(seed);
39
- }
40
- await mbx.keyRing.setCommFromSeed(seed);
41
- return mbx;
42
- }
43
- /**
44
- * Create a Mailbox from the known secret identity key
45
- */
46
- static async fromSecKey(id, rawSecretKey) {
47
- const mbx = await this.new(id);
48
- if (!(rawSecretKey instanceof Uint8Array)) {
49
- rawSecretKey = utils_1.Utils.fromBase64(rawSecretKey);
50
- }
51
- await mbx.keyRing.setCommFromSecKey(rawSecretKey);
52
- return mbx;
53
- }
54
- /**
55
- * Create a Mailbox from the backup string
56
- */
57
- static async fromBackup(identity, backup) {
58
- return new Mailbox(nacl_1.NaCl.getInstance(), await keyring_1.KeyRing.fromBackup(identity, backup), identity);
59
- }
60
- // ---------- Relay message commands (public API) ----------
61
- /**
62
- * Sends a free-form object to a guest we already have in our keyring. Set `encrypt` to `false` to
63
- * send a plaintext message. Returns a token that can be used with `messageStatus` command to check
64
- * the status of the message
65
- */
66
- async upload(url, guestKey, message, encrypt = true) {
67
- const relay = await this.prepareRelay(url);
68
- const guestPk = this.getGuestKey(guestKey);
69
- const payload = encrypt ? await this.encodeMessage(guestKey, message) : message;
70
- const toHpk = utils_1.Utils.toBase64(await this.nacl.h2(utils_1.Utils.fromBase64(guestPk)));
71
- const [token] = await this.runRelayCommand(relay, zax_interface_1.RelayCommand.upload, { to: toHpk, payload });
72
- return token;
73
- }
74
- /**
75
- * Downloads all messages from a relay, decrypts them with a relay key,
76
- * and then parses each message to find out if it's a text message, file message,
77
- * or if it can't be decrypted because HPK is missing in the keyring.
78
- * Returns an array of mixed messages
79
- */
80
- async download(url) {
81
- const relay = await this.prepareRelay(url);
82
- const response = await this.runRelayCommand(relay, zax_interface_1.RelayCommand.download);
83
- const messages = await this.decryptResponse(relay, response);
84
- const parsedMessages = [];
85
- for (const message of messages) {
86
- const senderTag = this.keyRing.getTagByHpk(message.from);
87
- if (!senderTag) {
88
- parsedMessages.push(await this.parsePlainMessage(message));
89
- }
90
- else if (message.kind === 'message') {
91
- parsedMessages.push(await this.parseTextMessage(message, senderTag));
92
- }
93
- else if (message.kind === 'file') {
94
- parsedMessages.push(await this.parseFileMessage(message, senderTag));
95
- }
96
- else {
97
- throw new Error('[Mailbox] download - Unknown message type');
98
- }
99
- }
100
- return parsedMessages;
101
- }
102
- /**
103
- * Marks a raw Zax message as one that can't be decrypted,
104
- * because sender's HPK is not found in the keyring
105
- */
106
- async parsePlainMessage({ data, time, from, nonce }) {
107
- return { data, time, from, nonce, kind: zax_interface_1.ZaxMessageKind.plain };
108
- }
109
- /**
110
- * Decrypts a message that represents uploaded file metadata
111
- */
112
- async parseFileMessage(message, senderTag) {
113
- const { nonce, ctext, uploadID } = JSON.parse(message.data);
114
- const rawData = await this.decodeMessage(senderTag, nonce, ctext);
115
- if (rawData === null) {
116
- throw new Error('[Mailbox] Failed to decode file message');
117
- }
118
- const data = JSON.parse(rawData);
119
- return { data, time: message.time, senderTag, uploadID, nonce, kind: zax_interface_1.ZaxMessageKind.file };
120
- }
121
- /**
122
- * Attempts to decrypt a regular encrypted Zax message. Returns plain message if it was sent encrypted
123
- */
124
- async parseTextMessage(message, senderTag) {
125
- let data = await this.decodeMessage(senderTag, message.nonce, message.data);
126
- // If the message was sent unencrypted, the line above will return `null`
127
- if (!data) {
128
- data = message.data;
129
- }
130
- return ({ data, time: message.time, senderTag, nonce: message.nonce, kind: zax_interface_1.ZaxMessageKind.message });
131
- }
132
- /**
133
- * Returns the number of messages in the mailbox on a given relay
134
- */
135
- async count(url) {
136
- const relay = await this.prepareRelay(url);
137
- const response = await this.runRelayCommand(relay, zax_interface_1.RelayCommand.count);
138
- return await this.decryptResponse(relay, response);
139
- }
140
- /**
141
- * Deletes messages from a relay given a list of base64 message nonces,
142
- * and returns the number of remaining messages
143
- */
144
- async delete(url, nonceList) {
145
- const relay = await this.prepareRelay(url);
146
- const [response] = await this.runRelayCommand(relay, zax_interface_1.RelayCommand.delete, { payload: nonceList });
147
- return parseInt(response, 10);
148
- }
149
- /**
150
- * Gets the status of a previously sent Zax message by a storage token.
151
- * Returns "time to live" in seconds or a negative value if it's not applicable.
152
- * See `MessageStatusResponse` values for reference
153
- */
154
- async messageStatus(url, storageToken) {
155
- const relay = await this.prepareRelay(url);
156
- const [response] = await this.runRelayCommand(relay, zax_interface_1.RelayCommand.messageStatus, { token: storageToken });
157
- const status = parseInt(response, 10);
158
- return status;
159
- }
160
- // ---------- Relay file commands (public API) ----------
161
- /**
162
- * Asks Zax to start a new upload session, and returns a unique file identifier
163
- * required to upload file chunks.
164
- */
165
- async startFileUpload(url, guest, rawMetadata) {
166
- const relay = await this.prepareRelay(url);
167
- const guestPk = this.getGuestKey(guest);
168
- const toHpk = utils_1.Utils.toBase64(await this.nacl.h2(utils_1.Utils.fromBase64(guestPk)));
169
- const secretKey = await this.nacl.random_bytes(this.nacl.crypto_secretbox_KEYBYTES);
170
- rawMetadata.skey = utils_1.Utils.toBase64(secretKey);
171
- const metadata = await this.encodeMessage(guest, JSON.stringify(rawMetadata));
172
- const response = await this.runRelayCommand(relay, zax_interface_1.RelayCommand.startFileUpload, {
173
- to: toHpk,
174
- file_size: rawMetadata.orig_size,
175
- metadata
176
- });
177
- const decrypted = await this.decryptResponse(relay, response);
178
- // append symmetric secret key (unique for this upload session) to the server response
179
- decrypted.skey = secretKey;
180
- return decrypted;
181
- }
182
- /**
183
- * Encrypts the file chunk symmetrically and transfers it to a relay
184
- */
185
- async uploadFileChunk(url, uploadID, chunk, part, totalParts, skey) {
186
- const relay = await this.prepareRelay(url);
187
- const encodedChunk = await encryption_helper_1.EncryptionHelper.encodeMessageSymmetric(chunk, skey);
188
- const response = await this.runRelayCommand(relay, zax_interface_1.RelayCommand.uploadFileChunk, {
189
- uploadID,
190
- part,
191
- last_chunk: (totalParts - 1 === part),
192
- nonce: encodedChunk.nonce
193
- }, encodedChunk.ctext); // do not encode file chunk contents, as it's already encoded with symmetric encryption
194
- return await this.decryptResponse(relay, response);
195
- }
196
- /**
197
- * Returns the status of a file upload by its relay-specific uploadID. Uploader can call it
198
- * to verify the correct transfer, and downloader can check if the file exists and retrieve
199
- * the number of chunks
200
- */
201
- async getFileStatus(url, uploadID) {
202
- const relay = await this.prepareRelay(url);
203
- const response = await this.runRelayCommand(relay, zax_interface_1.RelayCommand.fileStatus, { uploadID });
204
- return await this.decryptResponse(relay, response);
205
- }
206
- /**
207
- * Fetches the file metadata by uploadID, which was declared by the uploader
208
- */
209
- async getFileMetadata(url, uploadID) {
210
- const messages = await this.download(url);
211
- const fileMessage = messages
212
- .filter(message => message.kind === 'file')
213
- .find(message => message.uploadID === uploadID);
214
- return fileMessage === null || fileMessage === void 0 ? void 0 : fileMessage.data;
215
- }
216
- /**
217
- * Downloads a binary chunk of a file from a relay by a given uploadID. The total number of chunks
218
- * can be retrieved via a `getFileStatus` request
219
- */
220
- async downloadFileChunk(url, uploadID, part, skey) {
221
- if (!(skey instanceof Uint8Array)) {
222
- skey = utils_1.Utils.fromBase64(skey);
223
- }
224
- const relay = await this.prepareRelay(url);
225
- const response = await this.runRelayCommand(relay, zax_interface_1.RelayCommand.downloadFileChunk, { uploadID, part });
226
- const [nonce, ctext, fileCtext] = response;
227
- const decoded = await relay.decodeMessage(nonce, ctext);
228
- return await encryption_helper_1.EncryptionHelper.decodeMessageSymmetric(decoded.nonce, fileCtext, skey);
229
- }
230
- /**
231
- * Deletes a file from the relay (or all chunks uploaded so far, if the upload was not completed).
232
- * Can be called by either the sender or recipient
233
- */
234
- async deleteFile(url, uploadID) {
235
- const relay = await this.prepareRelay(url);
236
- const response = await this.runRelayCommand(relay, zax_interface_1.RelayCommand.deleteFile, { uploadID });
237
- return await this.decryptResponse(relay, response);
238
- }
239
- // ---------- Dealing with Relay ----------
240
- /**
241
- * Establishes a session, exchanges temp keys and proves our ownership of this
242
- * Mailbox to this specific relay. This is the first function to start
243
- * communications with any relay. Returns the number of messages in the mailbox
244
- */
245
- async connectToRelay(url) {
246
- const relay = this.relayFactory.getInstance(url);
247
- const connectionData = await relay.openConnection();
248
- const encryptedSignature = await this.encryptSignature(connectionData);
249
- const messagesNumber = await relay.prove(await relay.encodeMessage(JSON.stringify({
250
- pub_key: this.keyRing.getPubCommKey(),
251
- nonce: encryptedSignature.nonce,
252
- ctext: encryptedSignature.ctext
253
- })));
254
- return parseInt(messagesNumber, 10);
255
- }
256
- clearSession(url) {
257
- const relay = this.relayFactory.getInstance(url);
258
- relay.clearToken();
259
- relay.clearSession();
260
- }
261
- async encryptSignature(connection) {
262
- const privateKey = utils_1.Utils.fromBase64(this.keyRing.getPrivateCommKey());
263
- return await encryption_helper_1.EncryptionHelper.encodeMessage(connection.h2Signature, connection.relayPublicKey, privateKey);
264
- }
265
- /**
266
- * Gets a singleton Relay instance, and reconnects to a relay if a previous token has expired
267
- */
268
- async prepareRelay(url) {
269
- const relay = this.relayFactory.getInstance(url);
270
- /**
271
- * allow establishing only once connection for pair mailbox-relay
272
- */
273
- await this.getRelayConnectionMutex(url).runExclusive(async () => {
274
- if (!relay.isConnected) {
275
- await this.connectToRelay(url);
276
- }
277
- });
278
- return relay;
279
- }
280
- /**
281
- * Encrypts the payload of the command and sends it to a relay
282
- */
283
- async runRelayCommand(relay, command, params, ctext) {
284
- params = { cmd: command, ...params };
285
- const hpk = await this.keyRing.getHpk();
286
- const message = await relay.encodeMessage(JSON.stringify(params));
287
- return await relay.runCmd(command, hpk, message, ctext);
288
- }
289
- /**
290
- * Parses relay's response to a command, for those commands that expect an encrypted message in return.
291
- * Two lines of POST response will be nonce and ctext
292
- */
293
- async decryptResponse(relay, response) {
294
- const [nonce, ctext] = response;
295
- return await relay.decodeMessage(nonce, ctext);
296
- }
297
- // ---------- Message encoding / decoding ----------
298
- /**
299
- * Encodes `message` to the guest key of a guest already
300
- * added to the keyring
301
- */
302
- async encodeMessage(guest, message) {
303
- const guestPk = this.getGuestKey(guest);
304
- const privateKey = this.keyRing.getPrivateCommKey();
305
- return await encryption_helper_1.EncryptionHelper.encodeMessage(await this.nacl.encode_utf8(message), utils_1.Utils.fromBase64(guestPk), utils_1.Utils.fromBase64(privateKey));
306
- }
307
- /**
308
- * Decodes a ciphertext from a guest key already in our keyring with this nonce
309
- * @returns null if failed to decode
310
- */
311
- async decodeMessage(guest, nonce, ctext) {
312
- const guestPk = this.getGuestKey(guest);
313
- const privateKey = this.keyRing.getPrivateCommKey();
314
- let uint8ArrayCtext;
315
- try {
316
- uint8ArrayCtext = utils_1.Utils.fromBase64(ctext);
317
- }
318
- catch (err) {
319
- // looks like ctext was not encoded
320
- return null;
321
- }
322
- return await encryption_helper_1.EncryptionHelper.decodeMessage(utils_1.Utils.fromBase64(nonce), uint8ArrayCtext, utils_1.Utils.fromBase64(guestPk), utils_1.Utils.fromBase64(privateKey));
323
- }
324
- /**
325
- * Wrapper around `keyring.getGuestKey` that handles unknown guests
326
- */
327
- getGuestKey(guest) {
328
- const guestPk = this.keyRing.getGuestKey(guest);
329
- if (!guestPk) {
330
- throw new Error(`[Mailbox] Unknown guest ${guest}`);
331
- }
332
- return guestPk;
333
- }
334
- // ---------- Destroying Mailbox ----------
335
- /**
336
- * Deletes a Mailbox and all its data from local CryptoStorage. This is a very
337
- * destructive operation, use with caution - it will delete the Mailbox
338
- * keyring along with all stored public keys. To restore that information, you
339
- * will need to do another key exchange with all the guests on your keyring.
340
- */
341
- async selfDestruct() {
342
- await this.keyRing.selfDestruct();
343
- }
344
- getRelayConnectionMutex(url) {
345
- if (!this.relayConnectionMutexes.has(url)) {
346
- this.relayConnectionMutexes.set(url, new async_mutex_1.Mutex());
347
- }
348
- return this.relayConnectionMutexes.get(url);
349
- }
350
- }
351
- exports.Mailbox = Mailbox;
352
- //# sourceMappingURL=mailbox.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mailbox.js","sourceRoot":"","sources":["../../../src/mailbox/mailbox.ts"],"names":[],"mappings":"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"}
@@ -1,101 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EncryptionHelper = void 0;
4
- const nacl_1 = require("./nacl");
5
- const utils_1 = require("../utils/utils");
6
- /**
7
- * Includes several static helpers that are build on top of basic NaCl driver methods,
8
- * to avoid duplicating code in driver implementations.
9
- */
10
- class EncryptionHelper {
11
- constructor() { }
12
- /**
13
- * Encodes a binary message with `cryptobox`
14
- */
15
- static async encodeMessage(message, pkTo, skFrom, nonceData) {
16
- const nacl = nacl_1.NaCl.getInstance();
17
- const nonce = await this.makeNonce(nonceData);
18
- const ctext = await nacl.crypto_box(message, nonce, pkTo, skFrom);
19
- return {
20
- nonce: utils_1.Utils.toBase64(nonce),
21
- ctext: utils_1.Utils.toBase64(ctext)
22
- };
23
- }
24
- /**
25
- * Decodes a binary message with `cryptobox_open`
26
- * @returns null if failed to decode
27
- */
28
- static async decodeMessage(nonce, ctext, pkFrom, skTo) {
29
- const nacl = nacl_1.NaCl.getInstance();
30
- const data = await nacl.crypto_box_open(ctext, nonce, pkFrom, skTo);
31
- if (data) {
32
- return await nacl.decode_utf8(data);
33
- }
34
- return data;
35
- }
36
- /**
37
- * Encodes a binary message with `secretbox` (used for file chunk encryption)
38
- */
39
- static async encodeMessageSymmetric(message, secretKey) {
40
- const nacl = nacl_1.NaCl.getInstance();
41
- const nonce = await EncryptionHelper.makeNonce();
42
- const ctext = await nacl.crypto_secretbox(message, nonce, secretKey);
43
- return {
44
- nonce: utils_1.Utils.toBase64(nonce),
45
- ctext: utils_1.Utils.toBase64(ctext)
46
- };
47
- }
48
- /**
49
- * Decodes a binary message with `secretbox_open` (used for file chunk decryption)
50
- */
51
- static async decodeMessageSymmetric(nonce, ctext, secretKey) {
52
- const nacl = nacl_1.NaCl.getInstance();
53
- return await nacl.crypto_secretbox_open(utils_1.Utils.fromBase64(ctext), utils_1.Utils.fromBase64(nonce), secretKey);
54
- }
55
- // ---------- Nonce helper ----------
56
- /**
57
- * Makes a timestamp nonce that a relay expects for any crypto operations.
58
- * Timestamp is the first 8 bytes, the rest is random, unless custom `data`
59
- * is specified. `data` will be packed as next 4 bytes after timestamp.
60
- */
61
- static async makeNonce(data) {
62
- const nacl = nacl_1.NaCl.getInstance();
63
- const nonce = await nacl.crypto_box_random_nonce();
64
- let headerLen;
65
- if (nonce.length !== nacl.crypto_box_NONCEBYTES) {
66
- throw new Error('[Mailbox] Wrong crypto_box nonce length');
67
- }
68
- // split timestamp integer as an array of bytes
69
- headerLen = 8; // max timestamp size
70
- const aTime = this.itoa(Math.floor(Date.now() / 1000));
71
- if (data) {
72
- headerLen += 4; // extra 4 bytes for custom data
73
- }
74
- // zero out nonce header area
75
- nonce.fill(0, 0, headerLen);
76
- // copy the timestamp into the first 8 bytes of nonce
77
- nonce.set(aTime, 8 - aTime.length);
78
- // copy data if present
79
- if (data) {
80
- const aData = this.itoa(data);
81
- nonce.set(aData, 12 - aData.length);
82
- }
83
- return nonce;
84
- }
85
- /**
86
- * Splits an integer into an array of bytes
87
- */
88
- static itoa(num) {
89
- // calculate length first
90
- let hex = num.toString(16);
91
- hex = hex.length & 1 ? `0${hex}` : hex;
92
- const len = hex.length / 2;
93
- const byteArray = new Uint8Array(len);
94
- for (let j = 0, i = 0; i < hex.length; i += 2, j++) {
95
- byteArray[j] = parseInt(hex[i] + hex[i + 1], 16);
96
- }
97
- return byteArray;
98
- }
99
- }
100
- exports.EncryptionHelper = EncryptionHelper;
101
- //# sourceMappingURL=encryption.helper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encryption.helper.js","sourceRoot":"","sources":["../../../src/nacl/encryption.helper.ts"],"names":[],"mappings":"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"}
@@ -1,110 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.JsNaClDriver = void 0;
4
- const tweetnacl_1 = require("tweetnacl");
5
- const js_sha256_1 = require("js-sha256");
6
- const utils_1 = require("../utils/utils");
7
- /**
8
- * Implementation based on TweetNaCl.js: {@link https://github.com/dchest/tweetnacl-js}.
9
- * SHA256 is taken separately from `js-sha256` library, because TweetNacl only offers
10
- * SHA512 as hashing function, which is incompatible with the current Zax version.
11
- * {@link https://github.com/emn178/js-sha256}
12
- *
13
- * All the methods of this class are actually synchronous, but they are defined
14
- * as async to conform to the NaClDriver interface, which may have other implementations.
15
- */
16
- class JsNaClDriver {
17
- constructor() {
18
- this.crypto_secretbox_KEYBYTES = tweetnacl_1.secretbox.keyLength;
19
- this.crypto_box_NONCEBYTES = tweetnacl_1.box.nonceLength;
20
- }
21
- async crypto_secretbox_random_nonce() {
22
- return tweetnacl_1.randomBytes(tweetnacl_1.secretbox.nonceLength);
23
- }
24
- async crypto_secretbox(message, nonce, key) {
25
- return tweetnacl_1.secretbox(message, nonce, key);
26
- }
27
- async crypto_secretbox_open(box, nonce, key) {
28
- return tweetnacl_1.secretbox.open(box, nonce, key);
29
- }
30
- async crypto_box(message, nonce, pk, sk) {
31
- return tweetnacl_1.box(message, nonce, pk, sk);
32
- }
33
- async crypto_box_open(cipher, nonce, pk, sk) {
34
- return tweetnacl_1.box.open(cipher, nonce, pk, sk);
35
- }
36
- async crypto_box_random_nonce() {
37
- return tweetnacl_1.randomBytes(tweetnacl_1.box.nonceLength);
38
- }
39
- async crypto_box_keypair() {
40
- const pair = tweetnacl_1.box.keyPair();
41
- return {
42
- boxPk: pair.publicKey,
43
- boxSk: pair.secretKey
44
- };
45
- }
46
- async crypto_box_keypair_from_raw_sk(key) {
47
- const pair = tweetnacl_1.box.keyPair.fromSecretKey(key);
48
- return {
49
- boxPk: pair.publicKey,
50
- boxSk: pair.secretKey
51
- };
52
- }
53
- async crypto_box_keypair_from_seed(seed) {
54
- // using SHA512 to hash, per original NaCl docs
55
- return this.crypto_box_keypair_from_raw_sk(tweetnacl_1.hash(seed).subarray(0, tweetnacl_1.box.secretKeyLength));
56
- }
57
- async crypto_hash_sha256(data) {
58
- return this.from_hex(js_sha256_1.sha256(data));
59
- }
60
- async random_bytes(size) {
61
- return tweetnacl_1.randomBytes(size);
62
- }
63
- // Helper methods are based on `js-nacl` implementations
64
- // https://github.com/tonyg/js-nacl/blob/cc70775cfc9d68a04905ca65c7f179b33a18066e/nacl_cooked.js
65
- async encode_latin1(data) {
66
- return utils_1.Utils.encode_latin1(data);
67
- }
68
- async decode_latin1(data) {
69
- return utils_1.Utils.decode_latin1(data);
70
- }
71
- async encode_utf8(data) {
72
- return this.encode_latin1(unescape(encodeURIComponent(data)));
73
- }
74
- async decode_utf8(data) {
75
- return decodeURIComponent(escape(await this.decode_latin1(data)));
76
- }
77
- async to_hex(data) {
78
- const encoded = [];
79
- for (let i = 0; i < data.length; i++) {
80
- const hexAlphabet = '0123456789abcdef';
81
- encoded.push(hexAlphabet[(data[i] >> 4) & 15]);
82
- encoded.push(hexAlphabet[data[i] & 15]);
83
- }
84
- return encoded.join('');
85
- }
86
- async from_hex(data) {
87
- const result = new Uint8Array(data.length / 2);
88
- for (let i = 0; i < data.length / 2; i++) {
89
- result[i] = parseInt(data.substr(2 * i, 2), 16);
90
- }
91
- return result;
92
- }
93
- /**
94
- * h2(m) = sha256(sha256(64x0 + m))
95
- * Zero out initial sha256 block, and double hash 0-padded message
96
- * http://cs.nyu.edu/~dodis/ps/h-of-h.pdf
97
- */
98
- async h2(data) {
99
- if (!(data instanceof Uint8Array)) {
100
- data = await this.encode_latin1(data);
101
- }
102
- const zeroPaddingLength = 64;
103
- const extendedSource = new Uint8Array(zeroPaddingLength + data.length);
104
- extendedSource.fill(0);
105
- extendedSource.set(data, zeroPaddingLength);
106
- return this.crypto_hash_sha256(await this.crypto_hash_sha256(extendedSource));
107
- }
108
- }
109
- exports.JsNaClDriver = JsNaClDriver;
110
- //# sourceMappingURL=js-nacl-driver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"js-nacl-driver.js","sourceRoot":"","sources":["../../../src/nacl/js-nacl-driver.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=keypair.interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keypair.interface.js","sourceRoot":"","sources":["../../../src/nacl/keypair.interface.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=nacl-driver.interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nacl-driver.interface.js","sourceRoot":"","sources":["../../../src/nacl/nacl-driver.interface.ts"],"names":[],"mappings":""}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NaCl = void 0;
4
- const js_nacl_driver_1 = require("./js-nacl-driver");
5
- /**
6
- * Facade singleton to access the NaCl driver.
7
- * Usage: call instance() with a chosen driver, and store the received object to perform further actions.
8
- */
9
- class NaCl {
10
- constructor() { }
11
- static setDefaultInstance() {
12
- return this.setInstance(new js_nacl_driver_1.JsNaClDriver());
13
- }
14
- static setInstance(driver) {
15
- if (this.driverInstance) {
16
- throw new Error('[NaCl] NaCl driver has been already set, it is supposed to be set only once');
17
- }
18
- this.driverInstance = driver;
19
- return true;
20
- }
21
- static getInstance() {
22
- if (!this.driverInstance) {
23
- throw new Error('[NaCl] NaCl instance is not yet set');
24
- }
25
- return this.driverInstance;
26
- }
27
- }
28
- exports.NaCl = NaCl;
29
- //# sourceMappingURL=nacl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nacl.js","sourceRoot":"","sources":["../../../src/nacl/nacl.ts"],"names":[],"mappings":";;;AACA,qDAAgD;AAEhD;;;GAGG;AACH,MAAa,IAAI;IAGf,gBAAwB,CAAC;IAElB,MAAM,CAAC,kBAAkB;QAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,6BAAY,EAAE,CAAC,CAAC;IAC9C,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,MAAkB;QAC1C,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;SAChG;QACD,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAE7B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;SACxD;QAED,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;CACF;AAzBD,oBAyBC"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NetworkError = void 0;
4
- class NetworkError extends Error {
5
- constructor(status) {
6
- super(`NetworkError status: ${status}`);
7
- this.status = status;
8
- this.name = 'NetworkError';
9
- }
10
- }
11
- exports.NetworkError = NetworkError;
12
- //# sourceMappingURL=network-error.js.map