@digitaldefiance/ecies-lib 4.4.14 → 4.4.16
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 +2 -3
- package/src/builders/ecies-builder.js +9 -5
- package/src/builders/ecies-builder.js.map +1 -1
- package/src/builders/index.js +5 -2
- package/src/builders/index.js.map +1 -1
- package/src/builders/member-builder.js +25 -21
- package/src/builders/member-builder.js.map +1 -1
- package/src/constants.js +79 -68
- package/src/constants.js.map +1 -1
- package/src/core/errors/crypto-error.js +14 -10
- package/src/core/errors/crypto-error.js.map +1 -1
- package/src/core/index.js +5 -2
- package/src/core/index.js.map +1 -1
- package/src/core/types/result.js +5 -1
- package/src/core/types/result.js.map +1 -1
- package/src/email-string.js +13 -8
- package/src/email-string.js.map +1 -1
- package/src/enumerations/disposed-error-type.js +5 -2
- package/src/enumerations/disposed-error-type.js.map +1 -1
- package/src/enumerations/ecies-cipher-suite.js +5 -2
- package/src/enumerations/ecies-cipher-suite.js.map +1 -1
- package/src/enumerations/ecies-encryption-type.js +9 -6
- package/src/enumerations/ecies-encryption-type.js.map +1 -1
- package/src/enumerations/ecies-error-type.js +5 -2
- package/src/enumerations/ecies-error-type.js.map +1 -1
- package/src/enumerations/ecies-string-key.js +5 -2
- package/src/enumerations/ecies-string-key.js.map +1 -1
- package/src/enumerations/ecies-version.js +5 -2
- package/src/enumerations/ecies-version.js.map +1 -1
- package/src/enumerations/guid-brand-type.js +5 -2
- package/src/enumerations/guid-brand-type.js.map +1 -1
- package/src/enumerations/guid-error-type.js +5 -2
- package/src/enumerations/guid-error-type.js.map +1 -1
- package/src/enumerations/id-provider-error-type.js +5 -2
- package/src/enumerations/id-provider-error-type.js.map +1 -1
- package/src/enumerations/index.js +20 -17
- package/src/enumerations/index.js.map +1 -1
- package/src/enumerations/invalid-email-type.js +5 -2
- package/src/enumerations/invalid-email-type.js.map +1 -1
- package/src/enumerations/length-encoding-type.js +5 -2
- package/src/enumerations/length-encoding-type.js.map +1 -1
- package/src/enumerations/length-error-type.js +5 -2
- package/src/enumerations/length-error-type.js.map +1 -1
- package/src/enumerations/member-error-type.js +6 -3
- package/src/enumerations/member-error-type.js.map +1 -1
- package/src/enumerations/member-type.js +6 -3
- package/src/enumerations/member-type.js.map +1 -1
- package/src/enumerations/password-login-error-type.js +5 -2
- package/src/enumerations/password-login-error-type.js.map +1 -1
- package/src/enumerations/pbkdf2-error-type.js +5 -2
- package/src/enumerations/pbkdf2-error-type.js.map +1 -1
- package/src/enumerations/pbkdf2-profile.js +5 -2
- package/src/enumerations/pbkdf2-profile.js.map +1 -1
- package/src/enumerations/secure-storage-error-type.js +5 -2
- package/src/enumerations/secure-storage-error-type.js.map +1 -1
- package/src/errors/disposed.js +9 -5
- package/src/errors/disposed.js.map +1 -1
- package/src/errors/ecies.js +9 -5
- package/src/errors/ecies.js.map +1 -1
- package/src/errors/guid.js +13 -9
- package/src/errors/guid.js.map +1 -1
- package/src/errors/id-provider.js +10 -6
- package/src/errors/id-provider.js.map +1 -1
- package/src/errors/index.js +12 -9
- package/src/errors/index.js.map +1 -1
- package/src/errors/invalid-email.js +9 -5
- package/src/errors/invalid-email.js.map +1 -1
- package/src/errors/length.js +9 -5
- package/src/errors/length.js.map +1 -1
- package/src/errors/member.js +9 -5
- package/src/errors/member.js.map +1 -1
- package/src/errors/pbkdf2.js +9 -5
- package/src/errors/pbkdf2.js.map +1 -1
- package/src/errors/secure-storage.js +10 -6
- package/src/errors/secure-storage.js.map +1 -1
- package/src/errors/simple-ecies.js +10 -6
- package/src/errors/simple-ecies.js.map +1 -1
- package/src/errors/simple-test-error.js +5 -1
- package/src/errors/simple-test-error.js.map +1 -1
- package/src/i18n-setup.js +37 -29
- package/src/i18n-setup.js.map +1 -1
- package/src/index.d.ts +3 -3
- package/src/index.d.ts.map +1 -1
- package/src/index.js +123 -60
- package/src/index.js.map +1 -1
- package/src/interfaces/checksum-config.js +2 -1
- package/src/interfaces/checksum-consts.js +2 -1
- package/src/interfaces/configuration-provenance.js +6 -1
- package/src/interfaces/configuration-provenance.js.map +1 -1
- package/src/interfaces/constants.js +2 -1
- package/src/interfaces/ecies-config.js +2 -1
- package/src/interfaces/ecies-consts.js +2 -1
- package/src/interfaces/ecies-file-service.js +2 -1
- package/src/interfaces/encrypted-chunk.js +4 -1
- package/src/interfaces/encrypted-chunk.js.map +1 -1
- package/src/interfaces/encryption-state.js +4 -1
- package/src/interfaces/encryption-state.js.map +1 -1
- package/src/interfaces/frontend-member-operational.js +2 -1
- package/src/interfaces/guid.js +2 -1
- package/src/interfaces/id-provider.js +5 -1
- package/src/interfaces/id-provider.js.map +1 -1
- package/src/interfaces/index.js +15 -12
- package/src/interfaces/index.js.map +1 -1
- package/src/interfaces/invariant.js +5 -1
- package/src/interfaces/invariant.js.map +1 -1
- package/src/interfaces/library-error.js +2 -1
- package/src/interfaces/member-storage.js +2 -1
- package/src/interfaces/member-with-mnemonic.js +2 -1
- package/src/interfaces/member.js +2 -1
- package/src/interfaces/multi-recipient-chunk.js +6 -1
- package/src/interfaces/multi-recipient-chunk.js.map +1 -1
- package/src/interfaces/pbkdf2-config.js +2 -1
- package/src/interfaces/pbkdf2-consts.js +2 -1
- package/src/interfaces/pbkdf2-result.js +2 -1
- package/src/interfaces/stream-config.js +4 -1
- package/src/interfaces/stream-config.js.map +1 -1
- package/src/interfaces/stream-header.js +4 -1
- package/src/interfaces/stream-header.js.map +1 -1
- package/src/interfaces/stream-progress.js +2 -1
- package/src/lib/configuration-provenance-utils.js +9 -5
- package/src/lib/configuration-provenance-utils.js.map +1 -1
- package/src/lib/crypto-container.js +13 -9
- package/src/lib/crypto-container.js.map +1 -1
- package/src/lib/guid.js +81 -76
- package/src/lib/guid.js.map +1 -1
- package/src/lib/id-providers/custom-provider.js +14 -10
- package/src/lib/id-providers/custom-provider.js.map +1 -1
- package/src/lib/id-providers/guidv4-provider.js +20 -16
- package/src/lib/id-providers/guidv4-provider.js.map +1 -1
- package/src/lib/id-providers/index.js +13 -5
- package/src/lib/id-providers/index.js.map +1 -1
- package/src/lib/id-providers/objectid-provider.js +15 -11
- package/src/lib/id-providers/objectid-provider.js.map +1 -1
- package/src/lib/id-providers/uuid-provider.js +16 -12
- package/src/lib/id-providers/uuid-provider.js.map +1 -1
- package/src/lib/index.js +5 -2
- package/src/lib/index.js.map +1 -1
- package/src/lib/invariant-validator.js +18 -14
- package/src/lib/invariant-validator.js.map +1 -1
- package/src/lib/invariants/encryption-algorithm-consistency.js +6 -2
- package/src/lib/invariants/encryption-algorithm-consistency.js.map +1 -1
- package/src/lib/invariants/index.js +6 -3
- package/src/lib/invariants/index.js.map +1 -1
- package/src/lib/invariants/pbkdf2-profiles-validity.js +13 -9
- package/src/lib/invariants/pbkdf2-profiles-validity.js.map +1 -1
- package/src/lib/invariants/recipient-id-consistency.js +6 -2
- package/src/lib/invariants/recipient-id-consistency.js.map +1 -1
- package/src/lib/multi-recipient-chunk-utils.js +6 -2
- package/src/lib/multi-recipient-chunk-utils.js.map +1 -1
- package/src/member.js +48 -43
- package/src/member.js.map +1 -1
- package/src/pbkdf2-profiles.js +2 -1
- package/src/phone-number.js +11 -7
- package/src/phone-number.js.map +1 -1
- package/src/regexes.js +6 -3
- package/src/regexes.js.map +1 -1
- package/src/secure-buffer.js +21 -17
- package/src/secure-buffer.js.map +1 -1
- package/src/secure-string.js +23 -19
- package/src/secure-string.js.map +1 -1
- package/src/services/aes-gcm.js +25 -21
- package/src/services/aes-gcm.js.map +1 -1
- package/src/services/chunk-processor.js +36 -32
- package/src/services/chunk-processor.js.map +1 -1
- package/src/services/ecies/crypto-core.js +44 -40
- package/src/services/ecies/crypto-core.js.map +1 -1
- package/src/services/ecies/example.js +44 -37
- package/src/services/ecies/example.js.map +1 -1
- package/src/services/ecies/file.js +5 -1
- package/src/services/ecies/file.js.map +1 -1
- package/src/services/ecies/index.js +15 -10
- package/src/services/ecies/index.js.map +1 -1
- package/src/services/ecies/integration.js +28 -23
- package/src/services/ecies/integration.js.map +1 -1
- package/src/services/ecies/interfaces.js +2 -1
- package/src/services/ecies/interfaces.js.map +1 -1
- package/src/services/ecies/manual-test.js +34 -26
- package/src/services/ecies/manual-test.js.map +1 -1
- package/src/services/ecies/multi-recipient.js +68 -64
- package/src/services/ecies/multi-recipient.js.map +1 -1
- package/src/services/ecies/service.js +31 -27
- package/src/services/ecies/service.js.map +1 -1
- package/src/services/ecies/signature.js +13 -9
- package/src/services/ecies/signature.js.map +1 -1
- package/src/services/ecies/single-recipient.js +53 -49
- package/src/services/ecies/single-recipient.js.map +1 -1
- package/src/services/encryption-stream.js +46 -42
- package/src/services/encryption-stream.js.map +1 -1
- package/src/services/index.js +13 -10
- package/src/services/index.js.map +1 -1
- package/src/services/multi-recipient-processor.js +44 -40
- package/src/services/multi-recipient-processor.js.map +1 -1
- package/src/services/password-login.js +37 -33
- package/src/services/password-login.js.map +1 -1
- package/src/services/pbkdf2.js +12 -8
- package/src/services/pbkdf2.js.map +1 -1
- package/src/services/progress-tracker.js +9 -5
- package/src/services/progress-tracker.js.map +1 -1
- package/src/services/resumable-encryption.js +28 -24
- package/src/services/resumable-encryption.js.map +1 -1
- package/src/services/xor.js +5 -1
- package/src/services/xor.js.map +1 -1
- package/src/test-mocks/index.js +4 -1
- package/src/test-mocks/index.js.map +1 -1
- package/src/test-mocks/mock-frontend-member.js +24 -20
- package/src/test-mocks/mock-frontend-member.js.map +1 -1
- package/src/testing.js +4 -1
- package/src/testing.js.map +1 -1
- package/src/translations/de.js +195 -192
- package/src/translations/de.js.map +1 -1
- package/src/translations/en-US.js +195 -192
- package/src/translations/en-US.js.map +1 -1
- package/src/translations/es.js +195 -192
- package/src/translations/es.js.map +1 -1
- package/src/translations/fr.js +195 -192
- package/src/translations/fr.js.map +1 -1
- package/src/translations/ja.js +195 -192
- package/src/translations/ja.js.map +1 -1
- package/src/translations/uk.js +195 -192
- package/src/translations/uk.js.map +1 -1
- package/src/translations/zh-cn.js +195 -192
- package/src/translations/zh-cn.js.map +1 -1
- package/src/types/deep-partial.js +2 -1
- package/src/types.js +2 -1
- package/src/utils/encryption-type-utils.js +21 -15
- package/src/utils/encryption-type-utils.js.map +1 -1
- package/src/utils.js +77 -59
- package/src/utils.js.map +1 -1
package/src/secure-string.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secure-string.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/secure-string.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"secure-string.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/secure-string.ts"],"names":[],"mappings":"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"}
|
package/src/services/aes-gcm.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AESGCMService = void 0;
|
|
4
|
+
const constants_1 = require("../constants");
|
|
5
|
+
const i18n_setup_1 = require("../i18n-setup");
|
|
6
|
+
const enumerations_1 = require("../enumerations");
|
|
7
|
+
class AESGCMService {
|
|
5
8
|
static ALGORITHM_NAME = 'AES-GCM';
|
|
6
9
|
/**
|
|
7
10
|
* Encrypt data using AES-GCM
|
|
@@ -9,20 +12,20 @@ export class AESGCMService {
|
|
|
9
12
|
* @param key Key to use for encryption (must be 16, 24 or 32 bytes for AES)
|
|
10
13
|
* @returns Encrypted data
|
|
11
14
|
*/
|
|
12
|
-
static async encrypt(data, key, authTag = false, eciesParams = Constants.ECIES, aad) {
|
|
15
|
+
static async encrypt(data, key, authTag = false, eciesParams = constants_1.Constants.ECIES, aad) {
|
|
13
16
|
// Validate key length (AES supports 16, 24, or 32 bytes)
|
|
14
17
|
if (!key || (key.length !== 16 && key.length !== 24 && key.length !== 32)) {
|
|
15
|
-
const engine = getEciesI18nEngine();
|
|
16
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_InvalidAESKeyLength));
|
|
18
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
19
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidAESKeyLength));
|
|
17
20
|
}
|
|
18
21
|
// Validate data exists (empty data is allowed for AES-GCM)
|
|
19
22
|
if (!data) {
|
|
20
|
-
const engine = getEciesI18nEngine();
|
|
21
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_CannotEncryptEmptyData));
|
|
23
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
24
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_CannotEncryptEmptyData));
|
|
22
25
|
}
|
|
23
26
|
if (data.length > eciesParams.MAX_RAW_DATA_SIZE) {
|
|
24
|
-
const engine = getEciesI18nEngine();
|
|
25
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_MessageLengthExceedsMaximumAllowedSizeTemplate, { messageLength: data.length }));
|
|
27
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
28
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_MessageLengthExceedsMaximumAllowedSizeTemplate, { messageLength: data.length }));
|
|
26
29
|
}
|
|
27
30
|
const cryptoKey = await crypto.subtle.importKey('raw', new Uint8Array(key), { name: AESGCMService.ALGORITHM_NAME }, false, ['encrypt']);
|
|
28
31
|
const eciesConsts = eciesParams;
|
|
@@ -83,13 +86,13 @@ export class AESGCMService {
|
|
|
83
86
|
* @param hasAuthTag Whether the combined data includes an authentication tag
|
|
84
87
|
* @returns Object containing the split components
|
|
85
88
|
*/
|
|
86
|
-
static splitEncryptedData(combinedData, hasAuthTag = true, eciesParams = Constants.ECIES) {
|
|
89
|
+
static splitEncryptedData(combinedData, hasAuthTag = true, eciesParams = constants_1.Constants.ECIES) {
|
|
87
90
|
const eciesConsts = eciesParams;
|
|
88
91
|
const ivLength = eciesConsts.IV_SIZE;
|
|
89
92
|
const tagLength = hasAuthTag ? eciesConsts.AUTH_TAG_SIZE : 0;
|
|
90
93
|
if (combinedData.length < ivLength + tagLength) {
|
|
91
|
-
const engine = getEciesI18nEngine();
|
|
92
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_CombinedDataTooShortForComponents));
|
|
94
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
95
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_CombinedDataTooShortForComponents));
|
|
93
96
|
}
|
|
94
97
|
const iv = combinedData.slice(0, ivLength);
|
|
95
98
|
const encryptedDataWithTag = combinedData.slice(ivLength);
|
|
@@ -103,22 +106,22 @@ export class AESGCMService {
|
|
|
103
106
|
* @param authTag Whether the encrypted data includes an authentication tag
|
|
104
107
|
* @returns Decrypted data
|
|
105
108
|
*/
|
|
106
|
-
static async decrypt(iv, encryptedData, key, authTag = false, eciesParams = Constants.ECIES, aad) {
|
|
109
|
+
static async decrypt(iv, encryptedData, key, authTag = false, eciesParams = constants_1.Constants.ECIES, aad) {
|
|
107
110
|
const eciesConsts = eciesParams;
|
|
108
111
|
// Validate key length
|
|
109
112
|
if (!key || (key.length !== 16 && key.length !== 24 && key.length !== 32)) {
|
|
110
|
-
const engine = getEciesI18nEngine();
|
|
111
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_InvalidAESKeyLength));
|
|
113
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
114
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidAESKeyLength));
|
|
112
115
|
}
|
|
113
116
|
// Validate IV
|
|
114
117
|
if (!iv || iv.length !== eciesConsts.IV_SIZE) {
|
|
115
|
-
const engine = getEciesI18nEngine();
|
|
116
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_InvalidIV));
|
|
118
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
119
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidIV));
|
|
117
120
|
}
|
|
118
121
|
// Validate encrypted data exists (empty encrypted data is allowed)
|
|
119
122
|
if (!encryptedData) {
|
|
120
|
-
const engine = getEciesI18nEngine();
|
|
121
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_CannotDecryptEmptyData));
|
|
123
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
124
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_CannotDecryptEmptyData));
|
|
122
125
|
}
|
|
123
126
|
const cryptoKey = await crypto.subtle.importKey('raw', new Uint8Array(key), { name: AESGCMService.ALGORITHM_NAME }, false, ['decrypt']);
|
|
124
127
|
if (!authTag) {
|
|
@@ -139,4 +142,5 @@ export class AESGCMService {
|
|
|
139
142
|
return new Uint8Array(decryptedResult);
|
|
140
143
|
}
|
|
141
144
|
}
|
|
145
|
+
exports.AESGCMService = AESGCMService;
|
|
142
146
|
//# sourceMappingURL=aes-gcm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aes-gcm.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/services/aes-gcm.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"aes-gcm.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/services/aes-gcm.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChunkProcessor = void 0;
|
|
4
|
+
const sha2_js_1 = require("@noble/hashes/sha2.js");
|
|
5
|
+
const constants_1 = require("../constants");
|
|
6
|
+
const encrypted_chunk_1 = require("../interfaces/encrypted-chunk");
|
|
7
|
+
const i18n_setup_1 = require("../i18n-setup");
|
|
8
|
+
const ecies_string_key_1 = require("../enumerations/ecies-string-key");
|
|
6
9
|
/**
|
|
7
10
|
* Processes chunks for streaming encryption/decryption
|
|
8
11
|
*/
|
|
9
|
-
|
|
12
|
+
class ChunkProcessor {
|
|
10
13
|
ecies;
|
|
11
14
|
eciesConsts;
|
|
12
|
-
constructor(ecies, eciesConsts = Constants.ECIES) {
|
|
15
|
+
constructor(ecies, eciesConsts = constants_1.Constants.ECIES) {
|
|
13
16
|
this.ecies = ecies;
|
|
14
17
|
this.eciesConsts = eciesConsts;
|
|
15
18
|
}
|
|
@@ -17,7 +20,7 @@ export class ChunkProcessor {
|
|
|
17
20
|
* Build chunk header
|
|
18
21
|
*/
|
|
19
22
|
buildChunkHeader(header) {
|
|
20
|
-
const buffer = new Uint8Array(CHUNK_CONSTANTS.HEADER_SIZE);
|
|
23
|
+
const buffer = new Uint8Array(encrypted_chunk_1.CHUNK_CONSTANTS.HEADER_SIZE);
|
|
21
24
|
const view = new DataView(buffer.buffer);
|
|
22
25
|
view.setUint32(0, header.magic, false);
|
|
23
26
|
view.setUint16(4, header.version, false);
|
|
@@ -32,18 +35,18 @@ export class ChunkProcessor {
|
|
|
32
35
|
* Parse chunk header
|
|
33
36
|
*/
|
|
34
37
|
parseChunkHeader(data) {
|
|
35
|
-
const engine = getEciesI18nEngine();
|
|
36
|
-
if (data.length < CHUNK_CONSTANTS.HEADER_SIZE) {
|
|
37
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Chunk_DataTooShortForHeader));
|
|
38
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
39
|
+
if (data.length < encrypted_chunk_1.CHUNK_CONSTANTS.HEADER_SIZE) {
|
|
40
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, ecies_string_key_1.EciesStringKey.Error_Chunk_DataTooShortForHeader));
|
|
38
41
|
}
|
|
39
42
|
const view = new DataView(data.buffer, data.byteOffset);
|
|
40
43
|
const magic = view.getUint32(0, false);
|
|
41
|
-
if (magic !== CHUNK_CONSTANTS.MAGIC) {
|
|
42
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Chunk_InvalidMagicBytes));
|
|
44
|
+
if (magic !== encrypted_chunk_1.CHUNK_CONSTANTS.MAGIC) {
|
|
45
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, ecies_string_key_1.EciesStringKey.Error_Chunk_InvalidMagicBytes));
|
|
43
46
|
}
|
|
44
47
|
const version = view.getUint16(4, false);
|
|
45
|
-
if (version !== CHUNK_CONSTANTS.VERSION) {
|
|
46
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Chunk_UnsupportedVersion));
|
|
48
|
+
if (version !== encrypted_chunk_1.CHUNK_CONSTANTS.VERSION) {
|
|
49
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, ecies_string_key_1.EciesStringKey.Error_Chunk_UnsupportedVersion));
|
|
47
50
|
}
|
|
48
51
|
return {
|
|
49
52
|
magic,
|
|
@@ -61,16 +64,16 @@ export class ChunkProcessor {
|
|
|
61
64
|
// Encrypt data
|
|
62
65
|
const encrypted = await this.ecies.encryptSimpleOrSingle(false, publicKey, data);
|
|
63
66
|
// Calculate checksum if requested
|
|
64
|
-
const checksum = includeChecksum ? sha256(data) : undefined;
|
|
67
|
+
const checksum = includeChecksum ? (0, sha2_js_1.sha256)(data) : undefined;
|
|
65
68
|
// Build header
|
|
66
69
|
let flags = 0;
|
|
67
70
|
if (isLast)
|
|
68
|
-
flags |= CHUNK_CONSTANTS.FLAG_IS_LAST;
|
|
71
|
+
flags |= encrypted_chunk_1.CHUNK_CONSTANTS.FLAG_IS_LAST;
|
|
69
72
|
if (includeChecksum)
|
|
70
|
-
flags |= CHUNK_CONSTANTS.FLAG_HAS_CHECKSUM;
|
|
73
|
+
flags |= encrypted_chunk_1.CHUNK_CONSTANTS.FLAG_HAS_CHECKSUM;
|
|
71
74
|
const header = this.buildChunkHeader({
|
|
72
|
-
magic: CHUNK_CONSTANTS.MAGIC,
|
|
73
|
-
version: CHUNK_CONSTANTS.VERSION,
|
|
75
|
+
magic: encrypted_chunk_1.CHUNK_CONSTANTS.MAGIC,
|
|
76
|
+
version: encrypted_chunk_1.CHUNK_CONSTANTS.VERSION,
|
|
74
77
|
index,
|
|
75
78
|
originalSize: data.length,
|
|
76
79
|
encryptedSize: encrypted.length,
|
|
@@ -107,39 +110,40 @@ export class ChunkProcessor {
|
|
|
107
110
|
// Parse header
|
|
108
111
|
const header = this.parseChunkHeader(chunkData);
|
|
109
112
|
// Extract encrypted data
|
|
110
|
-
const hasChecksum = (header.flags & CHUNK_CONSTANTS.FLAG_HAS_CHECKSUM) !== 0;
|
|
111
|
-
const encryptedStart = CHUNK_CONSTANTS.HEADER_SIZE;
|
|
113
|
+
const hasChecksum = (header.flags & encrypted_chunk_1.CHUNK_CONSTANTS.FLAG_HAS_CHECKSUM) !== 0;
|
|
114
|
+
const encryptedStart = encrypted_chunk_1.CHUNK_CONSTANTS.HEADER_SIZE;
|
|
112
115
|
const encryptedEnd = hasChecksum
|
|
113
|
-
? chunkData.length - CHUNK_CONSTANTS.CHECKSUM_SIZE
|
|
116
|
+
? chunkData.length - encrypted_chunk_1.CHUNK_CONSTANTS.CHECKSUM_SIZE
|
|
114
117
|
: chunkData.length;
|
|
115
118
|
const encrypted = chunkData.slice(encryptedStart, encryptedEnd);
|
|
116
119
|
// Validate encrypted size matches header
|
|
117
120
|
if (encrypted.length !== header.encryptedSize) {
|
|
118
|
-
const engine = getEciesI18nEngine();
|
|
119
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Chunk_EncryptedSizeMismatchTemplate, { expectedSize: header.encryptedSize, actualSize: encrypted.length }));
|
|
121
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
122
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, ecies_string_key_1.EciesStringKey.Error_Chunk_EncryptedSizeMismatchTemplate, { expectedSize: header.encryptedSize, actualSize: encrypted.length }));
|
|
120
123
|
}
|
|
121
124
|
// Decrypt
|
|
122
125
|
const decrypted = await this.ecies.decryptSimpleOrSingleWithHeader(false, privateKey, encrypted);
|
|
123
126
|
// Verify checksum if present
|
|
124
127
|
if (hasChecksum) {
|
|
125
|
-
const storedChecksum = chunkData.slice(-CHUNK_CONSTANTS.CHECKSUM_SIZE);
|
|
126
|
-
const computedChecksum = sha256(decrypted);
|
|
128
|
+
const storedChecksum = chunkData.slice(-encrypted_chunk_1.CHUNK_CONSTANTS.CHECKSUM_SIZE);
|
|
129
|
+
const computedChecksum = (0, sha2_js_1.sha256)(decrypted);
|
|
127
130
|
// Constant-time comparison to prevent timing attacks
|
|
128
131
|
let diff = 0;
|
|
129
|
-
for (let i = 0; i < CHUNK_CONSTANTS.CHECKSUM_SIZE; i++) {
|
|
132
|
+
for (let i = 0; i < encrypted_chunk_1.CHUNK_CONSTANTS.CHECKSUM_SIZE; i++) {
|
|
130
133
|
diff |= storedChecksum[i] ^ computedChecksum[i];
|
|
131
134
|
}
|
|
132
135
|
if (diff !== 0) {
|
|
133
|
-
const engine = getEciesI18nEngine();
|
|
134
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Chunk_ChecksumMismatch));
|
|
136
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
137
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, ecies_string_key_1.EciesStringKey.Error_Chunk_ChecksumMismatch));
|
|
135
138
|
}
|
|
136
139
|
}
|
|
137
140
|
// Verify size
|
|
138
141
|
if (decrypted.length !== header.originalSize) {
|
|
139
|
-
const engine = getEciesI18nEngine();
|
|
140
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Chunk_DecryptedSizeMismatch));
|
|
142
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
143
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, ecies_string_key_1.EciesStringKey.Error_Chunk_DecryptedSizeMismatch));
|
|
141
144
|
}
|
|
142
145
|
return { data: decrypted, header };
|
|
143
146
|
}
|
|
144
147
|
}
|
|
148
|
+
exports.ChunkProcessor = ChunkProcessor;
|
|
145
149
|
//# sourceMappingURL=chunk-processor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-processor.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/services/chunk-processor.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"chunk-processor.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/services/chunk-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EciesCryptoCore = void 0;
|
|
4
|
+
const wallet_1 = require("@ethereumjs/wallet");
|
|
5
|
+
const bip32_1 = require("@scure/bip32");
|
|
6
|
+
const bip39_1 = require("@scure/bip39");
|
|
7
|
+
const english_1 = require("@scure/bip39/wordlists/english");
|
|
8
|
+
const constants_1 = require("../../constants");
|
|
9
|
+
const secure_string_1 = require("../../secure-string");
|
|
10
|
+
const secp256k1_js_1 = require("@noble/curves/secp256k1.js");
|
|
11
|
+
const hkdf_js_1 = require("@noble/hashes/hkdf.js");
|
|
12
|
+
const sha2_js_1 = require("@noble/hashes/sha2.js");
|
|
13
|
+
const enumerations_1 = require("../../enumerations");
|
|
14
|
+
const i18n_setup_1 = require("../../i18n-setup");
|
|
12
15
|
/**
|
|
13
16
|
* Browser-compatible crypto core for ECIES operations
|
|
14
17
|
* Uses @scure libraries for browser compatibility
|
|
15
18
|
*/
|
|
16
|
-
|
|
19
|
+
class EciesCryptoCore {
|
|
17
20
|
_config;
|
|
18
21
|
_eciesConsts;
|
|
19
|
-
constructor(config, eciesParams = Constants.ECIES) {
|
|
22
|
+
constructor(config, eciesParams = constants_1.Constants.ECIES) {
|
|
20
23
|
this._config = config;
|
|
21
24
|
this._eciesConsts = eciesParams;
|
|
22
25
|
}
|
|
@@ -28,8 +31,8 @@ export class EciesCryptoCore {
|
|
|
28
31
|
*/
|
|
29
32
|
normalizePublicKey(publicKey) {
|
|
30
33
|
if (!publicKey) {
|
|
31
|
-
const engine = getEciesI18nEngine();
|
|
32
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_ReceivedNullOrUndefinedPublicKey));
|
|
34
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
35
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_ReceivedNullOrUndefinedPublicKey));
|
|
33
36
|
}
|
|
34
37
|
const keyLength = publicKey.length;
|
|
35
38
|
let normalizedKey;
|
|
@@ -50,8 +53,8 @@ export class EciesCryptoCore {
|
|
|
50
53
|
normalizedKey.set(publicKey, 1);
|
|
51
54
|
}
|
|
52
55
|
else {
|
|
53
|
-
const engine = getEciesI18nEngine();
|
|
54
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_InvalidPublicKeyFormatOrLengthTemplate, { keyLength }));
|
|
56
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
57
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidPublicKeyFormatOrLengthTemplate, { keyLength }));
|
|
55
58
|
}
|
|
56
59
|
// Basic validation: check it's not all zeros
|
|
57
60
|
let allZeros = true;
|
|
@@ -63,8 +66,8 @@ export class EciesCryptoCore {
|
|
|
63
66
|
}
|
|
64
67
|
}
|
|
65
68
|
if (allZeros) {
|
|
66
|
-
const engine = getEciesI18nEngine();
|
|
67
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_InvalidPublicKeyNotOnCurve));
|
|
69
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
70
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidPublicKeyNotOnCurve));
|
|
68
71
|
}
|
|
69
72
|
return normalizedKey;
|
|
70
73
|
}
|
|
@@ -72,25 +75,25 @@ export class EciesCryptoCore {
|
|
|
72
75
|
* Generate a new mnemonic
|
|
73
76
|
*/
|
|
74
77
|
generateNewMnemonic() {
|
|
75
|
-
return new SecureString(generateMnemonic(wordlist, this._config.mnemonicStrength));
|
|
78
|
+
return new secure_string_1.SecureString((0, bip39_1.generateMnemonic)(english_1.wordlist, this._config.mnemonicStrength));
|
|
76
79
|
}
|
|
77
80
|
/**
|
|
78
81
|
* Generate wallet and seed from mnemonic
|
|
79
82
|
*/
|
|
80
83
|
walletAndSeedFromMnemonic(mnemonic) {
|
|
81
|
-
if (!mnemonic || !validateMnemonic(mnemonic.value ?? '', wordlist)) {
|
|
82
|
-
const engine = getEciesI18nEngine();
|
|
83
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_InvalidMnemonic));
|
|
84
|
+
if (!mnemonic || !(0, bip39_1.validateMnemonic)(mnemonic.value ?? '', english_1.wordlist)) {
|
|
85
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
86
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidMnemonic));
|
|
84
87
|
}
|
|
85
|
-
const seed = mnemonicToSeedSync(mnemonic.value ?? '');
|
|
86
|
-
const hdKey = HDKey.fromMasterSeed(seed);
|
|
88
|
+
const seed = (0, bip39_1.mnemonicToSeedSync)(mnemonic.value ?? '');
|
|
89
|
+
const hdKey = bip32_1.HDKey.fromMasterSeed(seed);
|
|
87
90
|
const derivedKey = hdKey.derive(this._config.primaryKeyDerivationPath);
|
|
88
91
|
if (!derivedKey.privateKey) {
|
|
89
|
-
const engine = getEciesI18nEngine();
|
|
90
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_FailedToDervivePrivateKey));
|
|
92
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
93
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_FailedToDervivePrivateKey));
|
|
91
94
|
}
|
|
92
95
|
const privateKey = derivedKey.privateKey;
|
|
93
|
-
const wallet = new Wallet(privateKey);
|
|
96
|
+
const wallet = new wallet_1.Wallet(privateKey);
|
|
94
97
|
return {
|
|
95
98
|
wallet,
|
|
96
99
|
seed,
|
|
@@ -100,14 +103,14 @@ export class EciesCryptoCore {
|
|
|
100
103
|
* Create a simple key pair from a seed
|
|
101
104
|
*/
|
|
102
105
|
seedToSimpleKeyPair(seed) {
|
|
103
|
-
const hdKey = HDKey.fromMasterSeed(seed);
|
|
106
|
+
const hdKey = bip32_1.HDKey.fromMasterSeed(seed);
|
|
104
107
|
const derivedKey = hdKey.derive(this._config.primaryKeyDerivationPath);
|
|
105
108
|
if (!derivedKey.privateKey) {
|
|
106
|
-
const engine = getEciesI18nEngine();
|
|
107
|
-
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_FailedToDervivePrivateKey));
|
|
109
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
110
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_FailedToDervivePrivateKey));
|
|
108
111
|
}
|
|
109
112
|
const privateKey = derivedKey.privateKey;
|
|
110
|
-
const publicKey = secp256k1.getPublicKey(privateKey, true); // compressed
|
|
113
|
+
const publicKey = secp256k1_js_1.secp256k1.getPublicKey(privateKey, true); // compressed
|
|
111
114
|
return {
|
|
112
115
|
privateKey,
|
|
113
116
|
publicKey,
|
|
@@ -124,13 +127,13 @@ export class EciesCryptoCore {
|
|
|
124
127
|
* Generate a random private key
|
|
125
128
|
*/
|
|
126
129
|
generatePrivateKey() {
|
|
127
|
-
return secp256k1.utils.randomSecretKey();
|
|
130
|
+
return secp256k1_js_1.secp256k1.utils.randomSecretKey();
|
|
128
131
|
}
|
|
129
132
|
/**
|
|
130
133
|
* Get public key from private key
|
|
131
134
|
*/
|
|
132
135
|
getPublicKey(privateKey) {
|
|
133
|
-
const publicKeyPoint = secp256k1.getPublicKey(privateKey, true); // compressed
|
|
136
|
+
const publicKeyPoint = secp256k1_js_1.secp256k1.getPublicKey(privateKey, true); // compressed
|
|
134
137
|
return publicKeyPoint;
|
|
135
138
|
}
|
|
136
139
|
/**
|
|
@@ -149,7 +152,7 @@ export class EciesCryptoCore {
|
|
|
149
152
|
const normalizedPublicKey = this.normalizePublicKey(publicKey);
|
|
150
153
|
// Use uncompressed shared secret to match Node.js ECDH behavior
|
|
151
154
|
// Node.js ECDH.computeSecret() returns the x-coordinate of the shared point
|
|
152
|
-
const sharedSecret = secp256k1.getSharedSecret(privateKey, normalizedPublicKey, false);
|
|
155
|
+
const sharedSecret = secp256k1_js_1.secp256k1.getSharedSecret(privateKey, normalizedPublicKey, false);
|
|
153
156
|
// Return only the x-coordinate (first 32 bytes after the 0x04 prefix)
|
|
154
157
|
return sharedSecret.slice(1, 33);
|
|
155
158
|
}
|
|
@@ -161,7 +164,7 @@ export class EciesCryptoCore {
|
|
|
161
164
|
* @param length Length of the output key (default 32 for AES-256)
|
|
162
165
|
*/
|
|
163
166
|
deriveSharedKey(sharedSecret, salt = new Uint8Array(0), info = new Uint8Array(0), length = 32) {
|
|
164
|
-
return hkdf(sha256, sharedSecret, salt, info, length);
|
|
167
|
+
return (0, hkdf_js_1.hkdf)(sha2_js_1.sha256, sharedSecret, salt, info, length);
|
|
165
168
|
}
|
|
166
169
|
/**
|
|
167
170
|
* Sign a message using ECDSA
|
|
@@ -169,8 +172,8 @@ export class EciesCryptoCore {
|
|
|
169
172
|
* @param message The message to sign
|
|
170
173
|
*/
|
|
171
174
|
sign(privateKey, message) {
|
|
172
|
-
const hash = sha256(message);
|
|
173
|
-
const signature = secp256k1.sign(hash, privateKey);
|
|
175
|
+
const hash = (0, sha2_js_1.sha256)(message);
|
|
176
|
+
const signature = secp256k1_js_1.secp256k1.sign(hash, privateKey);
|
|
174
177
|
if (signature instanceof Uint8Array) {
|
|
175
178
|
return signature;
|
|
176
179
|
}
|
|
@@ -193,13 +196,14 @@ export class EciesCryptoCore {
|
|
|
193
196
|
* @param signature The signature to verify
|
|
194
197
|
*/
|
|
195
198
|
verify(publicKey, message, signature) {
|
|
196
|
-
const hash = sha256(message);
|
|
199
|
+
const hash = (0, sha2_js_1.sha256)(message);
|
|
197
200
|
try {
|
|
198
|
-
return secp256k1.verify(signature, hash, publicKey);
|
|
201
|
+
return secp256k1_js_1.secp256k1.verify(signature, hash, publicKey);
|
|
199
202
|
}
|
|
200
203
|
catch (e) {
|
|
201
204
|
return false;
|
|
202
205
|
}
|
|
203
206
|
}
|
|
204
207
|
}
|
|
208
|
+
exports.EciesCryptoCore = EciesCryptoCore;
|
|
205
209
|
//# sourceMappingURL=crypto-core.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-core.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/crypto-core.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"crypto-core.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/crypto-core.ts"],"names":[],"mappings":"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"}
|