@digitaldefiance/ecies-lib 1.1.14 → 1.1.15
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 +5 -0
- package/dist/constants.js +68 -57
- package/dist/constants.js.map +1 -1
- package/dist/email-string.js +16 -9
- package/dist/email-string.js.map +1 -1
- package/dist/enumerations/ecies-encryption-type.js +27 -20
- package/dist/enumerations/ecies-encryption-type.js.map +1 -1
- package/dist/enumerations/ecies-error-type.js +5 -2
- package/dist/enumerations/ecies-error-type.js.map +1 -1
- package/dist/enumerations/ecies-string-key.js +5 -2
- package/dist/enumerations/ecies-string-key.js.map +1 -1
- package/dist/enumerations/guid-brand-type.js +5 -2
- package/dist/enumerations/guid-brand-type.js.map +1 -1
- package/dist/enumerations/guid-error-type.js +5 -2
- package/dist/enumerations/guid-error-type.js.map +1 -1
- package/dist/enumerations/index.js +30 -14
- package/dist/enumerations/index.js.map +1 -1
- package/dist/enumerations/invalid-email-type.js +5 -2
- package/dist/enumerations/invalid-email-type.js.map +1 -1
- package/dist/enumerations/length-encoding-type.js +5 -2
- package/dist/enumerations/length-encoding-type.js.map +1 -1
- package/dist/enumerations/length-error-type.js +5 -2
- package/dist/enumerations/length-error-type.js.map +1 -1
- package/dist/enumerations/member-error-type.js +6 -3
- package/dist/enumerations/member-error-type.js.map +1 -1
- package/dist/enumerations/member-type.js +6 -3
- package/dist/enumerations/member-type.js.map +1 -1
- package/dist/enumerations/password-login-error-type.js +5 -2
- package/dist/enumerations/password-login-error-type.js.map +1 -1
- package/dist/enumerations/pbkdf2-error-type.js +5 -2
- package/dist/enumerations/pbkdf2-error-type.js.map +1 -1
- package/dist/enumerations/pbkdf2-profile.js +5 -2
- package/dist/enumerations/pbkdf2-profile.js.map +1 -1
- package/dist/enumerations/secure-storage-error-type.js +5 -2
- package/dist/enumerations/secure-storage-error-type.js.map +1 -1
- package/dist/errors/disposed.js +8 -4
- package/dist/errors/disposed.js.map +1 -1
- package/dist/errors/ecies.js +11 -7
- package/dist/errors/ecies.js.map +1 -1
- package/dist/errors/guid.js +9 -5
- package/dist/errors/guid.js.map +1 -1
- package/dist/errors/handleable.js +5 -1
- package/dist/errors/handleable.js.map +1 -1
- package/dist/errors/index.js +27 -11
- package/dist/errors/index.js.map +1 -1
- package/dist/errors/invalid-email.js +9 -5
- package/dist/errors/invalid-email.js.map +1 -1
- package/dist/errors/length.js +9 -5
- package/dist/errors/length.js.map +1 -1
- package/dist/errors/member.js +9 -5
- package/dist/errors/member.js.map +1 -1
- package/dist/errors/pbkdf2.js +9 -5
- package/dist/errors/pbkdf2.js.map +1 -1
- package/dist/errors/secure-storage.js +9 -5
- package/dist/errors/secure-storage.js.map +1 -1
- package/dist/errors/simple-ecies.js +9 -5
- package/dist/errors/simple-ecies.js.map +1 -1
- package/dist/errors/simple-test-error.js +5 -1
- package/dist/errors/simple-test-error.js.map +1 -1
- package/dist/errors/translatable.js +6 -2
- package/dist/errors/translatable.js.map +1 -1
- package/dist/errors/typed-handleable.js +9 -5
- package/dist/errors/typed-handleable.js.map +1 -1
- package/dist/guid.js +113 -76
- package/dist/guid.js.map +1 -1
- package/dist/i18n-setup.js +675 -665
- package/dist/i18n-setup.js.map +1 -1
- package/dist/index.js +30 -14
- package/dist/index.js.map +1 -1
- package/dist/interfaces/checksum-config.js +2 -1
- package/dist/interfaces/checksum-consts.js +2 -1
- package/dist/interfaces/constants.js +2 -1
- package/dist/interfaces/ecies-config.js +2 -1
- package/dist/interfaces/ecies-consts.js +2 -1
- package/dist/interfaces/ecies-file-service.js +2 -1
- package/dist/interfaces/guid.js +2 -1
- package/dist/interfaces/handleable-error-options.js +2 -1
- package/dist/interfaces/handleable.js +2 -1
- package/dist/interfaces/index.js +31 -15
- package/dist/interfaces/index.js.map +1 -1
- package/dist/interfaces/library-error.js +2 -1
- package/dist/interfaces/member-operational.js +2 -1
- package/dist/interfaces/member-storage.js +2 -1
- package/dist/interfaces/member-with-mnemonic.js +2 -1
- package/dist/interfaces/pbkdf2-config.js +2 -1
- package/dist/interfaces/pbkdf2-consts.js +2 -1
- package/dist/interfaces/pbkdf2-result.js +2 -1
- package/dist/member.js +44 -37
- package/dist/member.js.map +1 -1
- package/dist/pbkdf2-profiles.js +2 -1
- package/dist/regexes.js +5 -2
- package/dist/regexes.js.map +1 -1
- package/dist/secure-buffer.js +22 -18
- package/dist/secure-buffer.js.map +1 -1
- package/dist/secure-string.js +24 -20
- package/dist/secure-string.js.map +1 -1
- package/dist/services/aes-gcm.js +13 -9
- package/dist/services/aes-gcm.js.map +1 -1
- package/dist/services/ecies/crypto-core.js +35 -31
- package/dist/services/ecies/crypto-core.js.map +1 -1
- package/dist/services/ecies/example.js +44 -37
- package/dist/services/ecies/example.js.map +1 -1
- package/dist/services/ecies/file.js +5 -1
- package/dist/services/ecies/file.js.map +1 -1
- package/dist/services/ecies/index.js +28 -10
- package/dist/services/ecies/index.js.map +1 -1
- package/dist/services/ecies/integration.js +28 -23
- package/dist/services/ecies/integration.js.map +1 -1
- package/dist/services/ecies/interfaces.js +2 -1
- package/dist/services/ecies/interfaces.js.map +1 -1
- package/dist/services/ecies/manual-test.js +34 -26
- package/dist/services/ecies/manual-test.js.map +1 -1
- package/dist/services/ecies/multi-recipient.js +51 -47
- package/dist/services/ecies/multi-recipient.js.map +1 -1
- package/dist/services/ecies/service.js +20 -16
- package/dist/services/ecies/service.js.map +1 -1
- package/dist/services/ecies/signature.js +13 -9
- package/dist/services/ecies/signature.js.map +1 -1
- package/dist/services/ecies/single-recipient.js +32 -28
- package/dist/services/ecies/single-recipient.js.map +1 -1
- package/dist/services/index.js +21 -5
- package/dist/services/index.js.map +1 -1
- package/dist/services/password-login.js +37 -33
- package/dist/services/password-login.js.map +1 -1
- package/dist/services/pbkdf2.js +12 -8
- package/dist/services/pbkdf2.js.map +1 -1
- package/dist/services/xor.js +5 -1
- package/dist/services/xor.js.map +1 -1
- package/dist/types/deep-partial.js +2 -1
- package/dist/types.js +2 -1
- package/dist/utils.js +69 -51
- package/dist/utils.js.map +1 -1
- package/package.json +2 -2
- package/dist/defaults.d.ts +0 -37
- package/dist/defaults.d.ts.map +0 -1
- package/dist/defaults.js +0 -323
- package/dist/defaults.js.map +0 -1
- package/dist/errors/typed.d.ts +0 -14
- package/dist/errors/typed.d.ts.map +0 -1
- package/dist/errors/typed.js +0 -48
- package/dist/errors/typed.js.map +0 -1
- package/dist/i18n-config.d.ts +0 -77
- package/dist/i18n-config.d.ts.map +0 -1
- package/dist/i18n-config.js +0 -88
- package/dist/i18n-config.js.map +0 -1
- package/dist/interfaces/defaults.d.ts +0 -35
- package/dist/interfaces/defaults.d.ts.map +0 -1
- package/dist/interfaces/defaults.js +0 -2
- package/dist/interfaces/defaults.js.map +0 -1
- package/dist/package.json +0 -63
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EciesMultiRecipient = void 0;
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
5
|
+
const utils_1 = require("../../utils");
|
|
6
|
+
const aes_gcm_1 = require("../aes-gcm");
|
|
7
|
+
const crypto_core_1 = require("./crypto-core");
|
|
8
|
+
const i18n_setup_1 = require("../../i18n-setup");
|
|
9
|
+
const enumerations_1 = require("../../enumerations");
|
|
7
10
|
/**
|
|
8
11
|
* Browser-compatible multi-recipient ECIES encryption/decryption
|
|
9
12
|
*/
|
|
10
|
-
|
|
13
|
+
class EciesMultiRecipient {
|
|
11
14
|
cryptoCore;
|
|
12
15
|
eciesConsts;
|
|
13
|
-
constructor(config, eciesParams = Constants.ECIES) {
|
|
14
|
-
this.cryptoCore = new EciesCryptoCore(config, eciesParams);
|
|
16
|
+
constructor(config, eciesParams = constants_1.Constants.ECIES) {
|
|
17
|
+
this.cryptoCore = new crypto_core_1.EciesCryptoCore(config, eciesParams);
|
|
15
18
|
this.eciesConsts = eciesParams;
|
|
16
19
|
}
|
|
17
20
|
/**
|
|
@@ -33,14 +36,14 @@ export class EciesMultiRecipient {
|
|
|
33
36
|
const ephemeralKeyPair = await this.cryptoCore.generateEphemeralKeyPair();
|
|
34
37
|
const sharedSecret = await this.cryptoCore.computeSharedSecret(ephemeralKeyPair.privateKey, receiverPublicKey);
|
|
35
38
|
const symKey = sharedSecret.slice(0, this.eciesConsts.SYMMETRIC.KEY_SIZE);
|
|
36
|
-
const encryptResult = await AESGCMService.encrypt(messageSymmetricKey, symKey, true, this.eciesConsts);
|
|
39
|
+
const encryptResult = await aes_gcm_1.AESGCMService.encrypt(messageSymmetricKey, symKey, true, this.eciesConsts);
|
|
37
40
|
const { encrypted, iv } = encryptResult;
|
|
38
41
|
const authTag = encryptResult.tag;
|
|
39
42
|
if (!authTag) {
|
|
40
|
-
const engine = getEciesI18nEngine();
|
|
41
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_AuthenticationTagIsRequiredForKeyEncryption));
|
|
43
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
44
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_AuthenticationTagIsRequiredForKeyEncryption));
|
|
42
45
|
}
|
|
43
|
-
return concatUint8Arrays(new Uint8Array(ephemeralKeyPair.publicKey), iv, authTag, encrypted);
|
|
46
|
+
return (0, utils_1.concatUint8Arrays)(new Uint8Array(ephemeralKeyPair.publicKey), iv, authTag, encrypted);
|
|
44
47
|
}
|
|
45
48
|
/**
|
|
46
49
|
* Decrypts symmetric key encrypted with ECIES
|
|
@@ -50,8 +53,8 @@ export class EciesMultiRecipient {
|
|
|
50
53
|
*/
|
|
51
54
|
async decryptKey(privateKey, encryptedKey) {
|
|
52
55
|
if (encryptedKey.length !== this.eciesConsts.MULTIPLE.ENCRYPTED_KEY_SIZE) {
|
|
53
|
-
const engine = getEciesI18nEngine();
|
|
54
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_InvalidEncryptedKeyLengthTemplate, { keySize: this.eciesConsts.MULTIPLE.ENCRYPTED_KEY_SIZE, encryptedKeyLength: encryptedKey.length }));
|
|
56
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
57
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidEncryptedKeyLengthTemplate, { keySize: this.eciesConsts.MULTIPLE.ENCRYPTED_KEY_SIZE, encryptedKeyLength: encryptedKey.length }));
|
|
55
58
|
}
|
|
56
59
|
const ephemeralPublicKey = encryptedKey.slice(0, this.eciesConsts.PUBLIC_KEY_LENGTH);
|
|
57
60
|
const iv = encryptedKey.slice(this.eciesConsts.PUBLIC_KEY_LENGTH, this.eciesConsts.PUBLIC_KEY_LENGTH + this.eciesConsts.IV_SIZE);
|
|
@@ -59,44 +62,44 @@ export class EciesMultiRecipient {
|
|
|
59
62
|
const encrypted = encryptedKey.slice(this.eciesConsts.PUBLIC_KEY_LENGTH + this.eciesConsts.IV_SIZE + this.eciesConsts.AUTH_TAG_SIZE);
|
|
60
63
|
const sharedSecret = await this.cryptoCore.computeSharedSecret(privateKey, ephemeralPublicKey);
|
|
61
64
|
const symKey = sharedSecret.slice(0, this.eciesConsts.SYMMETRIC.KEY_SIZE);
|
|
62
|
-
const encryptedWithTag = AESGCMService.combineEncryptedDataAndTag(encrypted, authTag);
|
|
65
|
+
const encryptedWithTag = aes_gcm_1.AESGCMService.combineEncryptedDataAndTag(encrypted, authTag);
|
|
63
66
|
try {
|
|
64
|
-
const decrypted = await AESGCMService.decrypt(iv, encryptedWithTag, symKey, true, this.eciesConsts);
|
|
67
|
+
const decrypted = await aes_gcm_1.AESGCMService.decrypt(iv, encryptedWithTag, symKey, true, this.eciesConsts);
|
|
65
68
|
if (decrypted.length !== this.eciesConsts.SYMMETRIC.KEY_SIZE) {
|
|
66
|
-
const engine = getEciesI18nEngine();
|
|
67
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_InvalidDataLength));
|
|
69
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
70
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidDataLength));
|
|
68
71
|
}
|
|
69
72
|
return decrypted;
|
|
70
73
|
}
|
|
71
74
|
catch (error) {
|
|
72
75
|
console.error('Failed to decrypt key:', error);
|
|
73
|
-
const engine = getEciesI18nEngine();
|
|
74
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_FailedToDecryptKey));
|
|
76
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
77
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_FailedToDecryptKey));
|
|
75
78
|
}
|
|
76
79
|
}
|
|
77
80
|
/**
|
|
78
81
|
* Encrypt a message for multiple recipients
|
|
79
82
|
*/
|
|
80
83
|
async encryptMultiple(recipients, message, preamble = new Uint8Array(0)) {
|
|
81
|
-
const engine = getEciesI18nEngine();
|
|
84
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
82
85
|
if (recipients.length > this.eciesConsts.MULTIPLE.MAX_RECIPIENTS) {
|
|
83
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_TooManyRecipientsTemplate, { recipientsCount: recipients.length }));
|
|
86
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_TooManyRecipientsTemplate, { recipientsCount: recipients.length }));
|
|
84
87
|
}
|
|
85
88
|
if (message.length > this.eciesConsts.MAX_RAW_DATA_SIZE) {
|
|
86
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_MessageTooLargeTemplate, { length: message.length }));
|
|
89
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_MessageTooLargeTemplate, { length: message.length }));
|
|
87
90
|
}
|
|
88
91
|
// Generate symmetric key
|
|
89
92
|
const symmetricKey = crypto.getRandomValues(new Uint8Array(this.eciesConsts.SYMMETRIC.KEY_SIZE));
|
|
90
93
|
// Encrypt message with symmetric key
|
|
91
|
-
const encryptResult = await AESGCMService.encrypt(message, symmetricKey, true, this.eciesConsts);
|
|
94
|
+
const encryptResult = await aes_gcm_1.AESGCMService.encrypt(message, symmetricKey, true, this.eciesConsts);
|
|
92
95
|
const { encrypted, iv } = encryptResult;
|
|
93
96
|
const authTag = encryptResult.tag;
|
|
94
97
|
if (!authTag) {
|
|
95
|
-
const engine = getEciesI18nEngine();
|
|
96
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_AuthenticationTagIsRequiredForMultiRecipientECIESEncryption));
|
|
98
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
99
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_AuthenticationTagIsRequiredForMultiRecipientECIESEncryption));
|
|
97
100
|
}
|
|
98
101
|
// Create stored message: preamble + iv + authTag + encrypted
|
|
99
|
-
const storedMessage = concatUint8Arrays(preamble, iv, authTag, encrypted);
|
|
102
|
+
const storedMessage = (0, utils_1.concatUint8Arrays)(preamble, iv, authTag, encrypted);
|
|
100
103
|
// Encrypt symmetric key for each recipient
|
|
101
104
|
const recipientIds = [];
|
|
102
105
|
const recipientKeys = [];
|
|
@@ -122,8 +125,8 @@ export class EciesMultiRecipient {
|
|
|
122
125
|
// Find recipient's encrypted key
|
|
123
126
|
const recipientIndex = encryptedData.recipientIds.findIndex((id) => this.arraysEqual(id, recipientId));
|
|
124
127
|
if (recipientIndex === -1) {
|
|
125
|
-
const engine = getEciesI18nEngine();
|
|
126
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_RecipientNotFound));
|
|
128
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
129
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_RecipientNotFound));
|
|
127
130
|
}
|
|
128
131
|
const encryptedKey = encryptedData.recipientKeys[recipientIndex];
|
|
129
132
|
// Decrypt the symmetric key
|
|
@@ -137,12 +140,12 @@ export class EciesMultiRecipient {
|
|
|
137
140
|
const encrypted = encryptedData.encryptedMessage.slice(offset);
|
|
138
141
|
// AES-GCM provides authentication via auth tag (no separate CRC needed)
|
|
139
142
|
// Decrypt with symmetric key
|
|
140
|
-
const encryptedWithTag = AESGCMService.combineEncryptedDataAndTag(encrypted, authTag);
|
|
141
|
-
const decrypted = await AESGCMService.decrypt(iv, encryptedWithTag, symmetricKey, true, this.eciesConsts);
|
|
143
|
+
const encryptedWithTag = aes_gcm_1.AESGCMService.combineEncryptedDataAndTag(encrypted, authTag);
|
|
144
|
+
const decrypted = await aes_gcm_1.AESGCMService.decrypt(iv, encryptedWithTag, symmetricKey, true, this.eciesConsts);
|
|
142
145
|
// Verify length
|
|
143
146
|
if (decrypted.length !== encryptedData.dataLength) {
|
|
144
|
-
const engine = getEciesI18nEngine();
|
|
145
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_DecryptedDataLengthMismatch));
|
|
147
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
148
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_DecryptedDataLengthMismatch));
|
|
146
149
|
}
|
|
147
150
|
return decrypted;
|
|
148
151
|
}
|
|
@@ -151,12 +154,12 @@ export class EciesMultiRecipient {
|
|
|
151
154
|
*/
|
|
152
155
|
buildHeader(data) {
|
|
153
156
|
if (data.recipientIds.length !== data.recipientKeys.length) {
|
|
154
|
-
const engine = getEciesI18nEngine();
|
|
155
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_RecipientCountMismatch));
|
|
157
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
158
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_RecipientCountMismatch));
|
|
156
159
|
}
|
|
157
160
|
if (data.dataLength < 0 || data.dataLength > this.eciesConsts.MAX_RAW_DATA_SIZE) {
|
|
158
|
-
const engine = getEciesI18nEngine();
|
|
159
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_InvalidDataLength));
|
|
161
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
162
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidDataLength));
|
|
160
163
|
}
|
|
161
164
|
// Data length (8 bytes)
|
|
162
165
|
const dataLengthUint8Array = new Uint8Array(8);
|
|
@@ -165,18 +168,18 @@ export class EciesMultiRecipient {
|
|
|
165
168
|
const recipientCountUint8Array = new Uint8Array(2);
|
|
166
169
|
new DataView(recipientCountUint8Array.buffer).setUint16(0, data.recipientIds.length, false);
|
|
167
170
|
// Recipient IDs
|
|
168
|
-
const recipientIdsUint8Array = concatUint8Arrays(...data.recipientIds);
|
|
171
|
+
const recipientIdsUint8Array = (0, utils_1.concatUint8Arrays)(...data.recipientIds);
|
|
169
172
|
// Encrypted keys
|
|
170
|
-
const encryptedKeysUint8Array = concatUint8Arrays(...data.recipientKeys);
|
|
171
|
-
return concatUint8Arrays(dataLengthUint8Array, recipientCountUint8Array, recipientIdsUint8Array, encryptedKeysUint8Array);
|
|
173
|
+
const encryptedKeysUint8Array = (0, utils_1.concatUint8Arrays)(...data.recipientKeys);
|
|
174
|
+
return (0, utils_1.concatUint8Arrays)(dataLengthUint8Array, recipientCountUint8Array, recipientIdsUint8Array, encryptedKeysUint8Array);
|
|
172
175
|
}
|
|
173
176
|
/**
|
|
174
177
|
* Parse multi-recipient header
|
|
175
178
|
*/
|
|
176
179
|
parseHeader(data) {
|
|
177
180
|
if (data.length < 10) {
|
|
178
|
-
const engine = getEciesI18nEngine();
|
|
179
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_DataTooShortForMultiRecipientHeader));
|
|
181
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
182
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_DataTooShortForMultiRecipientHeader));
|
|
180
183
|
// minimum: 8 + 2
|
|
181
184
|
}
|
|
182
185
|
let offset = 0;
|
|
@@ -185,15 +188,15 @@ export class EciesMultiRecipient {
|
|
|
185
188
|
const dataLength = Number(view.getBigUint64(offset, false));
|
|
186
189
|
offset += 8;
|
|
187
190
|
if (dataLength <= 0 || dataLength > this.eciesConsts.MAX_RAW_DATA_SIZE) {
|
|
188
|
-
const engine = getEciesI18nEngine();
|
|
189
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_InvalidDataLength));
|
|
191
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
192
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidDataLength));
|
|
190
193
|
}
|
|
191
194
|
// Read recipient count
|
|
192
195
|
const recipientCount = view.getUint16(offset, false);
|
|
193
196
|
offset += 2;
|
|
194
197
|
if (recipientCount <= 0 || recipientCount > this.eciesConsts.MULTIPLE.MAX_RECIPIENTS) {
|
|
195
|
-
const engine = getEciesI18nEngine();
|
|
196
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_InvalidRecipientCount));
|
|
198
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
199
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidRecipientCount));
|
|
197
200
|
}
|
|
198
201
|
// Read recipient IDs
|
|
199
202
|
const recipientIds = [];
|
|
@@ -236,4 +239,5 @@ export class EciesMultiRecipient {
|
|
|
236
239
|
return true;
|
|
237
240
|
}
|
|
238
241
|
}
|
|
242
|
+
exports.EciesMultiRecipient = EciesMultiRecipient;
|
|
239
243
|
//# sourceMappingURL=multi-recipient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-recipient.js","sourceRoot":"","sources":["../../../src/services/ecies/multi-recipient.ts"],"names":[],"mappings":"AACA
|
|
1
|
+
{"version":3,"file":"multi-recipient.js","sourceRoot":"","sources":["../../../src/services/ecies/multi-recipient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ECIESService = void 0;
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
5
|
+
const ecies_encryption_type_1 = require("../../enumerations/ecies-encryption-type");
|
|
6
|
+
const crypto_core_1 = require("./crypto-core");
|
|
7
|
+
const signature_1 = require("./signature");
|
|
8
|
+
const single_recipient_1 = require("./single-recipient");
|
|
6
9
|
/**
|
|
7
10
|
* Browser-compatible ECIES service that mirrors the server-side functionality
|
|
8
11
|
* Uses Web Crypto API and @scure/@noble libraries for browser compatibility
|
|
9
12
|
*/
|
|
10
|
-
|
|
13
|
+
class ECIESService {
|
|
11
14
|
_config;
|
|
12
15
|
cryptoCore;
|
|
13
16
|
signature;
|
|
14
17
|
singleRecipient;
|
|
15
18
|
eciesConsts;
|
|
16
|
-
constructor(config, eciesParams = Constants.ECIES) {
|
|
19
|
+
constructor(config, eciesParams = constants_1.Constants.ECIES) {
|
|
17
20
|
this.eciesConsts = eciesParams;
|
|
18
21
|
this._config = {
|
|
19
22
|
curveName: this.eciesConsts.CURVE_NAME,
|
|
@@ -25,9 +28,9 @@ export class ECIESService {
|
|
|
25
28
|
...config,
|
|
26
29
|
};
|
|
27
30
|
// Initialize components
|
|
28
|
-
this.cryptoCore = new EciesCryptoCore(this._config, this.eciesConsts);
|
|
29
|
-
this.signature = new EciesSignature(this.cryptoCore);
|
|
30
|
-
this.singleRecipient = new EciesSingleRecipient(this._config);
|
|
31
|
+
this.cryptoCore = new crypto_core_1.EciesCryptoCore(this._config, this.eciesConsts);
|
|
32
|
+
this.signature = new signature_1.EciesSignature(this.cryptoCore);
|
|
33
|
+
this.singleRecipient = new single_recipient_1.EciesSingleRecipient(this._config);
|
|
31
34
|
}
|
|
32
35
|
get core() {
|
|
33
36
|
return this.cryptoCore;
|
|
@@ -88,8 +91,8 @@ export class ECIESService {
|
|
|
88
91
|
*/
|
|
89
92
|
async decryptSimpleOrSingleWithHeader(decryptSimple, privateKey, encryptedData, preambleSize = 0, options) {
|
|
90
93
|
return await this.singleRecipient.decryptWithHeader(decryptSimple
|
|
91
|
-
? EciesEncryptionTypeEnum.Simple
|
|
92
|
-
: EciesEncryptionTypeEnum.Single, privateKey, encryptedData, preambleSize, options);
|
|
94
|
+
? ecies_encryption_type_1.EciesEncryptionTypeEnum.Simple
|
|
95
|
+
: ecies_encryption_type_1.EciesEncryptionTypeEnum.Single, privateKey, encryptedData, preambleSize, options);
|
|
93
96
|
}
|
|
94
97
|
/**
|
|
95
98
|
* Extended decrypt with header
|
|
@@ -170,12 +173,12 @@ export class ECIESService {
|
|
|
170
173
|
* Generic encrypt method
|
|
171
174
|
*/
|
|
172
175
|
async encrypt(encryptionType, recipients, message, preamble) {
|
|
173
|
-
if ((encryptionType === EciesEncryptionTypeEnum.Simple ||
|
|
174
|
-
EciesEncryptionTypeEnum.Single) &&
|
|
176
|
+
if ((encryptionType === ecies_encryption_type_1.EciesEncryptionTypeEnum.Simple ||
|
|
177
|
+
ecies_encryption_type_1.EciesEncryptionTypeEnum.Single) &&
|
|
175
178
|
recipients.length === 1) {
|
|
176
|
-
return this.singleRecipient.encrypt(encryptionType === EciesEncryptionTypeEnum.Simple, recipients[0].publicKey, message, preamble);
|
|
179
|
+
return this.singleRecipient.encrypt(encryptionType === ecies_encryption_type_1.EciesEncryptionTypeEnum.Simple, recipients[0].publicKey, message, preamble);
|
|
177
180
|
}
|
|
178
|
-
else if (encryptionType === EciesEncryptionTypeEnum.Multiple &&
|
|
181
|
+
else if (encryptionType === ecies_encryption_type_1.EciesEncryptionTypeEnum.Multiple &&
|
|
179
182
|
recipients.length > 1) {
|
|
180
183
|
// TODO: Implement multi-recipient encryption
|
|
181
184
|
throw new Error('Multi-recipient encryption not yet implemented');
|
|
@@ -185,4 +188,5 @@ export class ECIESService {
|
|
|
185
188
|
}
|
|
186
189
|
}
|
|
187
190
|
}
|
|
191
|
+
exports.ECIESService = ECIESService;
|
|
188
192
|
//# sourceMappingURL=service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/services/ecies/service.ts"],"names":[],"mappings":"AACA
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/services/ecies/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EciesSignature = void 0;
|
|
4
|
+
const secp256k1_js_1 = require("@noble/curves/secp256k1.js");
|
|
5
|
+
const sha2_js_1 = require("@noble/hashes/sha2.js");
|
|
6
|
+
const utils_1 = require("../../utils");
|
|
4
7
|
/**
|
|
5
8
|
* Browser-compatible ECDSA signature operations
|
|
6
9
|
*/
|
|
7
|
-
|
|
10
|
+
class EciesSignature {
|
|
8
11
|
cryptoCore;
|
|
9
12
|
constructor(cryptoCore) {
|
|
10
13
|
this.cryptoCore = cryptoCore;
|
|
@@ -14,9 +17,9 @@ export class EciesSignature {
|
|
|
14
17
|
* Returns 64 bytes: [r(32) | s(32)]
|
|
15
18
|
*/
|
|
16
19
|
signMessage(privateKey, data) {
|
|
17
|
-
const hash = sha256(data);
|
|
20
|
+
const hash = (0, sha2_js_1.sha256)(data);
|
|
18
21
|
// Use deterministic signatures (RFC 6979) for consistency
|
|
19
|
-
const signature = secp256k1.sign(hash, privateKey, {
|
|
22
|
+
const signature = secp256k1_js_1.secp256k1.sign(hash, privateKey, {
|
|
20
23
|
format: 'compact',
|
|
21
24
|
extraEntropy: false,
|
|
22
25
|
});
|
|
@@ -29,11 +32,11 @@ export class EciesSignature {
|
|
|
29
32
|
try {
|
|
30
33
|
if (!signature || signature.length !== 64)
|
|
31
34
|
return false;
|
|
32
|
-
const hash = sha256(data);
|
|
35
|
+
const hash = (0, sha2_js_1.sha256)(data);
|
|
33
36
|
const normalizedPublicKey = this.cryptoCore.normalizePublicKey(publicKey);
|
|
34
37
|
// Try direct verification first
|
|
35
38
|
try {
|
|
36
|
-
const directResult = secp256k1.verify(signature, hash, normalizedPublicKey);
|
|
39
|
+
const directResult = secp256k1_js_1.secp256k1.verify(signature, hash, normalizedPublicKey);
|
|
37
40
|
if (directResult)
|
|
38
41
|
return true;
|
|
39
42
|
}
|
|
@@ -66,7 +69,8 @@ export class EciesSignature {
|
|
|
66
69
|
* Convert signature buffer to signature string
|
|
67
70
|
*/
|
|
68
71
|
signatureUint8ArrayToSignatureString(signatureArray) {
|
|
69
|
-
return uint8ArrayToHex(signatureArray);
|
|
72
|
+
return (0, utils_1.uint8ArrayToHex)(signatureArray);
|
|
70
73
|
}
|
|
71
74
|
}
|
|
75
|
+
exports.EciesSignature = EciesSignature;
|
|
72
76
|
//# sourceMappingURL=signature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../src/services/ecies/signature.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../src/services/ecies/signature.ts"],"names":[],"mappings":";;;AAAA,6DAAuD;AACvD,mDAA+C;AAE/C,uCAA8C;AAG9C;;GAEG;AACH,MAAa,cAAc;IACR,UAAU,CAAkB;IAE7C,YAAY,UAA2B;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACI,WAAW,CAChB,UAAsB,EACtB,IAAgB;QAEhB,MAAM,IAAI,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC;QAC1B,0DAA0D;QAC1D,MAAM,SAAS,GAAG,wBAAS,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE;YACjD,MAAM,EAAE,SAAS;YACjB,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QACH,OAAO,SAAgC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,aAAa,CAClB,SAAqB,EACrB,IAAgB,EAChB,SAA8B;QAE9B,IAAI,CAAC;YACH,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE;gBAAE,OAAO,KAAK,CAAC;YACxD,MAAM,IAAI,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAE1E,gCAAgC;YAChC,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,wBAAS,CAAC,MAAM,CACnC,SAAS,EACT,IAAI,EACJ,mBAAmB,CACpB,CAAC;gBACF,IAAI,YAAY;oBAAE,OAAO,IAAI,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,+CAA+C;YACjD,CAAC;YAED,gFAAgF;YAChF,0EAA0E;YAC1E,4EAA4E;YAC5E,gFAAgF;YAEhF,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;YACrD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACI,oCAAoC,CACzC,eAAgC;QAEhC,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,MAA6B,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,oCAAoC,CACzC,cAAmC;QAEnC,OAAO,IAAA,uBAAe,EAAC,cAAc,CAAoB,CAAC;IAC5D,CAAC;CACF;AAnFD,wCAmFC"}
|
|
@@ -1,20 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EciesSingleRecipient = void 0;
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
5
|
+
const ecies_encryption_type_1 = require("../../enumerations/ecies-encryption-type");
|
|
6
|
+
const aes_gcm_1 = require("../aes-gcm");
|
|
7
|
+
const crypto_core_1 = require("./crypto-core");
|
|
8
|
+
const i18n_setup_1 = require("../../i18n-setup");
|
|
9
|
+
const enumerations_1 = require("../../enumerations");
|
|
7
10
|
/**
|
|
8
11
|
* Browser-compatible single recipient ECIES encryption/decryption
|
|
9
12
|
*/
|
|
10
|
-
|
|
13
|
+
class EciesSingleRecipient {
|
|
11
14
|
cryptoCore;
|
|
12
15
|
config;
|
|
13
16
|
eciesConsts;
|
|
14
|
-
constructor(config, eciesParams = Constants.ECIES) {
|
|
17
|
+
constructor(config, eciesParams = constants_1.Constants.ECIES) {
|
|
15
18
|
this.config = config;
|
|
16
19
|
this.eciesConsts = eciesParams;
|
|
17
|
-
this.cryptoCore = new EciesCryptoCore(config, this.eciesConsts);
|
|
20
|
+
this.cryptoCore = new crypto_core_1.EciesCryptoCore(config, this.eciesConsts);
|
|
18
21
|
}
|
|
19
22
|
/**
|
|
20
23
|
* Encrypt a message for a single recipient
|
|
@@ -29,8 +32,8 @@ export class EciesSingleRecipient {
|
|
|
29
32
|
: this.eciesConsts.ENCRYPTION_TYPE.SINGLE,
|
|
30
33
|
]);
|
|
31
34
|
if (message.length > this.eciesConsts.MAX_RAW_DATA_SIZE) {
|
|
32
|
-
const engine = getEciesI18nEngine();
|
|
33
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_MessageLengthExceedsMaximumAllowedSizeTemplate, { messageLength: message.length }));
|
|
35
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
36
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_MessageLengthExceedsMaximumAllowedSizeTemplate, { messageLength: message.length }));
|
|
34
37
|
}
|
|
35
38
|
// Generate ephemeral key pair
|
|
36
39
|
const ephemeralPrivateKey = this.cryptoCore.generatePrivateKey();
|
|
@@ -41,12 +44,12 @@ export class EciesSingleRecipient {
|
|
|
41
44
|
// Use first 32 bytes as symmetric key
|
|
42
45
|
const symKey = sharedSecret.slice(0, this.eciesConsts.SYMMETRIC.KEY_SIZE);
|
|
43
46
|
// Encrypt using AES-GCM
|
|
44
|
-
const encryptResult = await AESGCMService.encrypt(message, symKey, true, this.eciesConsts);
|
|
47
|
+
const encryptResult = await aes_gcm_1.AESGCMService.encrypt(message, symKey, true, this.eciesConsts);
|
|
45
48
|
const { encrypted, iv } = encryptResult;
|
|
46
49
|
const authTag = encryptResult.tag;
|
|
47
50
|
if (!authTag) {
|
|
48
|
-
const engine = getEciesI18nEngine();
|
|
49
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_AuthenticationTagIsRequiredForECIESEncryption));
|
|
51
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
52
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_AuthenticationTagIsRequiredForECIESEncryption));
|
|
50
53
|
}
|
|
51
54
|
// Add length prefix for single mode
|
|
52
55
|
const lengthArray = encryptionType === 'simple' ? new Uint8Array(0) : new Uint8Array(8);
|
|
@@ -85,33 +88,33 @@ export class EciesSingleRecipient {
|
|
|
85
88
|
// Read encryption type from first byte after preamble
|
|
86
89
|
const actualEncryptionTypeByte = data[preambleSize];
|
|
87
90
|
let actualEncryptionType;
|
|
88
|
-
const engine = getEciesI18nEngine();
|
|
91
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
89
92
|
switch (actualEncryptionTypeByte) {
|
|
90
93
|
case this.eciesConsts.ENCRYPTION_TYPE.SIMPLE:
|
|
91
|
-
actualEncryptionType = EciesEncryptionTypeEnum.Simple;
|
|
94
|
+
actualEncryptionType = ecies_encryption_type_1.EciesEncryptionTypeEnum.Simple;
|
|
92
95
|
break;
|
|
93
96
|
case this.eciesConsts.ENCRYPTION_TYPE.SINGLE:
|
|
94
|
-
actualEncryptionType = EciesEncryptionTypeEnum.Single;
|
|
97
|
+
actualEncryptionType = ecies_encryption_type_1.EciesEncryptionTypeEnum.Single;
|
|
95
98
|
break;
|
|
96
99
|
case this.eciesConsts.ENCRYPTION_TYPE.MULTIPLE:
|
|
97
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_MultipleEncryptionTypeNotSupportedInSingleRecipientMode));
|
|
100
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_MultipleEncryptionTypeNotSupportedInSingleRecipientMode));
|
|
98
101
|
default:
|
|
99
102
|
// convert the encryption type byte to hex
|
|
100
103
|
const encryptionTypeHex = actualEncryptionTypeByte.toString(16).padStart(2, '0');
|
|
101
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_InvalidEncryptionTypeTemplate, { encryptionType: encryptionTypeHex }));
|
|
104
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidEncryptionTypeTemplate, { encryptionType: encryptionTypeHex }));
|
|
102
105
|
}
|
|
103
106
|
if (encryptionType !== undefined &&
|
|
104
107
|
actualEncryptionType !== encryptionType) {
|
|
105
|
-
const engine = getEciesI18nEngine();
|
|
106
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_EncryptionTypeMismatchTemplate, { encryptionType, actualEncryptionType }));
|
|
108
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
109
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_EncryptionTypeMismatchTemplate, { encryptionType, actualEncryptionType }));
|
|
107
110
|
}
|
|
108
|
-
const includeLengthAndCrc = actualEncryptionType === EciesEncryptionTypeEnum.Single;
|
|
111
|
+
const includeLengthAndCrc = actualEncryptionType === ecies_encryption_type_1.EciesEncryptionTypeEnum.Single;
|
|
109
112
|
const requiredSize = includeLengthAndCrc
|
|
110
113
|
? this.eciesConsts.SINGLE.FIXED_OVERHEAD_SIZE
|
|
111
114
|
: this.eciesConsts.SIMPLE.FIXED_OVERHEAD_SIZE;
|
|
112
115
|
if (data.length < requiredSize) {
|
|
113
|
-
const engine = getEciesI18nEngine();
|
|
114
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_DataTooShortTemplate, { requiredSize, dataLength: data.length }));
|
|
116
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
117
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_DataTooShortTemplate, { requiredSize, dataLength: data.length }));
|
|
115
118
|
}
|
|
116
119
|
let offset = preambleSize;
|
|
117
120
|
const preamble = data.slice(0, preambleSize);
|
|
@@ -138,8 +141,8 @@ export class EciesSingleRecipient {
|
|
|
138
141
|
if (includeLengthAndCrc &&
|
|
139
142
|
options?.dataLength !== undefined &&
|
|
140
143
|
dataLength !== options.dataLength) {
|
|
141
|
-
const engine = getEciesI18nEngine();
|
|
142
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_DataLengthMismatchTemplate, { expectedDataLength: dataLength, receivedDataLength: options.dataLength }));
|
|
144
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
145
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_DataLengthMismatchTemplate, { expectedDataLength: dataLength, receivedDataLength: options.dataLength }));
|
|
143
146
|
}
|
|
144
147
|
// No CRC in Single encryption (AES-GCM provides authentication)
|
|
145
148
|
// For single mode, read all remaining data as encrypted data
|
|
@@ -191,9 +194,9 @@ export class EciesSingleRecipient {
|
|
|
191
194
|
// Use first 32 bytes as symmetric key
|
|
192
195
|
const symKey = sharedSecret.slice(0, this.eciesConsts.SYMMETRIC.KEY_SIZE);
|
|
193
196
|
// Combine encrypted data with auth tag for AES-GCM
|
|
194
|
-
const encryptedWithTag = AESGCMService.combineEncryptedDataAndTag(encrypted, authTag);
|
|
197
|
+
const encryptedWithTag = aes_gcm_1.AESGCMService.combineEncryptedDataAndTag(encrypted, authTag);
|
|
195
198
|
// Decrypt
|
|
196
|
-
return await AESGCMService.decrypt(iv, encryptedWithTag, symKey, true, this.eciesConsts);
|
|
199
|
+
return await aes_gcm_1.AESGCMService.decrypt(iv, encryptedWithTag, symKey, true, this.eciesConsts);
|
|
197
200
|
}
|
|
198
201
|
arraysEqual(a, b) {
|
|
199
202
|
if (a.length !== b.length)
|
|
@@ -205,4 +208,5 @@ export class EciesSingleRecipient {
|
|
|
205
208
|
return true;
|
|
206
209
|
}
|
|
207
210
|
}
|
|
211
|
+
exports.EciesSingleRecipient = EciesSingleRecipient;
|
|
208
212
|
//# sourceMappingURL=single-recipient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"single-recipient.js","sourceRoot":"","sources":["../../../src/services/ecies/single-recipient.ts"],"names":[],"mappings":"AACA
|
|
1
|
+
{"version":3,"file":"single-recipient.js","sourceRoot":"","sources":["../../../src/services/ecies/single-recipient.ts"],"names":[],"mappings":"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"}
|