@digitaldefiance/node-ecies-lib 4.5.0 → 4.5.18
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/package.json +6 -2
- package/src/builders/ecies-builder.d.ts +0 -11
- package/src/builders/ecies-builder.d.ts.map +0 -1
- package/src/builders/ecies-builder.js +0 -26
- package/src/builders/ecies-builder.js.map +0 -1
- package/src/builders/index.d.ts +0 -3
- package/src/builders/index.d.ts.map +0 -1
- package/src/builders/index.js +0 -6
- package/src/builders/index.js.map +0 -1
- package/src/builders/member-builder.d.ts +0 -47
- package/src/builders/member-builder.d.ts.map +0 -1
- package/src/builders/member-builder.js +0 -99
- package/src/builders/member-builder.js.map +0 -1
- package/src/constants.d.ts +0 -38
- package/src/constants.d.ts.map +0 -1
- package/src/constants.js +0 -191
- package/src/constants.js.map +0 -1
- package/src/core/errors/crypto-error.d.ts +0 -6
- package/src/core/errors/crypto-error.d.ts.map +0 -1
- package/src/core/errors/crypto-error.js +0 -15
- package/src/core/errors/crypto-error.js.map +0 -1
- package/src/core/index.d.ts +0 -3
- package/src/core/index.d.ts.map +0 -1
- package/src/core/index.js +0 -6
- package/src/core/index.js.map +0 -1
- package/src/core/types/result.d.ts +0 -8
- package/src/core/types/result.d.ts.map +0 -1
- package/src/core/types/result.js +0 -3
- package/src/core/types/result.js.map +0 -1
- package/src/enumerations/index.d.ts +0 -2
- package/src/enumerations/index.d.ts.map +0 -1
- package/src/enumerations/index.js +0 -5
- package/src/enumerations/index.js.map +0 -1
- package/src/enumerations/pbkdf2-profile.d.ts +0 -9
- package/src/enumerations/pbkdf2-profile.d.ts.map +0 -1
- package/src/enumerations/pbkdf2-profile.js +0 -13
- package/src/enumerations/pbkdf2-profile.js.map +0 -1
- package/src/i18n/ecies-i18n-factory.d.ts +0 -28
- package/src/i18n/ecies-i18n-factory.d.ts.map +0 -1
- package/src/i18n/ecies-i18n-factory.js +0 -90
- package/src/i18n/ecies-i18n-factory.js.map +0 -1
- package/src/i18n/index.d.ts +0 -3
- package/src/i18n/index.d.ts.map +0 -1
- package/src/i18n/index.js +0 -8
- package/src/i18n/index.js.map +0 -1
- package/src/i18n/node-ecies-i18n-setup.d.ts +0 -5
- package/src/i18n/node-ecies-i18n-setup.d.ts.map +0 -1
- package/src/i18n/node-ecies-i18n-setup.js +0 -48
- package/src/i18n/node-ecies-i18n-setup.js.map +0 -1
- package/src/i18n/node-keys.d.ts +0 -57
- package/src/i18n/node-keys.d.ts.map +0 -1
- package/src/i18n/node-keys.js +0 -67
- package/src/i18n/node-keys.js.map +0 -1
- package/src/i18n/translations/de.d.ts +0 -3
- package/src/i18n/translations/de.d.ts.map +0 -1
- package/src/i18n/translations/de.js +0 -57
- package/src/i18n/translations/de.js.map +0 -1
- package/src/i18n/translations/en-GB.d.ts +0 -3
- package/src/i18n/translations/en-GB.d.ts.map +0 -1
- package/src/i18n/translations/en-GB.js +0 -61
- package/src/i18n/translations/en-GB.js.map +0 -1
- package/src/i18n/translations/en-US.d.ts +0 -6
- package/src/i18n/translations/en-US.d.ts.map +0 -1
- package/src/i18n/translations/en-US.js +0 -65
- package/src/i18n/translations/en-US.js.map +0 -1
- package/src/i18n/translations/es.d.ts +0 -3
- package/src/i18n/translations/es.d.ts.map +0 -1
- package/src/i18n/translations/es.js +0 -57
- package/src/i18n/translations/es.js.map +0 -1
- package/src/i18n/translations/fr.d.ts +0 -3
- package/src/i18n/translations/fr.d.ts.map +0 -1
- package/src/i18n/translations/fr.js +0 -57
- package/src/i18n/translations/fr.js.map +0 -1
- package/src/i18n/translations/index.d.ts +0 -9
- package/src/i18n/translations/index.d.ts.map +0 -1
- package/src/i18n/translations/index.js +0 -20
- package/src/i18n/translations/index.js.map +0 -1
- package/src/i18n/translations/ja.d.ts +0 -3
- package/src/i18n/translations/ja.d.ts.map +0 -1
- package/src/i18n/translations/ja.js +0 -57
- package/src/i18n/translations/ja.js.map +0 -1
- package/src/i18n/translations/uk.d.ts +0 -3
- package/src/i18n/translations/uk.d.ts.map +0 -1
- package/src/i18n/translations/uk.js +0 -57
- package/src/i18n/translations/uk.js.map +0 -1
- package/src/i18n/translations/zh-cn.d.ts +0 -3
- package/src/i18n/translations/zh-cn.d.ts.map +0 -1
- package/src/i18n/translations/zh-cn.js +0 -57
- package/src/i18n/translations/zh-cn.js.map +0 -1
- package/src/index.d.ts +0 -19
- package/src/index.d.ts.map +0 -1
- package/src/index.js +0 -31
- package/src/index.js.map +0 -1
- package/src/interfaces/authenticated-cipher.d.ts +0 -12
- package/src/interfaces/authenticated-cipher.d.ts.map +0 -1
- package/src/interfaces/authenticated-cipher.js +0 -3
- package/src/interfaces/authenticated-cipher.js.map +0 -1
- package/src/interfaces/authenticated-decipher.d.ts +0 -11
- package/src/interfaces/authenticated-decipher.d.ts.map +0 -1
- package/src/interfaces/authenticated-decipher.js +0 -3
- package/src/interfaces/authenticated-decipher.js.map +0 -1
- package/src/interfaces/backend-member-operational.d.ts +0 -48
- package/src/interfaces/backend-member-operational.d.ts.map +0 -1
- package/src/interfaces/backend-member-operational.js +0 -3
- package/src/interfaces/backend-member-operational.js.map +0 -1
- package/src/interfaces/checksum-config.d.ts +0 -5
- package/src/interfaces/checksum-config.d.ts.map +0 -1
- package/src/interfaces/checksum-config.js +0 -3
- package/src/interfaces/checksum-config.js.map +0 -1
- package/src/interfaces/checksum-consts.d.ts +0 -11
- package/src/interfaces/checksum-consts.d.ts.map +0 -1
- package/src/interfaces/checksum-consts.js +0 -3
- package/src/interfaces/checksum-consts.js.map +0 -1
- package/src/interfaces/constants.d.ts +0 -52
- package/src/interfaces/constants.d.ts.map +0 -1
- package/src/interfaces/constants.js +0 -3
- package/src/interfaces/constants.js.map +0 -1
- package/src/interfaces/ecies-consts.d.ts +0 -88
- package/src/interfaces/ecies-consts.d.ts.map +0 -1
- package/src/interfaces/ecies-consts.js +0 -3
- package/src/interfaces/ecies-consts.js.map +0 -1
- package/src/interfaces/encrypted-chunk.d.ts +0 -12
- package/src/interfaces/encrypted-chunk.d.ts.map +0 -1
- package/src/interfaces/encrypted-chunk.js +0 -3
- package/src/interfaces/encrypted-chunk.js.map +0 -1
- package/src/interfaces/encryption-consts.d.ts +0 -11
- package/src/interfaces/encryption-consts.d.ts.map +0 -1
- package/src/interfaces/encryption-consts.js +0 -3
- package/src/interfaces/encryption-consts.js.map +0 -1
- package/src/interfaces/index.d.ts +0 -29
- package/src/interfaces/index.d.ts.map +0 -1
- package/src/interfaces/index.js +0 -30
- package/src/interfaces/index.js.map +0 -1
- package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.d.ts +0 -6
- package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.d.ts.map +0 -1
- package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.js +0 -3
- package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.js.map +0 -1
- package/src/interfaces/keyring-consts.d.ts +0 -6
- package/src/interfaces/keyring-consts.d.ts.map +0 -1
- package/src/interfaces/keyring-consts.js +0 -3
- package/src/interfaces/keyring-consts.js.map +0 -1
- package/src/interfaces/member-with-mnemonic.d.ts +0 -7
- package/src/interfaces/member-with-mnemonic.d.ts.map +0 -1
- package/src/interfaces/member-with-mnemonic.js +0 -3
- package/src/interfaces/member-with-mnemonic.js.map +0 -1
- package/src/interfaces/member.d.ts +0 -54
- package/src/interfaces/member.d.ts.map +0 -1
- package/src/interfaces/member.js +0 -3
- package/src/interfaces/member.js.map +0 -1
- package/src/interfaces/multi-encrypted-message.d.ts +0 -8
- package/src/interfaces/multi-encrypted-message.d.ts.map +0 -1
- package/src/interfaces/multi-encrypted-message.js +0 -3
- package/src/interfaces/multi-encrypted-message.js.map +0 -1
- package/src/interfaces/multi-encrypted-parsed-header.d.ts +0 -27
- package/src/interfaces/multi-encrypted-parsed-header.d.ts.map +0 -1
- package/src/interfaces/multi-encrypted-parsed-header.js +0 -3
- package/src/interfaces/multi-encrypted-parsed-header.js.map +0 -1
- package/src/interfaces/multi-recipient-chunk.d.ts +0 -26
- package/src/interfaces/multi-recipient-chunk.d.ts.map +0 -1
- package/src/interfaces/multi-recipient-chunk.js +0 -15
- package/src/interfaces/multi-recipient-chunk.js.map +0 -1
- package/src/interfaces/pbkdf-profiles.d.ts +0 -6
- package/src/interfaces/pbkdf-profiles.d.ts.map +0 -1
- package/src/interfaces/pbkdf-profiles.js +0 -3
- package/src/interfaces/pbkdf-profiles.js.map +0 -1
- package/src/interfaces/pbkdf2-result.d.ts +0 -6
- package/src/interfaces/pbkdf2-result.d.ts.map +0 -1
- package/src/interfaces/pbkdf2-result.js +0 -3
- package/src/interfaces/pbkdf2-result.js.map +0 -1
- package/src/interfaces/signing-key-private-key-info.d.ts +0 -11
- package/src/interfaces/signing-key-private-key-info.d.ts.map +0 -1
- package/src/interfaces/signing-key-private-key-info.js +0 -3
- package/src/interfaces/signing-key-private-key-info.js.map +0 -1
- package/src/interfaces/simple-keypair-buffer.d.ts +0 -6
- package/src/interfaces/simple-keypair-buffer.d.ts.map +0 -1
- package/src/interfaces/simple-keypair-buffer.js +0 -3
- package/src/interfaces/simple-keypair-buffer.js.map +0 -1
- package/src/interfaces/simple-keypair.d.ts +0 -6
- package/src/interfaces/simple-keypair.d.ts.map +0 -1
- package/src/interfaces/simple-keypair.js +0 -3
- package/src/interfaces/simple-keypair.js.map +0 -1
- package/src/interfaces/simple-public-key-only-buffer.d.ts +0 -4
- package/src/interfaces/simple-public-key-only-buffer.d.ts.map +0 -1
- package/src/interfaces/simple-public-key-only-buffer.js +0 -3
- package/src/interfaces/simple-public-key-only-buffer.js.map +0 -1
- package/src/interfaces/simple-public-key-only.d.ts +0 -4
- package/src/interfaces/simple-public-key-only.d.ts.map +0 -1
- package/src/interfaces/simple-public-key-only.js +0 -3
- package/src/interfaces/simple-public-key-only.js.map +0 -1
- package/src/interfaces/single-encrypted-parsed-header.d.ts +0 -35
- package/src/interfaces/single-encrypted-parsed-header.d.ts.map +0 -1
- package/src/interfaces/single-encrypted-parsed-header.js +0 -3
- package/src/interfaces/single-encrypted-parsed-header.js.map +0 -1
- package/src/interfaces/stream-config.d.ts +0 -6
- package/src/interfaces/stream-config.d.ts.map +0 -1
- package/src/interfaces/stream-config.js +0 -8
- package/src/interfaces/stream-config.js.map +0 -1
- package/src/interfaces/stream-progress.d.ts +0 -8
- package/src/interfaces/stream-progress.d.ts.map +0 -1
- package/src/interfaces/stream-progress.js +0 -3
- package/src/interfaces/stream-progress.js.map +0 -1
- package/src/interfaces/wallet-seed.d.ts +0 -7
- package/src/interfaces/wallet-seed.d.ts.map +0 -1
- package/src/interfaces/wallet-seed.js +0 -3
- package/src/interfaces/wallet-seed.js.map +0 -1
- package/src/interfaces/wrapped-key-consts.d.ts +0 -7
- package/src/interfaces/wrapped-key-consts.d.ts.map +0 -1
- package/src/interfaces/wrapped-key-consts.js +0 -3
- package/src/interfaces/wrapped-key-consts.js.map +0 -1
- package/src/lib/crypto-container.d.ts +0 -13
- package/src/lib/crypto-container.d.ts.map +0 -1
- package/src/lib/crypto-container.js +0 -32
- package/src/lib/crypto-container.js.map +0 -1
- package/src/lib/index.d.ts +0 -4
- package/src/lib/index.d.ts.map +0 -1
- package/src/lib/index.js +0 -7
- package/src/lib/index.js.map +0 -1
- package/src/lib/invariant-validator.d.ts +0 -69
- package/src/lib/invariant-validator.d.ts.map +0 -1
- package/src/lib/invariant-validator.js +0 -98
- package/src/lib/invariant-validator.js.map +0 -1
- package/src/lib/invariants/index.d.ts +0 -8
- package/src/lib/invariants/index.d.ts.map +0 -1
- package/src/lib/invariants/index.js +0 -12
- package/src/lib/invariants/index.js.map +0 -1
- package/src/lib/invariants/recipient-id-consistency.d.ts +0 -41
- package/src/lib/invariants/recipient-id-consistency.d.ts.map +0 -1
- package/src/lib/invariants/recipient-id-consistency.js +0 -75
- package/src/lib/invariants/recipient-id-consistency.js.map +0 -1
- package/src/member.d.ts +0 -97
- package/src/member.d.ts.map +0 -1
- package/src/member.js +0 -322
- package/src/member.js.map +0 -1
- package/src/services/aes-gcm.d.ts +0 -66
- package/src/services/aes-gcm.d.ts.map +0 -1
- package/src/services/aes-gcm.js +0 -161
- package/src/services/aes-gcm.js.map +0 -1
- package/src/services/chunk-processor.d.ts +0 -15
- package/src/services/chunk-processor.d.ts.map +0 -1
- package/src/services/chunk-processor.js +0 -36
- package/src/services/chunk-processor.js.map +0 -1
- package/src/services/ecies/crypto-core.d.ts +0 -104
- package/src/services/ecies/crypto-core.d.ts.map +0 -1
- package/src/services/ecies/crypto-core.js +0 -234
- package/src/services/ecies/crypto-core.js.map +0 -1
- package/src/services/ecies/file.d.ts +0 -30
- package/src/services/ecies/file.d.ts.map +0 -1
- package/src/services/ecies/file.js +0 -112
- package/src/services/ecies/file.js.map +0 -1
- package/src/services/ecies/index.d.ts +0 -8
- package/src/services/ecies/index.d.ts.map +0 -1
- package/src/services/ecies/index.js +0 -11
- package/src/services/ecies/index.js.map +0 -1
- package/src/services/ecies/multi-recipient.d.ts +0 -84
- package/src/services/ecies/multi-recipient.d.ts.map +0 -1
- package/src/services/ecies/multi-recipient.js +0 -494
- package/src/services/ecies/multi-recipient.js.map +0 -1
- package/src/services/ecies/service.d.ts +0 -75
- package/src/services/ecies/service.d.ts.map +0 -1
- package/src/services/ecies/service.js +0 -152
- package/src/services/ecies/service.js.map +0 -1
- package/src/services/ecies/signature.d.ts +0 -38
- package/src/services/ecies/signature.d.ts.map +0 -1
- package/src/services/ecies/signature.js +0 -69
- package/src/services/ecies/signature.js.map +0 -1
- package/src/services/ecies/single-recipient.d.ts +0 -83
- package/src/services/ecies/single-recipient.d.ts.map +0 -1
- package/src/services/ecies/single-recipient.js +0 -448
- package/src/services/ecies/single-recipient.js.map +0 -1
- package/src/services/ecies/utilities.d.ts +0 -33
- package/src/services/ecies/utilities.d.ts.map +0 -1
- package/src/services/ecies/utilities.js +0 -91
- package/src/services/ecies/utilities.js.map +0 -1
- package/src/services/encryption-stream.d.ts +0 -33
- package/src/services/encryption-stream.d.ts.map +0 -1
- package/src/services/encryption-stream.js +0 -211
- package/src/services/encryption-stream.js.map +0 -1
- package/src/services/index.d.ts +0 -8
- package/src/services/index.d.ts.map +0 -1
- package/src/services/index.js +0 -11
- package/src/services/index.js.map +0 -1
- package/src/services/multi-recipient-processor.d.ts +0 -72
- package/src/services/multi-recipient-processor.d.ts.map +0 -1
- package/src/services/multi-recipient-processor.js +0 -321
- package/src/services/multi-recipient-processor.js.map +0 -1
- package/src/services/pbkdf2.d.ts +0 -105
- package/src/services/pbkdf2.d.ts.map +0 -1
- package/src/services/pbkdf2.js +0 -191
- package/src/services/pbkdf2.js.map +0 -1
- package/src/services/progress-tracker.d.ts +0 -9
- package/src/services/progress-tracker.d.ts.map +0 -1
- package/src/services/progress-tracker.js +0 -41
- package/src/services/progress-tracker.js.map +0 -1
- package/src/services/voting.service.d.ts +0 -232
- package/src/services/voting.service.d.ts.map +0 -1
- package/src/services/voting.service.js +0 -589
- package/src/services/voting.service.js.map +0 -1
- package/src/test-mocks/index.d.ts +0 -2
- package/src/test-mocks/index.d.ts.map +0 -1
- package/src/test-mocks/index.js +0 -5
- package/src/test-mocks/index.js.map +0 -1
- package/src/test-mocks/mock-backend-member.d.ts +0 -76
- package/src/test-mocks/mock-backend-member.d.ts.map +0 -1
- package/src/test-mocks/mock-backend-member.js +0 -139
- package/src/test-mocks/mock-backend-member.js.map +0 -1
- package/src/testing.d.ts +0 -2
- package/src/testing.d.ts.map +0 -1
- package/src/testing.js +0 -6
- package/src/testing.js.map +0 -1
- package/src/types/id-guards.d.ts +0 -39
- package/src/types/id-guards.d.ts.map +0 -1
- package/src/types/id-guards.js +0 -91
- package/src/types/id-guards.js.map +0 -1
- package/src/types/index.d.ts +0 -2
- package/src/types/index.d.ts.map +0 -1
- package/src/types/index.js +0 -5
- package/src/types/index.js.map +0 -1
- package/src/types.d.ts +0 -26
- package/src/types.d.ts.map +0 -1
- package/src/types.js +0 -6
- package/src/types.js.map +0 -1
- package/src/utils.d.ts +0 -11
- package/src/utils.d.ts.map +0 -1
- package/src/utils.js +0 -82
- package/src/utils.js.map +0 -1
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EciesFileService = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const fs = tslib_1.__importStar(require("fs"));
|
|
6
|
-
class EciesFileService {
|
|
7
|
-
eciesService;
|
|
8
|
-
userPrivateKey;
|
|
9
|
-
config;
|
|
10
|
-
constructor(eciesService, userPrivateKey, config = {
|
|
11
|
-
chunkSize: 1024 * 1024, // 1MB chunks
|
|
12
|
-
headerSize: 20,
|
|
13
|
-
}) {
|
|
14
|
-
this.eciesService = eciesService;
|
|
15
|
-
this.userPrivateKey = userPrivateKey;
|
|
16
|
-
this.config = Object.freeze(config);
|
|
17
|
-
}
|
|
18
|
-
decryptFile(encryptedData) {
|
|
19
|
-
const { header, chunks } = this.parseEncryptedFile(encryptedData);
|
|
20
|
-
const decryptedChunks = [];
|
|
21
|
-
for (const chunk of chunks) {
|
|
22
|
-
const decrypted = this.eciesService.decryptSimpleOrSingleWithHeader(false, this.userPrivateKey, chunk);
|
|
23
|
-
decryptedChunks.push(decrypted);
|
|
24
|
-
}
|
|
25
|
-
const result = Buffer.alloc(header.originalSize);
|
|
26
|
-
let offset = 0;
|
|
27
|
-
for (const chunk of decryptedChunks) {
|
|
28
|
-
const copyLength = Math.min(chunk.length, header.originalSize - offset);
|
|
29
|
-
chunk.copy(result, offset, 0, copyLength);
|
|
30
|
-
offset += copyLength;
|
|
31
|
-
}
|
|
32
|
-
return result;
|
|
33
|
-
}
|
|
34
|
-
encryptFileFromPath(filePath, recipientPublicKey) {
|
|
35
|
-
const stats = fs.statSync(filePath);
|
|
36
|
-
const totalChunks = Math.ceil(stats.size / this.config.chunkSize);
|
|
37
|
-
const header = {
|
|
38
|
-
version: 1,
|
|
39
|
-
chunkSize: this.config.chunkSize,
|
|
40
|
-
totalChunks,
|
|
41
|
-
originalSize: stats.size,
|
|
42
|
-
};
|
|
43
|
-
const headerBytes = this.serializeHeader(header);
|
|
44
|
-
const encryptedHeader = this.eciesService.encryptSimpleOrSingle(false, recipientPublicKey, headerBytes);
|
|
45
|
-
const chunks = [encryptedHeader];
|
|
46
|
-
const fd = fs.openSync(filePath, 'r');
|
|
47
|
-
try {
|
|
48
|
-
for (let i = 0; i < totalChunks; i++) {
|
|
49
|
-
const offset = i * this.config.chunkSize;
|
|
50
|
-
const chunkSize = Math.min(this.config.chunkSize, stats.size - offset);
|
|
51
|
-
const chunkData = Buffer.alloc(chunkSize);
|
|
52
|
-
fs.readSync(fd, chunkData, 0, chunkSize, offset);
|
|
53
|
-
const encryptedChunk = this.eciesService.encryptSimpleOrSingle(false, recipientPublicKey, chunkData);
|
|
54
|
-
chunks.push(encryptedChunk);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
finally {
|
|
58
|
-
fs.closeSync(fd);
|
|
59
|
-
}
|
|
60
|
-
return Buffer.concat(chunks);
|
|
61
|
-
}
|
|
62
|
-
decryptFileToPath(encryptedData, outputPath) {
|
|
63
|
-
const { header, chunks } = this.parseEncryptedFile(encryptedData);
|
|
64
|
-
const fd = fs.openSync(outputPath, 'w');
|
|
65
|
-
let offset = 0;
|
|
66
|
-
try {
|
|
67
|
-
for (const chunk of chunks) {
|
|
68
|
-
const decrypted = this.eciesService.decryptSimpleOrSingleWithHeader(false, this.userPrivateKey, chunk);
|
|
69
|
-
const writeLength = Math.min(decrypted.length, header.originalSize - offset);
|
|
70
|
-
fs.writeSync(fd, decrypted, 0, writeLength, offset);
|
|
71
|
-
offset += writeLength;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
finally {
|
|
75
|
-
fs.closeSync(fd);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
serializeHeader(header) {
|
|
79
|
-
const buffer = Buffer.alloc(this.config.headerSize);
|
|
80
|
-
buffer.writeUInt32BE(header.version, 0);
|
|
81
|
-
buffer.writeUInt32BE(header.chunkSize, 4);
|
|
82
|
-
buffer.writeUInt32BE(header.totalChunks, 8);
|
|
83
|
-
buffer.writeUInt32BE(header.originalSize, 12);
|
|
84
|
-
return buffer;
|
|
85
|
-
}
|
|
86
|
-
deserializeHeader(data) {
|
|
87
|
-
return {
|
|
88
|
-
version: data.readUInt32BE(0),
|
|
89
|
-
chunkSize: data.readUInt32BE(4),
|
|
90
|
-
totalChunks: data.readUInt32BE(8),
|
|
91
|
-
originalSize: data.readUInt32BE(12),
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
parseEncryptedFile(encryptedData) {
|
|
95
|
-
const headerLength = this.eciesService.computeEncryptedLengthFromDataLength(this.config.headerSize, 'single');
|
|
96
|
-
const encryptedHeader = encryptedData.subarray(0, headerLength);
|
|
97
|
-
const decryptedHeaderBytes = this.eciesService.decryptSimpleOrSingleWithHeader(false, this.userPrivateKey, encryptedHeader);
|
|
98
|
-
const header = this.deserializeHeader(decryptedHeaderBytes);
|
|
99
|
-
const chunks = [];
|
|
100
|
-
let offset = headerLength;
|
|
101
|
-
for (let i = 0; i < header.totalChunks; i++) {
|
|
102
|
-
const chunkLength = this.eciesService.computeEncryptedLengthFromDataLength(i === header.totalChunks - 1
|
|
103
|
-
? header.originalSize % header.chunkSize || header.chunkSize
|
|
104
|
-
: header.chunkSize, 'single');
|
|
105
|
-
chunks.push(encryptedData.subarray(offset, offset + chunkLength));
|
|
106
|
-
offset += chunkLength;
|
|
107
|
-
}
|
|
108
|
-
return { header, chunks };
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
exports.EciesFileService = EciesFileService;
|
|
112
|
-
//# sourceMappingURL=file.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/services/ecies/file.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/services/ecies/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./crypto-core"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./file"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./multi-recipient"), exports);
|
|
7
|
-
tslib_1.__exportStar(require("./service"), exports);
|
|
8
|
-
tslib_1.__exportStar(require("./signature"), exports);
|
|
9
|
-
tslib_1.__exportStar(require("./single-recipient"), exports);
|
|
10
|
-
tslib_1.__exportStar(require("./utilities"), exports);
|
|
11
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/services/ecies/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,iDAAuB;AACvB,4DAAkC;AAClC,oDAA0B;AAC1B,sDAA4B;AAC5B,6DAAmC;AACnC,sDAA4B"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import type { IMember } from '../../interfaces/member';
|
|
2
|
-
import { IMultiEncryptedMessage } from '../../interfaces/multi-encrypted-message';
|
|
3
|
-
import { IMultiEncryptedParsedHeader } from '../../interfaces/multi-encrypted-parsed-header';
|
|
4
|
-
import { EciesCryptoCore } from './crypto-core';
|
|
5
|
-
import { EciesSingleRecipientCore } from './single-recipient';
|
|
6
|
-
/**
|
|
7
|
-
* Multiple recipient encryption/decryption functions for ECIES
|
|
8
|
-
*/
|
|
9
|
-
export declare class EciesMultiRecipient {
|
|
10
|
-
protected readonly cryptoCore: EciesCryptoCore;
|
|
11
|
-
protected readonly singleRecipientCore: EciesSingleRecipientCore;
|
|
12
|
-
constructor(cryptoCore: EciesCryptoCore);
|
|
13
|
-
/**
|
|
14
|
-
* Get the size of the header for a given encryption type
|
|
15
|
-
* @param recipientCount The number of recipients
|
|
16
|
-
* @returns
|
|
17
|
-
*/
|
|
18
|
-
getHeaderSize(recipientCount: number): number;
|
|
19
|
-
/**
|
|
20
|
-
* Encrypt a message symmetric key with a public key
|
|
21
|
-
* @param receiverPublicKey The public key of the receiver
|
|
22
|
-
* @param messageSymmetricKey The message to encrypt
|
|
23
|
-
* @param ephemeralPrivateKey The ephemeral private key to use for encryption
|
|
24
|
-
* @param aad Additional Authenticated Data (optional)
|
|
25
|
-
* @returns The encrypted message
|
|
26
|
-
*/
|
|
27
|
-
encryptKey(receiverPublicKey: Buffer, messageSymmetricKey: Buffer, ephemeralPrivateKey: Buffer, aad?: Buffer): Buffer;
|
|
28
|
-
/**
|
|
29
|
-
* Decrypts symmetric key encrypted with ECIES using a header
|
|
30
|
-
* @param privateKey The private key to decrypt the data
|
|
31
|
-
* @param encryptedKey The data to decrypt
|
|
32
|
-
* @param ephemeralPublicKey The ephemeral public key from the header
|
|
33
|
-
* @param aad Additional Authenticated Data (optional)
|
|
34
|
-
* @returns The decrypted data buffer
|
|
35
|
-
*/
|
|
36
|
-
decryptKey(privateKey: Buffer, encryptedKey: Buffer, ephemeralPublicKey: Buffer, aad?: Buffer): Buffer;
|
|
37
|
-
/**
|
|
38
|
-
* Encrypts a message for multiple recipients.
|
|
39
|
-
* @param recipients The recipients to encrypt the message for.
|
|
40
|
-
* @param message The message to encrypt.
|
|
41
|
-
* @param preamble Optional preamble to include in the encrypted message.
|
|
42
|
-
* @param senderPrivateKey Optional sender private key for signing.
|
|
43
|
-
* @returns The encrypted message.
|
|
44
|
-
* @throws EciesError if the number of recipients is greater than 65535.
|
|
45
|
-
*/
|
|
46
|
-
encryptMultiple(recipients: IMember[], message: Buffer, preamble?: Buffer, senderPrivateKey?: Buffer): IMultiEncryptedMessage;
|
|
47
|
-
/**
|
|
48
|
-
* Decrypts a message encrypted with multiple ECIE for a recipient.
|
|
49
|
-
* @param encryptedData The encrypted data.
|
|
50
|
-
* @param recipient The recipient.
|
|
51
|
-
* @param senderPublicKey Optional sender public key for verification.
|
|
52
|
-
* @returns The decrypted message.
|
|
53
|
-
*/
|
|
54
|
-
decryptMultipleECIEForRecipient(encryptedData: IMultiEncryptedMessage, recipient: IMember, senderPublicKey?: Buffer): Buffer;
|
|
55
|
-
/**
|
|
56
|
-
* Calculate the overhead for a message encrypted for multiple recipients
|
|
57
|
-
* @param recipientCount number of recipients
|
|
58
|
-
* @param includeMessageOverhead whether to include the overhead for the encrypted message
|
|
59
|
-
* @param encryptedKeys optional array of encrypted keys to calculate actual size
|
|
60
|
-
* @returns the overhead size in bytes
|
|
61
|
-
*/
|
|
62
|
-
calculateECIESMultipleRecipientOverhead(recipientCount: number, includeMessageOverhead: boolean, encryptedKeys?: Buffer[]): number;
|
|
63
|
-
/**
|
|
64
|
-
* Builds the header for a message encrypted for multiple recipients
|
|
65
|
-
* @param data The encrypted message data including recipients and encrypted keys
|
|
66
|
-
* @returns The header buffer for the message
|
|
67
|
-
* @throws EciesError if the number of recipients is greater than the maximum allowed
|
|
68
|
-
* @throws EciesError if the number of encrypted keys does not match the number of recipients
|
|
69
|
-
*/
|
|
70
|
-
buildECIESMultipleRecipientHeader(data: IMultiEncryptedMessage): Buffer;
|
|
71
|
-
/**
|
|
72
|
-
* Parses a multi-encrypted header.
|
|
73
|
-
* @param data - The data to parse.
|
|
74
|
-
* @returns The parsed header.
|
|
75
|
-
*/
|
|
76
|
-
parseMultiEncryptedHeader(data: Buffer): IMultiEncryptedParsedHeader;
|
|
77
|
-
/**
|
|
78
|
-
* Parses a multi-encrypted buffer into its components.
|
|
79
|
-
* @param data - The multi-encrypted buffer to parse.
|
|
80
|
-
* @returns The parsed multi-encrypted buffer.
|
|
81
|
-
*/
|
|
82
|
-
parseMultiEncryptedBuffer(data: Buffer): IMultiEncryptedMessage;
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=multi-recipient.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"multi-recipient.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/services/ecies/multi-recipient.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAE7F,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE9D;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IAC/C,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;gBAErD,UAAU,EAAE,eAAe;IAKvC;;;;OAIG;IACI,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;IAapD;;;;;;;OAOG;IACI,UAAU,CACf,iBAAiB,EAAE,MAAM,EACzB,mBAAmB,EAAE,MAAM,EAC3B,mBAAmB,EAAE,MAAM,EAC3B,GAAG,CAAC,EAAE,MAAM,GACX,MAAM;IA+ET;;;;;;;OAOG;IACI,UAAU,CACf,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,EAC1B,GAAG,CAAC,EAAE,MAAM,GACX,MAAM;IAuET;;;;;;;;OAQG;IACI,eAAe,CACpB,UAAU,EAAE,OAAO,EAAE,EACrB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,MAAM,GACxB,sBAAsB;IAiHzB;;;;;;OAMG;IACI,+BAA+B,CACpC,aAAa,EAAE,sBAAsB,EACrC,SAAS,EAAE,OAAO,EAClB,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM;IAwFT;;;;;;OAMG;IACI,uCAAuC,CAC5C,cAAc,EAAE,MAAM,EACtB,sBAAsB,EAAE,OAAO,EAC/B,aAAa,CAAC,EAAE,MAAM,EAAE,GACvB,MAAM;IAgCT;;;;;;OAMG;IACI,iCAAiC,CACtC,IAAI,EAAE,sBAAsB,GAC3B,MAAM;IA8GT;;;;OAIG;IACI,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,2BAA2B;IAkJ3E;;;;OAIG;IACI,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB;CASvE"}
|