@eluvio/elv-client-js 4.0.8 → 4.0.9
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/dist/ElvClient-min.js +10 -11
- package/dist/ElvClient-node-min.js +10 -11
- package/dist/ElvFrameClient-min.js +10 -11
- package/dist/ElvPermissionsClient-min.js +9 -10
- package/dist/ElvWalletClient-min.js +10 -11
- package/dist/ElvWalletClient-node-min.js +9 -10
- package/dist/src/AuthorizationClient.js +2069 -1548
- package/dist/src/ContentObjectVerification.js +185 -134
- package/dist/src/Crypto.js +323 -226
- package/dist/src/ElvClient.js +1118 -824
- package/dist/src/ElvWallet.js +106 -64
- package/dist/src/EthClient.js +974 -719
- package/dist/src/FrameClient.js +318 -222
- package/dist/src/HttpClient.js +154 -112
- package/dist/src/Id.js +6 -1
- package/dist/src/LogMessage.js +8 -4
- package/dist/src/PermissionsClient.js +1271 -973
- package/dist/src/RemoteSigner.js +232 -161
- package/dist/src/UserProfileClient.js +1038 -781
- package/dist/src/Utils.js +302 -160
- package/dist/src/Validation.js +17 -2
- package/dist/src/client/ABRPublishing.js +942 -772
- package/dist/src/client/AccessGroups.js +1095 -849
- package/dist/src/client/ContentAccess.js +4198 -3272
- package/dist/src/client/ContentManagement.js +2284 -1812
- package/dist/src/client/Contracts.js +614 -468
- package/dist/src/client/Files.js +1831 -1491
- package/dist/src/client/NFT.js +116 -94
- package/dist/src/client/NTP.js +425 -326
- package/dist/src/index.js +5 -2
- package/dist/src/walletClient/ClientMethods.js +1766 -1350
- package/dist/src/walletClient/Configuration.js +2 -4
- package/dist/src/walletClient/Notifications.js +127 -98
- package/dist/src/walletClient/Profile.js +246 -184
- package/dist/src/walletClient/Utils.js +124 -78
- package/dist/src/walletClient/index.js +1498 -1169
- package/package.json +1 -1
- package/src/client/ContentAccess.js +27 -10
- package/src/walletClient/ClientMethods.js +18 -10
- package/src/walletClient/index.js +7 -2
package/dist/src/Crypto.js
CHANGED
|
@@ -1,67 +1,92 @@
|
|
|
1
1
|
var _regeneratorRuntime = require("@babel/runtime/regenerator");
|
|
2
|
+
|
|
2
3
|
var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
|
|
3
|
-
|
|
4
|
+
|
|
5
|
+
if (typeof globalThis.Buffer === "undefined") {
|
|
6
|
+
globalThis.Buffer = require("buffer/").Buffer;
|
|
7
|
+
}
|
|
8
|
+
|
|
4
9
|
var bs58 = require("bs58");
|
|
10
|
+
|
|
5
11
|
var Stream = require("stream");
|
|
12
|
+
|
|
6
13
|
var Utils = require("./Utils");
|
|
14
|
+
|
|
7
15
|
if (typeof crypto === "undefined") {
|
|
8
16
|
var _crypto = require("crypto");
|
|
17
|
+
|
|
9
18
|
_crypto.getRandomValues = function (arr) {
|
|
10
19
|
return _crypto.randomBytes(arr.length);
|
|
11
20
|
};
|
|
12
|
-
|
|
21
|
+
|
|
22
|
+
globalThis.crypto = _crypto;
|
|
13
23
|
}
|
|
24
|
+
|
|
14
25
|
var _ElvCrypto;
|
|
26
|
+
|
|
15
27
|
switch (Utils.Platform()) {
|
|
16
28
|
case Utils.PLATFORM_REACT_NATIVE:
|
|
17
29
|
_ElvCrypto = require("@eluvio/crypto/dist/elv-crypto.bundle.externals")["default"];
|
|
18
30
|
break;
|
|
31
|
+
|
|
19
32
|
case Utils.PLATFORM_WEB:
|
|
20
33
|
_ElvCrypto = require("@eluvio/crypto/dist/elv-crypto.bundle.externals")["default"];
|
|
21
34
|
break;
|
|
35
|
+
|
|
22
36
|
default:
|
|
23
37
|
_ElvCrypto = require("@eluvio/crypto/dist/elv-crypto.bundle.node")["default"];
|
|
24
38
|
break;
|
|
25
39
|
}
|
|
26
|
-
|
|
27
40
|
/**
|
|
28
41
|
* @namespace
|
|
29
42
|
* @description This namespace contains cryptographic helper methods to encrypt and decrypt
|
|
30
43
|
* data with automatic handling of keys
|
|
31
44
|
*/
|
|
45
|
+
|
|
46
|
+
|
|
32
47
|
var Crypto = {
|
|
33
48
|
ElvCrypto: function () {
|
|
34
49
|
var _ElvCrypto2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
35
50
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
36
|
-
while (1)
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
51
|
+
while (1) {
|
|
52
|
+
switch (_context.prev = _context.next) {
|
|
53
|
+
case 0:
|
|
54
|
+
_context.prev = 0;
|
|
55
|
+
|
|
56
|
+
if (Crypto.elvCrypto) {
|
|
57
|
+
_context.next = 5;
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
_context.next = 4;
|
|
62
|
+
return new _ElvCrypto().init();
|
|
63
|
+
|
|
64
|
+
case 4:
|
|
65
|
+
Crypto.elvCrypto = _context.sent;
|
|
66
|
+
|
|
67
|
+
case 5:
|
|
68
|
+
return _context.abrupt("return", Crypto.elvCrypto);
|
|
69
|
+
|
|
70
|
+
case 8:
|
|
71
|
+
_context.prev = 8;
|
|
72
|
+
_context.t0 = _context["catch"](0);
|
|
73
|
+
// eslint-disable-next-line no-console
|
|
74
|
+
console.error("Error initializing ElvCrypto:"); // eslint-disable-next-line no-console
|
|
75
|
+
|
|
76
|
+
console.error(_context.t0);
|
|
77
|
+
|
|
78
|
+
case 12:
|
|
79
|
+
case "end":
|
|
80
|
+
return _context.stop();
|
|
81
|
+
}
|
|
59
82
|
}
|
|
60
83
|
}, _callee, null, [[0, 8]]);
|
|
61
84
|
}));
|
|
85
|
+
|
|
62
86
|
function ElvCrypto() {
|
|
63
87
|
return _ElvCrypto2.apply(this, arguments);
|
|
64
88
|
}
|
|
89
|
+
|
|
65
90
|
return ElvCrypto;
|
|
66
91
|
}(),
|
|
67
92
|
EncryptedSize: function EncryptedSize(clearSize) {
|
|
@@ -69,9 +94,11 @@ var Crypto = {
|
|
|
69
94
|
var blocks = Math.floor(clearSize / clearBlockSize);
|
|
70
95
|
var encryptedBlockSize = Crypto.EncryptedBlockSize(clearBlockSize);
|
|
71
96
|
var encryptedFileSize = blocks * encryptedBlockSize;
|
|
97
|
+
|
|
72
98
|
if (clearSize % clearBlockSize !== 0) {
|
|
73
99
|
encryptedFileSize += Crypto.EncryptedBlockSize(clearSize % clearBlockSize);
|
|
74
100
|
}
|
|
101
|
+
|
|
75
102
|
return encryptedFileSize;
|
|
76
103
|
},
|
|
77
104
|
EncryptedBlockSize: function EncryptedBlockSize(clearSize) {
|
|
@@ -82,35 +109,43 @@ var Crypto = {
|
|
|
82
109
|
var clearElementByteSize = 12 * (MODBYTES_384_58 - 1);
|
|
83
110
|
var encElementByteSize = 12 * MODBYTES_384_58;
|
|
84
111
|
var encryptedBlockSize = Math.floor(clearSize / clearElementByteSize) * encElementByteSize;
|
|
112
|
+
|
|
85
113
|
if (clearSize % clearElementByteSize !== 0) {
|
|
86
114
|
encryptedBlockSize += encElementByteSize;
|
|
87
115
|
}
|
|
116
|
+
|
|
88
117
|
return reencrypt ? encryptedBlockSize + targetEncBlockOverhead : encryptedBlockSize + primaryEncBlockOverhead;
|
|
89
118
|
},
|
|
90
119
|
EncryptConk: function EncryptConk(conk, publicKey) {
|
|
91
120
|
return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
92
121
|
var elvCrypto, _yield$elvCrypto$encr, data, ephemeralKey, tag, cap;
|
|
122
|
+
|
|
93
123
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
94
|
-
while (1)
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
124
|
+
while (1) {
|
|
125
|
+
switch (_context2.prev = _context2.next) {
|
|
126
|
+
case 0:
|
|
127
|
+
_context2.next = 2;
|
|
128
|
+
return Crypto.ElvCrypto();
|
|
129
|
+
|
|
130
|
+
case 2:
|
|
131
|
+
elvCrypto = _context2.sent;
|
|
132
|
+
publicKey = new Uint8Array(Buffer.from(publicKey.replace("0x", ""), "hex"));
|
|
133
|
+
conk = new Uint8Array(Buffer.from(JSON.stringify(conk)));
|
|
134
|
+
_context2.next = 7;
|
|
135
|
+
return elvCrypto.encryptECIES(conk, publicKey);
|
|
136
|
+
|
|
137
|
+
case 7:
|
|
138
|
+
_yield$elvCrypto$encr = _context2.sent;
|
|
139
|
+
data = _yield$elvCrypto$encr.data;
|
|
140
|
+
ephemeralKey = _yield$elvCrypto$encr.ephemeralKey;
|
|
141
|
+
tag = _yield$elvCrypto$encr.tag;
|
|
142
|
+
cap = Buffer.concat([Buffer.from(ephemeralKey), Buffer.from(tag), Buffer.from(data)]);
|
|
143
|
+
return _context2.abrupt("return", Utils.B64(cap));
|
|
144
|
+
|
|
145
|
+
case 13:
|
|
146
|
+
case "end":
|
|
147
|
+
return _context2.stop();
|
|
148
|
+
}
|
|
114
149
|
}
|
|
115
150
|
}, _callee2);
|
|
116
151
|
}))();
|
|
@@ -119,22 +154,26 @@ var Crypto = {
|
|
|
119
154
|
return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
|
|
120
155
|
var elvCrypto, ephemeralKey, tag, data, cap;
|
|
121
156
|
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
122
|
-
while (1)
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
157
|
+
while (1) {
|
|
158
|
+
switch (_context3.prev = _context3.next) {
|
|
159
|
+
case 0:
|
|
160
|
+
_context3.next = 2;
|
|
161
|
+
return Crypto.ElvCrypto();
|
|
162
|
+
|
|
163
|
+
case 2:
|
|
164
|
+
elvCrypto = _context3.sent;
|
|
165
|
+
privateKey = new Uint8Array(Buffer.from(privateKey.replace("0x", ""), "hex"));
|
|
166
|
+
encryptedCap = Buffer.from(encryptedCap, "base64");
|
|
167
|
+
ephemeralKey = encryptedCap.slice(0, 65);
|
|
168
|
+
tag = encryptedCap.slice(65, 81);
|
|
169
|
+
data = encryptedCap.slice(81);
|
|
170
|
+
cap = elvCrypto.decryptECIES(new Uint8Array(data), privateKey, new Uint8Array(ephemeralKey), new Uint8Array(tag));
|
|
171
|
+
return _context3.abrupt("return", JSON.parse(Buffer.from(cap).toString()));
|
|
172
|
+
|
|
173
|
+
case 10:
|
|
174
|
+
case "end":
|
|
175
|
+
return _context3.stop();
|
|
176
|
+
}
|
|
138
177
|
}
|
|
139
178
|
}, _callee3);
|
|
140
179
|
}))();
|
|
@@ -142,26 +181,31 @@ var Crypto = {
|
|
|
142
181
|
GeneratePrimaryConk: function GeneratePrimaryConk(_ref) {
|
|
143
182
|
return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
|
|
144
183
|
var spaceId, objectId, elvCrypto, _elvCrypto$generatePr, secretKey, publicKey, symmetricKey;
|
|
184
|
+
|
|
145
185
|
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
146
|
-
while (1)
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
186
|
+
while (1) {
|
|
187
|
+
switch (_context4.prev = _context4.next) {
|
|
188
|
+
case 0:
|
|
189
|
+
spaceId = _ref.spaceId, objectId = _ref.objectId;
|
|
190
|
+
_context4.next = 3;
|
|
191
|
+
return Crypto.ElvCrypto();
|
|
192
|
+
|
|
193
|
+
case 3:
|
|
194
|
+
elvCrypto = _context4.sent;
|
|
195
|
+
_elvCrypto$generatePr = elvCrypto.generatePrimaryKeys(), secretKey = _elvCrypto$generatePr.secretKey, publicKey = _elvCrypto$generatePr.publicKey;
|
|
196
|
+
symmetricKey = elvCrypto.generateSymmetricKey().key;
|
|
197
|
+
return _context4.abrupt("return", {
|
|
198
|
+
symm_key: "kpsy".concat(bs58.encode(Buffer.from(symmetricKey))),
|
|
199
|
+
secret_key: "kpsk".concat(bs58.encode(Buffer.from(secretKey))),
|
|
200
|
+
public_key: "kppk".concat(bs58.encode(Buffer.from(publicKey))),
|
|
201
|
+
sid: spaceId,
|
|
202
|
+
qid: objectId
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
case 7:
|
|
206
|
+
case "end":
|
|
207
|
+
return _context4.stop();
|
|
208
|
+
}
|
|
165
209
|
}
|
|
166
210
|
}, _callee4);
|
|
167
211
|
}))();
|
|
@@ -169,21 +213,26 @@ var Crypto = {
|
|
|
169
213
|
GenerateTargetConk: function GenerateTargetConk() {
|
|
170
214
|
return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
|
|
171
215
|
var elvCrypto, _elvCrypto$generateTa, secretKey, publicKey;
|
|
216
|
+
|
|
172
217
|
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
173
|
-
while (1)
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
218
|
+
while (1) {
|
|
219
|
+
switch (_context5.prev = _context5.next) {
|
|
220
|
+
case 0:
|
|
221
|
+
_context5.next = 2;
|
|
222
|
+
return Crypto.ElvCrypto();
|
|
223
|
+
|
|
224
|
+
case 2:
|
|
225
|
+
elvCrypto = _context5.sent;
|
|
226
|
+
_elvCrypto$generateTa = elvCrypto.generateTargetKeys(), secretKey = _elvCrypto$generateTa.secretKey, publicKey = _elvCrypto$generateTa.publicKey;
|
|
227
|
+
return _context5.abrupt("return", {
|
|
228
|
+
secret_key: "kpsk".concat(bs58.encode(Buffer.from(secretKey))),
|
|
229
|
+
public_key: "ktpk".concat(bs58.encode(Buffer.from(publicKey)))
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
case 5:
|
|
233
|
+
case "end":
|
|
234
|
+
return _context5.stop();
|
|
235
|
+
}
|
|
187
236
|
}
|
|
188
237
|
}, _callee5);
|
|
189
238
|
}))();
|
|
@@ -192,6 +241,7 @@ var Crypto = {
|
|
|
192
241
|
var keyToBytes = function keyToBytes(key) {
|
|
193
242
|
return new Uint8Array(bs58.decode(key.slice(4)));
|
|
194
243
|
};
|
|
244
|
+
|
|
195
245
|
return {
|
|
196
246
|
symmetricKey: keyToBytes(cap.symm_key),
|
|
197
247
|
secretKey: keyToBytes(cap.secret_key),
|
|
@@ -201,34 +251,42 @@ var Crypto = {
|
|
|
201
251
|
EncryptionContext: function EncryptionContext(cap) {
|
|
202
252
|
return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {
|
|
203
253
|
var elvCrypto, _Crypto$CapToConk, symmetricKey, secretKey, publicKey, context, type;
|
|
254
|
+
|
|
204
255
|
return _regeneratorRuntime.wrap(function _callee6$(_context6) {
|
|
205
|
-
while (1)
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
256
|
+
while (1) {
|
|
257
|
+
switch (_context6.prev = _context6.next) {
|
|
258
|
+
case 0:
|
|
259
|
+
_context6.next = 2;
|
|
260
|
+
return Crypto.ElvCrypto();
|
|
261
|
+
|
|
262
|
+
case 2:
|
|
263
|
+
elvCrypto = _context6.sent;
|
|
264
|
+
_Crypto$CapToConk = Crypto.CapToConk(cap), symmetricKey = _Crypto$CapToConk.symmetricKey, secretKey = _Crypto$CapToConk.secretKey, publicKey = _Crypto$CapToConk.publicKey;
|
|
265
|
+
|
|
266
|
+
if (publicKey.length === elvCrypto.PRIMARY_PK_KEY_SIZE) {
|
|
267
|
+
// Primary context
|
|
268
|
+
type = elvCrypto.CRYPTO_TYPE_PRIMARY;
|
|
269
|
+
context = elvCrypto.newPrimaryContext(publicKey, secretKey, symmetricKey);
|
|
270
|
+
} else {
|
|
271
|
+
// Target context
|
|
272
|
+
type = elvCrypto.CRYPTO_TYPE_TARGET;
|
|
273
|
+
context = elvCrypto.newTargetDecryptionContext(secretKey, symmetricKey);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
return _context6.abrupt("return", {
|
|
277
|
+
context: context,
|
|
278
|
+
type: type
|
|
279
|
+
});
|
|
280
|
+
|
|
281
|
+
case 6:
|
|
282
|
+
case "end":
|
|
283
|
+
return _context6.stop();
|
|
284
|
+
}
|
|
228
285
|
}
|
|
229
286
|
}, _callee6);
|
|
230
287
|
}))();
|
|
231
288
|
},
|
|
289
|
+
|
|
232
290
|
/**
|
|
233
291
|
* Encrypt data with headers
|
|
234
292
|
*
|
|
@@ -242,86 +300,108 @@ var Crypto = {
|
|
|
242
300
|
var _Encrypt = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(cap, data) {
|
|
243
301
|
var stream, dataArray, i, end, encryptedChunks;
|
|
244
302
|
return _regeneratorRuntime.wrap(function _callee7$(_context7) {
|
|
245
|
-
while (1)
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
303
|
+
while (1) {
|
|
304
|
+
switch (_context7.prev = _context7.next) {
|
|
305
|
+
case 0:
|
|
306
|
+
_context7.next = 2;
|
|
307
|
+
return Crypto.OpenEncryptionStream(cap);
|
|
308
|
+
|
|
309
|
+
case 2:
|
|
310
|
+
stream = _context7.sent;
|
|
311
|
+
|
|
312
|
+
if (!(!Buffer.isBuffer(data) && !(data instanceof ArrayBuffer))) {
|
|
313
|
+
_context7.next = 9;
|
|
314
|
+
break;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
_context7.t0 = Buffer;
|
|
318
|
+
_context7.next = 7;
|
|
319
|
+
return new Response(data).arrayBuffer();
|
|
320
|
+
|
|
321
|
+
case 7:
|
|
322
|
+
_context7.t1 = _context7.sent;
|
|
323
|
+
data = _context7.t0.from.call(_context7.t0, _context7.t1);
|
|
324
|
+
|
|
325
|
+
case 9:
|
|
326
|
+
dataArray = new Uint8Array(data);
|
|
327
|
+
|
|
328
|
+
for (i = 0; i < dataArray.length; i += 1000000) {
|
|
329
|
+
end = Math.min(dataArray.length, i + 1000000);
|
|
330
|
+
stream.write(dataArray.slice(i, end));
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
stream.end();
|
|
334
|
+
encryptedChunks = [];
|
|
335
|
+
_context7.next = 15;
|
|
336
|
+
return new Promise(function (resolve, reject) {
|
|
337
|
+
stream.on("data", function (chunk) {
|
|
338
|
+
encryptedChunks.push(chunk);
|
|
339
|
+
}).on("finish", function () {
|
|
340
|
+
resolve();
|
|
341
|
+
}).on("error", function (e) {
|
|
342
|
+
reject(e);
|
|
343
|
+
});
|
|
277
344
|
});
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
345
|
+
|
|
346
|
+
case 15:
|
|
347
|
+
return _context7.abrupt("return", Buffer.concat(encryptedChunks));
|
|
348
|
+
|
|
349
|
+
case 16:
|
|
350
|
+
case "end":
|
|
351
|
+
return _context7.stop();
|
|
352
|
+
}
|
|
284
353
|
}
|
|
285
354
|
}, _callee7);
|
|
286
355
|
}));
|
|
356
|
+
|
|
287
357
|
function Encrypt(_x, _x2) {
|
|
288
358
|
return _Encrypt.apply(this, arguments);
|
|
289
359
|
}
|
|
360
|
+
|
|
290
361
|
return Encrypt;
|
|
291
362
|
}(),
|
|
292
363
|
OpenEncryptionStream: function () {
|
|
293
364
|
var _OpenEncryptionStream = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(cap) {
|
|
294
365
|
var elvCrypto, _yield$Crypto$Encrypt, context, stream, cipher;
|
|
366
|
+
|
|
295
367
|
return _regeneratorRuntime.wrap(function _callee8$(_context8) {
|
|
296
|
-
while (1)
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
368
|
+
while (1) {
|
|
369
|
+
switch (_context8.prev = _context8.next) {
|
|
370
|
+
case 0:
|
|
371
|
+
_context8.next = 2;
|
|
372
|
+
return Crypto.ElvCrypto();
|
|
373
|
+
|
|
374
|
+
case 2:
|
|
375
|
+
elvCrypto = _context8.sent;
|
|
376
|
+
_context8.next = 5;
|
|
377
|
+
return Crypto.EncryptionContext(cap);
|
|
378
|
+
|
|
379
|
+
case 5:
|
|
380
|
+
_yield$Crypto$Encrypt = _context8.sent;
|
|
381
|
+
context = _yield$Crypto$Encrypt.context;
|
|
382
|
+
stream = new Stream.PassThrough();
|
|
383
|
+
cipher = elvCrypto.createCipher(context);
|
|
384
|
+
return _context8.abrupt("return", stream.pipe(cipher).on("finish", function () {
|
|
385
|
+
context.free();
|
|
386
|
+
}).on("error", function (e) {
|
|
387
|
+
throw Error(e);
|
|
388
|
+
}));
|
|
389
|
+
|
|
390
|
+
case 10:
|
|
391
|
+
case "end":
|
|
392
|
+
return _context8.stop();
|
|
393
|
+
}
|
|
317
394
|
}
|
|
318
395
|
}, _callee8);
|
|
319
396
|
}));
|
|
397
|
+
|
|
320
398
|
function OpenEncryptionStream(_x3) {
|
|
321
399
|
return _OpenEncryptionStream.apply(this, arguments);
|
|
322
400
|
}
|
|
401
|
+
|
|
323
402
|
return OpenEncryptionStream;
|
|
324
403
|
}(),
|
|
404
|
+
|
|
325
405
|
/**
|
|
326
406
|
* Decrypt data with headers
|
|
327
407
|
*
|
|
@@ -335,74 +415,91 @@ var Crypto = {
|
|
|
335
415
|
var _Decrypt = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(cap, encryptedData) {
|
|
336
416
|
var stream, dataArray, i, end, decryptedChunks;
|
|
337
417
|
return _regeneratorRuntime.wrap(function _callee9$(_context9) {
|
|
338
|
-
while (1)
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
stream.
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
418
|
+
while (1) {
|
|
419
|
+
switch (_context9.prev = _context9.next) {
|
|
420
|
+
case 0:
|
|
421
|
+
_context9.next = 2;
|
|
422
|
+
return Crypto.OpenDecryptionStream(cap);
|
|
423
|
+
|
|
424
|
+
case 2:
|
|
425
|
+
stream = _context9.sent;
|
|
426
|
+
dataArray = new Uint8Array(encryptedData);
|
|
427
|
+
|
|
428
|
+
for (i = 0; i < dataArray.length; i += 1000000) {
|
|
429
|
+
end = Math.min(dataArray.length, i + 1000000);
|
|
430
|
+
stream.write(dataArray.slice(i, end));
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
stream.end();
|
|
434
|
+
decryptedChunks = [];
|
|
435
|
+
_context9.next = 9;
|
|
436
|
+
return new Promise(function (resolve, reject) {
|
|
437
|
+
stream.on("data", function (chunk) {
|
|
438
|
+
decryptedChunks.push(chunk);
|
|
439
|
+
}).on("finish", function () {
|
|
440
|
+
resolve();
|
|
441
|
+
}).on("error", function (e) {
|
|
442
|
+
reject(e);
|
|
443
|
+
});
|
|
359
444
|
});
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
445
|
+
|
|
446
|
+
case 9:
|
|
447
|
+
return _context9.abrupt("return", Buffer.concat(decryptedChunks));
|
|
448
|
+
|
|
449
|
+
case 10:
|
|
450
|
+
case "end":
|
|
451
|
+
return _context9.stop();
|
|
452
|
+
}
|
|
366
453
|
}
|
|
367
454
|
}, _callee9);
|
|
368
455
|
}));
|
|
456
|
+
|
|
369
457
|
function Decrypt(_x4, _x5) {
|
|
370
458
|
return _Decrypt.apply(this, arguments);
|
|
371
459
|
}
|
|
460
|
+
|
|
372
461
|
return Decrypt;
|
|
373
462
|
}(),
|
|
374
463
|
OpenDecryptionStream: function () {
|
|
375
464
|
var _OpenDecryptionStream = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(cap) {
|
|
376
465
|
var elvCrypto, _yield$Crypto$Encrypt2, context, type, stream, decipher;
|
|
466
|
+
|
|
377
467
|
return _regeneratorRuntime.wrap(function _callee10$(_context10) {
|
|
378
|
-
while (1)
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
468
|
+
while (1) {
|
|
469
|
+
switch (_context10.prev = _context10.next) {
|
|
470
|
+
case 0:
|
|
471
|
+
_context10.next = 2;
|
|
472
|
+
return Crypto.ElvCrypto();
|
|
473
|
+
|
|
474
|
+
case 2:
|
|
475
|
+
elvCrypto = _context10.sent;
|
|
476
|
+
_context10.next = 5;
|
|
477
|
+
return Crypto.EncryptionContext(cap);
|
|
478
|
+
|
|
479
|
+
case 5:
|
|
480
|
+
_yield$Crypto$Encrypt2 = _context10.sent;
|
|
481
|
+
context = _yield$Crypto$Encrypt2.context;
|
|
482
|
+
type = _yield$Crypto$Encrypt2.type;
|
|
483
|
+
stream = new Stream.PassThrough();
|
|
484
|
+
decipher = elvCrypto.createDecipher(type, context);
|
|
485
|
+
return _context10.abrupt("return", stream.pipe(decipher).on("finish", function () {
|
|
486
|
+
context.free();
|
|
487
|
+
}).on("error", function (e) {
|
|
488
|
+
throw Error(e);
|
|
489
|
+
}));
|
|
490
|
+
|
|
491
|
+
case 11:
|
|
492
|
+
case "end":
|
|
493
|
+
return _context10.stop();
|
|
494
|
+
}
|
|
400
495
|
}
|
|
401
496
|
}, _callee10);
|
|
402
497
|
}));
|
|
498
|
+
|
|
403
499
|
function OpenDecryptionStream(_x6) {
|
|
404
500
|
return _OpenDecryptionStream.apply(this, arguments);
|
|
405
501
|
}
|
|
502
|
+
|
|
406
503
|
return OpenDecryptionStream;
|
|
407
504
|
}()
|
|
408
505
|
};
|