@digitaldefiance/ecies-lib 1.1.23 → 1.1.24
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 +4 -0
- package/package.json +13 -33
- package/src/constants.ts +474 -0
- package/src/email-string.ts +83 -0
- package/src/enumerations/ecies-encryption-type.ts +102 -0
- package/src/enumerations/ecies-error-type.ts +31 -0
- package/src/enumerations/ecies-string-key.ts +108 -0
- package/src/enumerations/guid-brand-type.ts +26 -0
- package/src/enumerations/guid-error-type.ts +6 -0
- package/{dist/enumerations/index.d.ts → src/enumerations/index.ts} +0 -1
- package/src/enumerations/invalid-email-type.ts +5 -0
- package/src/enumerations/length-encoding-type.ts +6 -0
- package/src/enumerations/length-error-type.ts +5 -0
- package/src/enumerations/member-error-type.ts +106 -0
- package/{dist/enumerations/member-type.d.ts → src/enumerations/member-type.ts} +7 -6
- package/src/enumerations/password-login-error-type.ts +4 -0
- package/src/enumerations/pbkdf2-error-type.ts +5 -0
- package/src/enumerations/pbkdf2-profile.ts +5 -0
- package/src/enumerations/secure-storage-error-type.ts +5 -0
- package/src/errors/disposed.ts +15 -0
- package/src/errors/ecies.ts +34 -0
- package/src/errors/guid.ts +34 -0
- package/{dist/errors/index.d.ts → src/errors/index.ts} +0 -1
- package/src/errors/invalid-email.ts +11 -0
- package/src/errors/length.ts +11 -0
- package/src/errors/member.ts +12 -0
- package/src/errors/pbkdf2.ts +12 -0
- package/src/errors/secure-storage.ts +13 -0
- package/src/errors/simple-ecies.ts +18 -0
- package/src/errors/simple-test-error.ts +6 -0
- package/src/guid.ts +800 -0
- package/src/i18n-setup.ts +1312 -0
- package/{dist/index.d.ts → src/index.ts} +0 -1
- package/src/interfaces/checksum-config.ts +4 -0
- package/src/interfaces/checksum-consts.ts +13 -0
- package/src/interfaces/constants.ts +48 -0
- package/src/interfaces/ecies-config.ts +8 -0
- package/src/interfaces/ecies-consts.ts +70 -0
- package/src/interfaces/ecies-file-service.ts +6 -0
- package/src/interfaces/guid.ts +53 -0
- package/{dist/interfaces/index.d.ts → src/interfaces/index.ts} +0 -1
- package/src/interfaces/library-error.ts +23 -0
- package/src/interfaces/member-operational.ts +54 -0
- package/{dist/interfaces/member-storage.d.ts → src/interfaces/member-storage.ts} +11 -10
- package/{dist/interfaces/member-with-mnemonic.d.ts → src/interfaces/member-with-mnemonic.ts} +3 -3
- package/src/interfaces/pbkdf2-config.ts +6 -0
- package/src/interfaces/pbkdf2-consts.ts +10 -0
- package/src/interfaces/pbkdf2-result.ts +5 -0
- package/src/member.ts +429 -0
- package/{dist/pbkdf2-profiles.d.ts → src/pbkdf2-profiles.ts} +2 -2
- package/src/phone-number.ts +18 -0
- package/src/regexes.ts +10 -0
- package/src/secure-buffer.ts +183 -0
- package/src/secure-string.ts +229 -0
- package/src/services/aes-gcm.ts +177 -0
- package/src/services/ecies/README.md +147 -0
- package/src/services/ecies/crypto-core.ts +180 -0
- package/src/services/ecies/example.ts +185 -0
- package/src/services/ecies/file.ts +167 -0
- package/{dist/services/ecies/index.d.ts → src/services/ecies/index.ts} +3 -1
- package/src/services/ecies/integration.ts +241 -0
- package/src/services/ecies/interfaces.ts +59 -0
- package/src/services/ecies/manual-test.ts +219 -0
- package/src/services/ecies/multi-recipient.ts +394 -0
- package/src/services/ecies/service.ts +317 -0
- package/src/services/ecies/signature.ts +93 -0
- package/src/services/ecies/single-recipient.ts +340 -0
- package/{dist/services/index.d.ts → src/services/index.ts} +0 -1
- package/src/services/password-login.ts +228 -0
- package/src/services/pbkdf2.ts +172 -0
- package/src/services/xor.ts +65 -0
- package/src/types/deep-partial.ts +11 -0
- package/{dist/types.d.ts → src/types.ts} +10 -4
- package/src/utils.ts +331 -0
- package/dist/constants.d.ts +0 -46
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -358
- package/dist/constants.js.map +0 -1
- package/dist/email-string.d.ts +0 -42
- package/dist/email-string.d.ts.map +0 -1
- package/dist/email-string.js +0 -75
- package/dist/email-string.js.map +0 -1
- package/dist/enumerations/ecies-encryption-type.d.ts +0 -15
- package/dist/enumerations/ecies-encryption-type.d.ts.map +0 -1
- package/dist/enumerations/ecies-encryption-type.js +0 -71
- package/dist/enumerations/ecies-encryption-type.js.map +0 -1
- package/dist/enumerations/ecies-error-type.d.ts +0 -32
- package/dist/enumerations/ecies-error-type.d.ts.map +0 -1
- package/dist/enumerations/ecies-error-type.js +0 -36
- package/dist/enumerations/ecies-error-type.js.map +0 -1
- package/dist/enumerations/ecies-string-key.d.ts +0 -96
- package/dist/enumerations/ecies-string-key.d.ts.map +0 -1
- package/dist/enumerations/ecies-string-key.js +0 -105
- package/dist/enumerations/ecies-string-key.js.map +0 -1
- package/dist/enumerations/guid-brand-type.d.ts +0 -27
- package/dist/enumerations/guid-brand-type.d.ts.map +0 -1
- package/dist/enumerations/guid-brand-type.js +0 -31
- package/dist/enumerations/guid-brand-type.js.map +0 -1
- package/dist/enumerations/guid-error-type.d.ts +0 -7
- package/dist/enumerations/guid-error-type.d.ts.map +0 -1
- package/dist/enumerations/guid-error-type.js +0 -11
- package/dist/enumerations/guid-error-type.js.map +0 -1
- package/dist/enumerations/index.d.ts.map +0 -1
- package/dist/enumerations/index.js +0 -31
- package/dist/enumerations/index.js.map +0 -1
- package/dist/enumerations/invalid-email-type.d.ts +0 -6
- package/dist/enumerations/invalid-email-type.d.ts.map +0 -1
- package/dist/enumerations/invalid-email-type.js +0 -10
- package/dist/enumerations/invalid-email-type.js.map +0 -1
- package/dist/enumerations/length-encoding-type.d.ts +0 -7
- package/dist/enumerations/length-encoding-type.d.ts.map +0 -1
- package/dist/enumerations/length-encoding-type.js +0 -11
- package/dist/enumerations/length-encoding-type.js.map +0 -1
- package/dist/enumerations/length-error-type.d.ts +0 -6
- package/dist/enumerations/length-error-type.d.ts.map +0 -1
- package/dist/enumerations/length-error-type.js +0 -10
- package/dist/enumerations/length-error-type.js.map +0 -1
- package/dist/enumerations/member-error-type.d.ts +0 -87
- package/dist/enumerations/member-error-type.d.ts.map +0 -1
- package/dist/enumerations/member-error-type.js +0 -91
- package/dist/enumerations/member-error-type.js.map +0 -1
- package/dist/enumerations/member-type.d.ts.map +0 -1
- package/dist/enumerations/member-type.js +0 -19
- package/dist/enumerations/member-type.js.map +0 -1
- package/dist/enumerations/password-login-error-type.d.ts +0 -5
- package/dist/enumerations/password-login-error-type.d.ts.map +0 -1
- package/dist/enumerations/password-login-error-type.js +0 -9
- package/dist/enumerations/password-login-error-type.js.map +0 -1
- package/dist/enumerations/pbkdf2-error-type.d.ts +0 -6
- package/dist/enumerations/pbkdf2-error-type.d.ts.map +0 -1
- package/dist/enumerations/pbkdf2-error-type.js +0 -10
- package/dist/enumerations/pbkdf2-error-type.js.map +0 -1
- package/dist/enumerations/pbkdf2-profile.d.ts +0 -6
- package/dist/enumerations/pbkdf2-profile.d.ts.map +0 -1
- package/dist/enumerations/pbkdf2-profile.js +0 -10
- package/dist/enumerations/pbkdf2-profile.js.map +0 -1
- package/dist/enumerations/secure-storage-error-type.d.ts +0 -6
- package/dist/enumerations/secure-storage-error-type.d.ts.map +0 -1
- package/dist/enumerations/secure-storage-error-type.js +0 -10
- package/dist/enumerations/secure-storage-error-type.js.map +0 -1
- package/dist/errors/disposed.d.ts +0 -4
- package/dist/errors/disposed.d.ts.map +0 -1
- package/dist/errors/disposed.js +0 -20
- package/dist/errors/disposed.js.map +0 -1
- package/dist/errors/ecies.d.ts +0 -7
- package/dist/errors/ecies.d.ts.map +0 -1
- package/dist/errors/ecies.js +0 -15
- package/dist/errors/ecies.js.map +0 -1
- package/dist/errors/guid.d.ts +0 -15
- package/dist/errors/guid.d.ts.map +0 -1
- package/dist/errors/guid.js +0 -26
- package/dist/errors/guid.js.map +0 -1
- package/dist/errors/index.d.ts.map +0 -1
- package/dist/errors/index.js +0 -25
- package/dist/errors/index.js.map +0 -1
- package/dist/errors/invalid-email.d.ts +0 -7
- package/dist/errors/invalid-email.d.ts.map +0 -1
- package/dist/errors/invalid-email.js +0 -14
- package/dist/errors/invalid-email.js.map +0 -1
- package/dist/errors/length.d.ts +0 -7
- package/dist/errors/length.d.ts.map +0 -1
- package/dist/errors/length.js +0 -14
- package/dist/errors/length.js.map +0 -1
- package/dist/errors/member.d.ts +0 -7
- package/dist/errors/member.d.ts.map +0 -1
- package/dist/errors/member.js +0 -14
- package/dist/errors/member.js.map +0 -1
- package/dist/errors/pbkdf2.d.ts +0 -7
- package/dist/errors/pbkdf2.d.ts.map +0 -1
- package/dist/errors/pbkdf2.js +0 -14
- package/dist/errors/pbkdf2.js.map +0 -1
- package/dist/errors/secure-storage.d.ts +0 -7
- package/dist/errors/secure-storage.d.ts.map +0 -1
- package/dist/errors/secure-storage.js +0 -15
- package/dist/errors/secure-storage.js.map +0 -1
- package/dist/errors/simple-ecies.d.ts +0 -6
- package/dist/errors/simple-ecies.d.ts.map +0 -1
- package/dist/errors/simple-ecies.js +0 -15
- package/dist/errors/simple-ecies.js.map +0 -1
- package/dist/errors/simple-test-error.d.ts +0 -4
- package/dist/errors/simple-test-error.d.ts.map +0 -1
- package/dist/errors/simple-test-error.js +0 -11
- package/dist/errors/simple-test-error.js.map +0 -1
- package/dist/guid.d.ts +0 -153
- package/dist/guid.d.ts.map +0 -1
- package/dist/guid.js +0 -647
- package/dist/guid.js.map +0 -1
- package/dist/i18n-setup.d.ts +0 -24
- package/dist/i18n-setup.d.ts.map +0 -1
- package/dist/i18n-setup.js +0 -837
- package/dist/i18n-setup.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -32
- package/dist/index.js.map +0 -1
- package/dist/interfaces/checksum-config.d.ts +0 -5
- package/dist/interfaces/checksum-config.d.ts.map +0 -1
- package/dist/interfaces/checksum-config.js +0 -3
- package/dist/interfaces/checksum-config.js.map +0 -1
- package/dist/interfaces/checksum-consts.d.ts +0 -11
- package/dist/interfaces/checksum-consts.d.ts.map +0 -1
- package/dist/interfaces/checksum-consts.js +0 -3
- package/dist/interfaces/checksum-consts.js.map +0 -1
- package/dist/interfaces/constants.d.ts +0 -45
- package/dist/interfaces/constants.d.ts.map +0 -1
- package/dist/interfaces/constants.js +0 -3
- package/dist/interfaces/constants.js.map +0 -1
- package/dist/interfaces/ecies-config.d.ts +0 -9
- package/dist/interfaces/ecies-config.d.ts.map +0 -1
- package/dist/interfaces/ecies-config.js +0 -3
- package/dist/interfaces/ecies-config.js.map +0 -1
- package/dist/interfaces/ecies-consts.d.ts +0 -58
- package/dist/interfaces/ecies-consts.d.ts.map +0 -1
- package/dist/interfaces/ecies-consts.js +0 -3
- package/dist/interfaces/ecies-consts.js.map +0 -1
- package/dist/interfaces/ecies-file-service.d.ts +0 -7
- package/dist/interfaces/ecies-file-service.d.ts.map +0 -1
- package/dist/interfaces/ecies-file-service.js +0 -3
- package/dist/interfaces/ecies-file-service.js.map +0 -1
- package/dist/interfaces/guid.d.ts +0 -45
- package/dist/interfaces/guid.d.ts.map +0 -1
- package/dist/interfaces/guid.js +0 -3
- package/dist/interfaces/guid.js.map +0 -1
- package/dist/interfaces/index.d.ts.map +0 -1
- package/dist/interfaces/index.js +0 -30
- package/dist/interfaces/index.js.map +0 -1
- package/dist/interfaces/library-error.d.ts +0 -23
- package/dist/interfaces/library-error.d.ts.map +0 -1
- package/dist/interfaces/library-error.js +0 -3
- package/dist/interfaces/library-error.js.map +0 -1
- package/dist/interfaces/member-operational.d.ts +0 -40
- package/dist/interfaces/member-operational.d.ts.map +0 -1
- package/dist/interfaces/member-operational.js +0 -3
- package/dist/interfaces/member-operational.js.map +0 -1
- package/dist/interfaces/member-storage.d.ts.map +0 -1
- package/dist/interfaces/member-storage.js +0 -3
- package/dist/interfaces/member-storage.js.map +0 -1
- package/dist/interfaces/member-with-mnemonic.d.ts.map +0 -1
- package/dist/interfaces/member-with-mnemonic.js +0 -3
- package/dist/interfaces/member-with-mnemonic.js.map +0 -1
- package/dist/interfaces/pbkdf2-config.d.ts +0 -7
- package/dist/interfaces/pbkdf2-config.d.ts.map +0 -1
- package/dist/interfaces/pbkdf2-config.js +0 -3
- package/dist/interfaces/pbkdf2-config.js.map +0 -1
- package/dist/interfaces/pbkdf2-consts.d.ts +0 -9
- package/dist/interfaces/pbkdf2-consts.d.ts.map +0 -1
- package/dist/interfaces/pbkdf2-consts.js +0 -3
- package/dist/interfaces/pbkdf2-consts.js.map +0 -1
- package/dist/interfaces/pbkdf2-result.d.ts +0 -6
- package/dist/interfaces/pbkdf2-result.d.ts.map +0 -1
- package/dist/interfaces/pbkdf2-result.js +0 -3
- package/dist/interfaces/pbkdf2-result.js.map +0 -1
- package/dist/member.d.ts +0 -66
- package/dist/member.d.ts.map +0 -1
- package/dist/member.js +0 -271
- package/dist/member.js.map +0 -1
- package/dist/pbkdf2-profiles.d.ts.map +0 -1
- package/dist/pbkdf2-profiles.js +0 -3
- package/dist/pbkdf2-profiles.js.map +0 -1
- package/dist/phone-number.d.ts +0 -6
- package/dist/phone-number.d.ts.map +0 -1
- package/dist/phone-number.js +0 -22
- package/dist/phone-number.js.map +0 -1
- package/dist/regexes.d.ts +0 -7
- package/dist/regexes.d.ts.map +0 -1
- package/dist/regexes.js +0 -10
- package/dist/regexes.js.map +0 -1
- package/dist/secure-buffer.d.ts +0 -38
- package/dist/secure-buffer.d.ts.map +0 -1
- package/dist/secure-buffer.js +0 -168
- package/dist/secure-buffer.js.map +0 -1
- package/dist/secure-string.d.ts +0 -39
- package/dist/secure-string.d.ts.map +0 -1
- package/dist/secure-string.js +0 -195
- package/dist/secure-string.js.map +0 -1
- package/dist/services/aes-gcm.d.ts +0 -57
- package/dist/services/aes-gcm.d.ts.map +0 -1
- package/dist/services/aes-gcm.js +0 -111
- package/dist/services/aes-gcm.js.map +0 -1
- package/dist/services/ecies/crypto-core.d.ts +0 -51
- package/dist/services/ecies/crypto-core.d.ts.map +0 -1
- package/dist/services/ecies/crypto-core.js +0 -139
- package/dist/services/ecies/crypto-core.js.map +0 -1
- package/dist/services/ecies/example.d.ts +0 -25
- package/dist/services/ecies/example.d.ts.map +0 -1
- package/dist/services/ecies/example.js +0 -128
- package/dist/services/ecies/example.js.map +0 -1
- package/dist/services/ecies/file.d.ts +0 -18
- package/dist/services/ecies/file.d.ts.map +0 -1
- package/dist/services/ecies/file.js +0 -110
- package/dist/services/ecies/file.js.map +0 -1
- package/dist/services/ecies/index.d.ts.map +0 -1
- package/dist/services/ecies/index.js +0 -57
- package/dist/services/ecies/index.js.map +0 -1
- package/dist/services/ecies/integration.d.ts +0 -59
- package/dist/services/ecies/integration.d.ts.map +0 -1
- package/dist/services/ecies/integration.js +0 -172
- package/dist/services/ecies/integration.js.map +0 -1
- package/dist/services/ecies/interfaces.d.ts +0 -51
- package/dist/services/ecies/interfaces.d.ts.map +0 -1
- package/dist/services/ecies/interfaces.js +0 -6
- package/dist/services/ecies/interfaces.js.map +0 -1
- package/dist/services/ecies/manual-test.d.ts +0 -29
- package/dist/services/ecies/manual-test.d.ts.map +0 -1
- package/dist/services/ecies/manual-test.js +0 -171
- package/dist/services/ecies/manual-test.js.map +0 -1
- package/dist/services/ecies/multi-recipient.d.ts +0 -52
- package/dist/services/ecies/multi-recipient.d.ts.map +0 -1
- package/dist/services/ecies/multi-recipient.js +0 -243
- package/dist/services/ecies/multi-recipient.js.map +0 -1
- package/dist/services/ecies/service.d.ts +0 -104
- package/dist/services/ecies/service.d.ts.map +0 -1
- package/dist/services/ecies/service.js +0 -192
- package/dist/services/ecies/service.js.map +0 -1
- package/dist/services/ecies/signature.d.ts +0 -27
- package/dist/services/ecies/signature.d.ts.map +0 -1
- package/dist/services/ecies/signature.js +0 -76
- package/dist/services/ecies/signature.js.map +0 -1
- package/dist/services/ecies/single-recipient.d.ts +0 -46
- package/dist/services/ecies/single-recipient.d.ts.map +0 -1
- package/dist/services/ecies/single-recipient.js +0 -212
- package/dist/services/ecies/single-recipient.js.map +0 -1
- package/dist/services/index.d.ts.map +0 -1
- package/dist/services/index.js +0 -22
- package/dist/services/index.js.map +0 -1
- package/dist/services/password-login.d.ts +0 -49
- package/dist/services/password-login.d.ts.map +0 -1
- package/dist/services/password-login.js +0 -121
- package/dist/services/password-login.js.map +0 -1
- package/dist/services/pbkdf2.d.ts +0 -56
- package/dist/services/pbkdf2.d.ts.map +0 -1
- package/dist/services/pbkdf2.js +0 -114
- package/dist/services/pbkdf2.js.map +0 -1
- package/dist/services/xor.d.ts +0 -37
- package/dist/services/xor.d.ts.map +0 -1
- package/dist/services/xor.js +0 -67
- package/dist/services/xor.js.map +0 -1
- package/dist/types/deep-partial.d.ts +0 -4
- package/dist/types/deep-partial.d.ts.map +0 -1
- package/dist/types/deep-partial.js +0 -3
- package/dist/types/deep-partial.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
- package/dist/utils.d.ts +0 -68
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -288
- package/dist/utils.js.map +0 -1
|
@@ -1,243 +0,0 @@
|
|
|
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");
|
|
10
|
-
/**
|
|
11
|
-
* Browser-compatible multi-recipient ECIES encryption/decryption
|
|
12
|
-
*/
|
|
13
|
-
class EciesMultiRecipient {
|
|
14
|
-
cryptoCore;
|
|
15
|
-
eciesConsts;
|
|
16
|
-
constructor(config, eciesParams = constants_1.Constants.ECIES) {
|
|
17
|
-
this.cryptoCore = new crypto_core_1.EciesCryptoCore(config, eciesParams);
|
|
18
|
-
this.eciesConsts = eciesParams;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Get the header size for multi-recipient encryption
|
|
22
|
-
*/
|
|
23
|
-
getHeaderSize(recipientCount) {
|
|
24
|
-
return (this.eciesConsts.MULTIPLE.DATA_LENGTH_SIZE +
|
|
25
|
-
this.eciesConsts.MULTIPLE.RECIPIENT_COUNT_SIZE +
|
|
26
|
-
recipientCount * this.eciesConsts.MULTIPLE.RECIPIENT_ID_SIZE +
|
|
27
|
-
recipientCount * this.eciesConsts.MULTIPLE.ENCRYPTED_KEY_SIZE);
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Encrypt a message symmetric key with a public key
|
|
31
|
-
* @param receiverPublicKey The public key of the receiver
|
|
32
|
-
* @param messageSymmetricKey The message to encrypt
|
|
33
|
-
* @returns The encrypted message
|
|
34
|
-
*/
|
|
35
|
-
async encryptKey(receiverPublicKey, messageSymmetricKey) {
|
|
36
|
-
const ephemeralKeyPair = await this.cryptoCore.generateEphemeralKeyPair();
|
|
37
|
-
const sharedSecret = await this.cryptoCore.computeSharedSecret(ephemeralKeyPair.privateKey, receiverPublicKey);
|
|
38
|
-
const symKey = sharedSecret.slice(0, this.eciesConsts.SYMMETRIC.KEY_SIZE);
|
|
39
|
-
const encryptResult = await aes_gcm_1.AESGCMService.encrypt(messageSymmetricKey, symKey, true, this.eciesConsts);
|
|
40
|
-
const { encrypted, iv } = encryptResult;
|
|
41
|
-
const authTag = encryptResult.tag;
|
|
42
|
-
if (!authTag) {
|
|
43
|
-
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
44
|
-
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_AuthenticationTagIsRequiredForKeyEncryption));
|
|
45
|
-
}
|
|
46
|
-
return (0, utils_1.concatUint8Arrays)(new Uint8Array(ephemeralKeyPair.publicKey), iv, authTag, encrypted);
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Decrypts symmetric key encrypted with ECIES
|
|
50
|
-
* @param privateKey The private key to decrypt the data
|
|
51
|
-
* @param encryptedKey The data to decrypt
|
|
52
|
-
* @returns The decrypted data buffer
|
|
53
|
-
*/
|
|
54
|
-
async decryptKey(privateKey, encryptedKey) {
|
|
55
|
-
if (encryptedKey.length !== this.eciesConsts.MULTIPLE.ENCRYPTED_KEY_SIZE) {
|
|
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 }));
|
|
58
|
-
}
|
|
59
|
-
const ephemeralPublicKey = encryptedKey.slice(0, this.eciesConsts.PUBLIC_KEY_LENGTH);
|
|
60
|
-
const iv = encryptedKey.slice(this.eciesConsts.PUBLIC_KEY_LENGTH, this.eciesConsts.PUBLIC_KEY_LENGTH + this.eciesConsts.IV_SIZE);
|
|
61
|
-
const authTag = encryptedKey.slice(this.eciesConsts.PUBLIC_KEY_LENGTH + this.eciesConsts.IV_SIZE, this.eciesConsts.PUBLIC_KEY_LENGTH + this.eciesConsts.IV_SIZE + this.eciesConsts.AUTH_TAG_SIZE);
|
|
62
|
-
const encrypted = encryptedKey.slice(this.eciesConsts.PUBLIC_KEY_LENGTH + this.eciesConsts.IV_SIZE + this.eciesConsts.AUTH_TAG_SIZE);
|
|
63
|
-
const sharedSecret = await this.cryptoCore.computeSharedSecret(privateKey, ephemeralPublicKey);
|
|
64
|
-
const symKey = sharedSecret.slice(0, this.eciesConsts.SYMMETRIC.KEY_SIZE);
|
|
65
|
-
const encryptedWithTag = aes_gcm_1.AESGCMService.combineEncryptedDataAndTag(encrypted, authTag);
|
|
66
|
-
try {
|
|
67
|
-
const decrypted = await aes_gcm_1.AESGCMService.decrypt(iv, encryptedWithTag, symKey, true, this.eciesConsts);
|
|
68
|
-
if (decrypted.length !== this.eciesConsts.SYMMETRIC.KEY_SIZE) {
|
|
69
|
-
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
70
|
-
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidDataLength));
|
|
71
|
-
}
|
|
72
|
-
return decrypted;
|
|
73
|
-
}
|
|
74
|
-
catch (error) {
|
|
75
|
-
console.error('Failed to decrypt key:', error);
|
|
76
|
-
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
77
|
-
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_FailedToDecryptKey));
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Encrypt a message for multiple recipients
|
|
82
|
-
*/
|
|
83
|
-
async encryptMultiple(recipients, message, preamble = new Uint8Array(0)) {
|
|
84
|
-
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
85
|
-
if (recipients.length > this.eciesConsts.MULTIPLE.MAX_RECIPIENTS) {
|
|
86
|
-
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_TooManyRecipientsTemplate, { recipientsCount: recipients.length }));
|
|
87
|
-
}
|
|
88
|
-
if (message.length > this.eciesConsts.MAX_RAW_DATA_SIZE) {
|
|
89
|
-
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_MessageTooLargeTemplate, { length: message.length }));
|
|
90
|
-
}
|
|
91
|
-
// Generate symmetric key
|
|
92
|
-
const symmetricKey = crypto.getRandomValues(new Uint8Array(this.eciesConsts.SYMMETRIC.KEY_SIZE));
|
|
93
|
-
// Encrypt message with symmetric key
|
|
94
|
-
const encryptResult = await aes_gcm_1.AESGCMService.encrypt(message, symmetricKey, true, this.eciesConsts);
|
|
95
|
-
const { encrypted, iv } = encryptResult;
|
|
96
|
-
const authTag = encryptResult.tag;
|
|
97
|
-
if (!authTag) {
|
|
98
|
-
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
99
|
-
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_AuthenticationTagIsRequiredForMultiRecipientECIESEncryption));
|
|
100
|
-
}
|
|
101
|
-
// Create stored message: preamble + iv + authTag + encrypted
|
|
102
|
-
const storedMessage = (0, utils_1.concatUint8Arrays)(preamble, iv, authTag, encrypted);
|
|
103
|
-
// Encrypt symmetric key for each recipient
|
|
104
|
-
const recipientIds = [];
|
|
105
|
-
const recipientKeys = [];
|
|
106
|
-
for (const recipient of recipients) {
|
|
107
|
-
const encryptedKey = await this.encryptKey(recipient.publicKey, symmetricKey);
|
|
108
|
-
recipientIds.push(recipient.id);
|
|
109
|
-
recipientKeys.push(encryptedKey);
|
|
110
|
-
}
|
|
111
|
-
const headerSize = this.getHeaderSize(recipients.length);
|
|
112
|
-
return {
|
|
113
|
-
dataLength: message.length,
|
|
114
|
-
recipientCount: recipients.length,
|
|
115
|
-
recipientIds,
|
|
116
|
-
recipientKeys,
|
|
117
|
-
encryptedMessage: storedMessage,
|
|
118
|
-
headerSize,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Decrypt a multi-recipient message for a specific recipient
|
|
123
|
-
*/
|
|
124
|
-
async decryptMultipleForRecipient(encryptedData, recipientId, privateKey) {
|
|
125
|
-
// Find recipient's encrypted key
|
|
126
|
-
const recipientIndex = encryptedData.recipientIds.findIndex((id) => this.arraysEqual(id, recipientId));
|
|
127
|
-
if (recipientIndex === -1) {
|
|
128
|
-
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
129
|
-
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_RecipientNotFound));
|
|
130
|
-
}
|
|
131
|
-
const encryptedKey = encryptedData.recipientKeys[recipientIndex];
|
|
132
|
-
// Decrypt the symmetric key
|
|
133
|
-
const symmetricKey = await this.decryptKey(privateKey, encryptedKey);
|
|
134
|
-
// Extract components from encrypted message
|
|
135
|
-
let offset = 0;
|
|
136
|
-
const iv = encryptedData.encryptedMessage.slice(offset, offset + this.eciesConsts.IV_SIZE);
|
|
137
|
-
offset += this.eciesConsts.IV_SIZE;
|
|
138
|
-
const authTag = encryptedData.encryptedMessage.slice(offset, offset + this.eciesConsts.AUTH_TAG_SIZE);
|
|
139
|
-
offset += this.eciesConsts.AUTH_TAG_SIZE;
|
|
140
|
-
const encrypted = encryptedData.encryptedMessage.slice(offset);
|
|
141
|
-
// AES-GCM provides authentication via auth tag (no separate CRC needed)
|
|
142
|
-
// Decrypt with symmetric key
|
|
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);
|
|
145
|
-
// Verify length
|
|
146
|
-
if (decrypted.length !== encryptedData.dataLength) {
|
|
147
|
-
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
148
|
-
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_DecryptedDataLengthMismatch));
|
|
149
|
-
}
|
|
150
|
-
return decrypted;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Build header for multi-recipient message
|
|
154
|
-
*/
|
|
155
|
-
buildHeader(data) {
|
|
156
|
-
if (data.recipientIds.length !== data.recipientKeys.length) {
|
|
157
|
-
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
158
|
-
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_RecipientCountMismatch));
|
|
159
|
-
}
|
|
160
|
-
if (data.dataLength < 0 || data.dataLength > this.eciesConsts.MAX_RAW_DATA_SIZE) {
|
|
161
|
-
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
162
|
-
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidDataLength));
|
|
163
|
-
}
|
|
164
|
-
// Data length (8 bytes)
|
|
165
|
-
const dataLengthUint8Array = new Uint8Array(8);
|
|
166
|
-
new DataView(dataLengthUint8Array.buffer).setBigUint64(0, BigInt(data.dataLength), false);
|
|
167
|
-
// Recipient count (2 bytes)
|
|
168
|
-
const recipientCountUint8Array = new Uint8Array(2);
|
|
169
|
-
new DataView(recipientCountUint8Array.buffer).setUint16(0, data.recipientIds.length, false);
|
|
170
|
-
// Recipient IDs
|
|
171
|
-
const recipientIdsUint8Array = (0, utils_1.concatUint8Arrays)(...data.recipientIds);
|
|
172
|
-
// Encrypted keys
|
|
173
|
-
const encryptedKeysUint8Array = (0, utils_1.concatUint8Arrays)(...data.recipientKeys);
|
|
174
|
-
return (0, utils_1.concatUint8Arrays)(dataLengthUint8Array, recipientCountUint8Array, recipientIdsUint8Array, encryptedKeysUint8Array);
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Parse multi-recipient header
|
|
178
|
-
*/
|
|
179
|
-
parseHeader(data) {
|
|
180
|
-
if (data.length < 10) {
|
|
181
|
-
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
182
|
-
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_DataTooShortForMultiRecipientHeader));
|
|
183
|
-
// minimum: 8 + 2
|
|
184
|
-
}
|
|
185
|
-
let offset = 0;
|
|
186
|
-
const view = new DataView(data.buffer, data.byteOffset);
|
|
187
|
-
// Read data length
|
|
188
|
-
const dataLength = Number(view.getBigUint64(offset, false));
|
|
189
|
-
offset += 8;
|
|
190
|
-
if (dataLength <= 0 || dataLength > this.eciesConsts.MAX_RAW_DATA_SIZE) {
|
|
191
|
-
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
192
|
-
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidDataLength));
|
|
193
|
-
}
|
|
194
|
-
// Read recipient count
|
|
195
|
-
const recipientCount = view.getUint16(offset, false);
|
|
196
|
-
offset += 2;
|
|
197
|
-
if (recipientCount <= 0 || recipientCount > this.eciesConsts.MULTIPLE.MAX_RECIPIENTS) {
|
|
198
|
-
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
199
|
-
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidRecipientCount));
|
|
200
|
-
}
|
|
201
|
-
// Read recipient IDs
|
|
202
|
-
const recipientIds = [];
|
|
203
|
-
for (let i = 0; i < recipientCount; i++) {
|
|
204
|
-
recipientIds.push(data.slice(offset, offset + this.eciesConsts.MULTIPLE.RECIPIENT_ID_SIZE));
|
|
205
|
-
offset += this.eciesConsts.MULTIPLE.RECIPIENT_ID_SIZE;
|
|
206
|
-
}
|
|
207
|
-
// Read encrypted keys
|
|
208
|
-
const recipientKeys = [];
|
|
209
|
-
for (let i = 0; i < recipientCount; i++) {
|
|
210
|
-
recipientKeys.push(data.slice(offset, offset + this.eciesConsts.MULTIPLE.ENCRYPTED_KEY_SIZE));
|
|
211
|
-
offset += this.eciesConsts.MULTIPLE.ENCRYPTED_KEY_SIZE;
|
|
212
|
-
}
|
|
213
|
-
return {
|
|
214
|
-
dataLength,
|
|
215
|
-
recipientCount,
|
|
216
|
-
recipientIds,
|
|
217
|
-
recipientKeys,
|
|
218
|
-
headerSize: offset,
|
|
219
|
-
};
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* Parse complete multi-recipient message
|
|
223
|
-
*/
|
|
224
|
-
parseMessage(data) {
|
|
225
|
-
const header = this.parseHeader(data);
|
|
226
|
-
const encryptedMessage = data.slice(header.headerSize);
|
|
227
|
-
return {
|
|
228
|
-
...header,
|
|
229
|
-
encryptedMessage,
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
arraysEqual(a, b) {
|
|
233
|
-
if (a.length !== b.length)
|
|
234
|
-
return false;
|
|
235
|
-
for (let i = 0; i < a.length; i++) {
|
|
236
|
-
if (a[i] !== b[i])
|
|
237
|
-
return false;
|
|
238
|
-
}
|
|
239
|
-
return true;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
exports.EciesMultiRecipient = EciesMultiRecipient;
|
|
243
|
-
//# sourceMappingURL=multi-recipient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"multi-recipient.js","sourceRoot":"","sources":["../../../src/services/ecies/multi-recipient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { IECIESConstants } from '../../interfaces/ecies-consts';
|
|
2
|
-
import { EciesEncryptionType, EciesEncryptionTypeEnum } from '../../enumerations/ecies-encryption-type';
|
|
3
|
-
import { IECIESConfig } from '../../interfaces/ecies-config';
|
|
4
|
-
import { SecureString } from '../../secure-string';
|
|
5
|
-
import { SignatureString, SignatureUint8Array } from '../../types';
|
|
6
|
-
import { EciesCryptoCore } from './crypto-core';
|
|
7
|
-
import { ISimpleKeyPair, IWalletSeed } from './interfaces';
|
|
8
|
-
import { EciesSignature } from './signature';
|
|
9
|
-
import { EciesSingleRecipient } from './single-recipient';
|
|
10
|
-
/**
|
|
11
|
-
* Browser-compatible ECIES service that mirrors the server-side functionality
|
|
12
|
-
* Uses Web Crypto API and @scure/@noble libraries for browser compatibility
|
|
13
|
-
*/
|
|
14
|
-
export declare class ECIESService {
|
|
15
|
-
protected readonly _config: IECIESConfig;
|
|
16
|
-
protected readonly cryptoCore: EciesCryptoCore;
|
|
17
|
-
protected readonly signature: EciesSignature;
|
|
18
|
-
protected readonly singleRecipient: EciesSingleRecipient;
|
|
19
|
-
protected readonly eciesConsts: IECIESConstants;
|
|
20
|
-
constructor(config?: Partial<IECIESConfig>, eciesParams?: IECIESConstants);
|
|
21
|
-
get core(): EciesCryptoCore;
|
|
22
|
-
get config(): IECIESConfig;
|
|
23
|
-
get curveName(): string;
|
|
24
|
-
/**
|
|
25
|
-
* Generate a new mnemonic
|
|
26
|
-
*/
|
|
27
|
-
generateNewMnemonic(): SecureString;
|
|
28
|
-
/**
|
|
29
|
-
* Generate wallet and seed from mnemonic
|
|
30
|
-
*/
|
|
31
|
-
walletAndSeedFromMnemonic(mnemonic: SecureString): IWalletSeed;
|
|
32
|
-
/**
|
|
33
|
-
* Create simple key pair from seed
|
|
34
|
-
*/
|
|
35
|
-
seedToSimpleKeyPair(seed: Uint8Array): ISimpleKeyPair;
|
|
36
|
-
/**
|
|
37
|
-
* Create simple key pair from mnemonic
|
|
38
|
-
*/
|
|
39
|
-
mnemonicToSimpleKeyPair(mnemonic: SecureString): ISimpleKeyPair;
|
|
40
|
-
/**
|
|
41
|
-
* Get public key from private key
|
|
42
|
-
*/
|
|
43
|
-
getPublicKey(privateKey: Uint8Array): Uint8Array;
|
|
44
|
-
/**
|
|
45
|
-
* Encrypt for single recipient (simple or single mode)
|
|
46
|
-
*/
|
|
47
|
-
encryptSimpleOrSingle(encryptSimple: boolean, receiverPublicKey: Uint8Array, message: Uint8Array, preamble?: Uint8Array): Promise<Uint8Array>;
|
|
48
|
-
/**
|
|
49
|
-
* Parse single encrypted header
|
|
50
|
-
*/
|
|
51
|
-
parseSingleEncryptedHeader(encryptionType: EciesEncryptionTypeEnum, data: Uint8Array, preambleSize?: number, options?: {
|
|
52
|
-
dataLength?: number;
|
|
53
|
-
}): import("./interfaces").ISingleEncryptedParsedHeader;
|
|
54
|
-
/**
|
|
55
|
-
* Decrypt with header
|
|
56
|
-
*/
|
|
57
|
-
decryptSimpleOrSingleWithHeader(decryptSimple: boolean, privateKey: Uint8Array, encryptedData: Uint8Array, preambleSize?: number, options?: {
|
|
58
|
-
dataLength?: number;
|
|
59
|
-
}): Promise<Uint8Array>;
|
|
60
|
-
/**
|
|
61
|
-
* Extended decrypt with header
|
|
62
|
-
*/
|
|
63
|
-
decryptSimpleOrSingleWithHeaderEx(encryptionType: EciesEncryptionTypeEnum, privateKey: Uint8Array, encryptedData: Uint8Array, preambleSize?: number, options?: {
|
|
64
|
-
dataLength?: number;
|
|
65
|
-
}): Promise<import("./interfaces").IDecryptionResult>;
|
|
66
|
-
/**
|
|
67
|
-
* Decrypt with individual components
|
|
68
|
-
*/
|
|
69
|
-
decryptSingleWithComponents(privateKey: Uint8Array, ephemeralPublicKey: Uint8Array, iv: Uint8Array, authTag: Uint8Array, encrypted: Uint8Array): Promise<{
|
|
70
|
-
decrypted: Uint8Array;
|
|
71
|
-
ciphertextLength?: number;
|
|
72
|
-
}>;
|
|
73
|
-
/**
|
|
74
|
-
* Sign a message
|
|
75
|
-
*/
|
|
76
|
-
signMessage(privateKey: Uint8Array, data: Uint8Array): SignatureUint8Array;
|
|
77
|
-
/**
|
|
78
|
-
* Verify a message signature
|
|
79
|
-
*/
|
|
80
|
-
verifyMessage(publicKey: Uint8Array, data: Uint8Array, signature: SignatureUint8Array): boolean;
|
|
81
|
-
/**
|
|
82
|
-
* Convert signature string to buffer
|
|
83
|
-
*/
|
|
84
|
-
signatureStringToSignatureUint8Array(signatureString: SignatureString): SignatureUint8Array;
|
|
85
|
-
/**
|
|
86
|
-
* Convert signature buffer to string
|
|
87
|
-
*/
|
|
88
|
-
signatureUint8ArrayToSignatureString(signatureArray: SignatureUint8Array): string;
|
|
89
|
-
/**
|
|
90
|
-
* Compute encrypted length from data length
|
|
91
|
-
*/
|
|
92
|
-
computeEncryptedLengthFromDataLength(dataLength: number, encryptionMode: EciesEncryptionType, recipientCount?: number): number;
|
|
93
|
-
/**
|
|
94
|
-
* Compute decrypted length from encrypted data length
|
|
95
|
-
*/
|
|
96
|
-
computeDecryptedLengthFromEncryptedDataLength(encryptedDataLength: number, padding?: number): number;
|
|
97
|
-
/**
|
|
98
|
-
* Generic encrypt method
|
|
99
|
-
*/
|
|
100
|
-
encrypt(encryptionType: EciesEncryptionTypeEnum, recipients: Array<{
|
|
101
|
-
publicKey: Uint8Array;
|
|
102
|
-
}>, message: Uint8Array, preamble?: Uint8Array): Promise<Uint8Array>;
|
|
103
|
-
}
|
|
104
|
-
//# sourceMappingURL=service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,192 +0,0 @@
|
|
|
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");
|
|
9
|
-
/**
|
|
10
|
-
* Browser-compatible ECIES service that mirrors the server-side functionality
|
|
11
|
-
* Uses Web Crypto API and @scure/@noble libraries for browser compatibility
|
|
12
|
-
*/
|
|
13
|
-
class ECIESService {
|
|
14
|
-
_config;
|
|
15
|
-
cryptoCore;
|
|
16
|
-
signature;
|
|
17
|
-
singleRecipient;
|
|
18
|
-
eciesConsts;
|
|
19
|
-
constructor(config, eciesParams = constants_1.Constants.ECIES) {
|
|
20
|
-
this.eciesConsts = eciesParams;
|
|
21
|
-
this._config = {
|
|
22
|
-
curveName: this.eciesConsts.CURVE_NAME,
|
|
23
|
-
primaryKeyDerivationPath: this.eciesConsts.PRIMARY_KEY_DERIVATION_PATH,
|
|
24
|
-
mnemonicStrength: this.eciesConsts.MNEMONIC_STRENGTH,
|
|
25
|
-
symmetricAlgorithm: this.eciesConsts.SYMMETRIC.ALGORITHM,
|
|
26
|
-
symmetricKeyBits: this.eciesConsts.SYMMETRIC.KEY_BITS,
|
|
27
|
-
symmetricKeyMode: this.eciesConsts.SYMMETRIC.MODE,
|
|
28
|
-
...config,
|
|
29
|
-
};
|
|
30
|
-
// Initialize components
|
|
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);
|
|
34
|
-
}
|
|
35
|
-
get core() {
|
|
36
|
-
return this.cryptoCore;
|
|
37
|
-
}
|
|
38
|
-
get config() {
|
|
39
|
-
return this._config;
|
|
40
|
-
}
|
|
41
|
-
get curveName() {
|
|
42
|
-
return this._config.curveName;
|
|
43
|
-
}
|
|
44
|
-
// === Key Management Methods ===
|
|
45
|
-
/**
|
|
46
|
-
* Generate a new mnemonic
|
|
47
|
-
*/
|
|
48
|
-
generateNewMnemonic() {
|
|
49
|
-
return this.cryptoCore.generateNewMnemonic();
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Generate wallet and seed from mnemonic
|
|
53
|
-
*/
|
|
54
|
-
walletAndSeedFromMnemonic(mnemonic) {
|
|
55
|
-
return this.cryptoCore.walletAndSeedFromMnemonic(mnemonic);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Create simple key pair from seed
|
|
59
|
-
*/
|
|
60
|
-
seedToSimpleKeyPair(seed) {
|
|
61
|
-
return this.cryptoCore.seedToSimpleKeyPair(seed);
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Create simple key pair from mnemonic
|
|
65
|
-
*/
|
|
66
|
-
mnemonicToSimpleKeyPair(mnemonic) {
|
|
67
|
-
return this.cryptoCore.mnemonicToSimpleKeyPair(mnemonic);
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Get public key from private key
|
|
71
|
-
*/
|
|
72
|
-
getPublicKey(privateKey) {
|
|
73
|
-
return this.cryptoCore.getPublicKey(privateKey);
|
|
74
|
-
}
|
|
75
|
-
// === Core Encryption/Decryption Methods ===
|
|
76
|
-
/**
|
|
77
|
-
* Encrypt for single recipient (simple or single mode)
|
|
78
|
-
*/
|
|
79
|
-
async encryptSimpleOrSingle(encryptSimple, receiverPublicKey, message, preamble = new Uint8Array(0)) {
|
|
80
|
-
return this.singleRecipient.encrypt(encryptSimple, receiverPublicKey, message, preamble);
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Parse single encrypted header
|
|
84
|
-
*/
|
|
85
|
-
parseSingleEncryptedHeader(encryptionType, data, preambleSize = 0, options) {
|
|
86
|
-
const { header } = this.singleRecipient.parseEncryptedMessage(encryptionType, data, preambleSize, options);
|
|
87
|
-
return header;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Decrypt with header
|
|
91
|
-
*/
|
|
92
|
-
async decryptSimpleOrSingleWithHeader(decryptSimple, privateKey, encryptedData, preambleSize = 0, options) {
|
|
93
|
-
return await this.singleRecipient.decryptWithHeader(decryptSimple
|
|
94
|
-
? ecies_encryption_type_1.EciesEncryptionTypeEnum.Simple
|
|
95
|
-
: ecies_encryption_type_1.EciesEncryptionTypeEnum.Single, privateKey, encryptedData, preambleSize, options);
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Extended decrypt with header
|
|
99
|
-
*/
|
|
100
|
-
async decryptSimpleOrSingleWithHeaderEx(encryptionType, privateKey, encryptedData, preambleSize = 0, options) {
|
|
101
|
-
return this.singleRecipient.decryptWithHeaderEx(encryptionType, privateKey, encryptedData, preambleSize, options);
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Decrypt with individual components
|
|
105
|
-
*/
|
|
106
|
-
async decryptSingleWithComponents(privateKey, ephemeralPublicKey, iv, authTag, encrypted) {
|
|
107
|
-
const decrypted = await this.singleRecipient.decryptWithComponents(privateKey, ephemeralPublicKey, iv, authTag, encrypted);
|
|
108
|
-
return { decrypted, ciphertextLength: encrypted.length };
|
|
109
|
-
}
|
|
110
|
-
// === Signature Methods ===
|
|
111
|
-
/**
|
|
112
|
-
* Sign a message
|
|
113
|
-
*/
|
|
114
|
-
signMessage(privateKey, data) {
|
|
115
|
-
return this.signature.signMessage(privateKey, data);
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Verify a message signature
|
|
119
|
-
*/
|
|
120
|
-
verifyMessage(publicKey, data, signature) {
|
|
121
|
-
return this.signature.verifyMessage(publicKey, data, signature);
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Convert signature string to buffer
|
|
125
|
-
*/
|
|
126
|
-
signatureStringToSignatureUint8Array(signatureString) {
|
|
127
|
-
return this.signature.signatureStringToSignatureUint8Array(signatureString);
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Convert signature buffer to string
|
|
131
|
-
*/
|
|
132
|
-
signatureUint8ArrayToSignatureString(signatureArray) {
|
|
133
|
-
return this.signature.signatureUint8ArrayToSignatureString(signatureArray);
|
|
134
|
-
}
|
|
135
|
-
// === Utility Methods ===
|
|
136
|
-
/**
|
|
137
|
-
* Compute encrypted length from data length
|
|
138
|
-
*/
|
|
139
|
-
computeEncryptedLengthFromDataLength(dataLength, encryptionMode, recipientCount) {
|
|
140
|
-
if (dataLength < 0) {
|
|
141
|
-
throw new Error('Invalid data length');
|
|
142
|
-
}
|
|
143
|
-
switch (encryptionMode) {
|
|
144
|
-
case 'simple':
|
|
145
|
-
return dataLength + this.eciesConsts.SIMPLE.FIXED_OVERHEAD_SIZE;
|
|
146
|
-
case 'single':
|
|
147
|
-
return dataLength + this.eciesConsts.SINGLE.FIXED_OVERHEAD_SIZE;
|
|
148
|
-
case 'multiple':
|
|
149
|
-
// Basic calculation for multiple recipients
|
|
150
|
-
return (dataLength +
|
|
151
|
-
this.eciesConsts.MULTIPLE.FIXED_OVERHEAD_SIZE +
|
|
152
|
-
(recipientCount ?? 1) * this.eciesConsts.MULTIPLE.ENCRYPTED_KEY_SIZE);
|
|
153
|
-
default:
|
|
154
|
-
throw new Error('Invalid encryption type');
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Compute decrypted length from encrypted data length
|
|
159
|
-
*/
|
|
160
|
-
computeDecryptedLengthFromEncryptedDataLength(encryptedDataLength, padding) {
|
|
161
|
-
if (encryptedDataLength < 0) {
|
|
162
|
-
throw new Error('Invalid encrypted data length');
|
|
163
|
-
}
|
|
164
|
-
const overhead = this.eciesConsts.SINGLE.FIXED_OVERHEAD_SIZE;
|
|
165
|
-
const actualPadding = padding !== undefined ? padding : 0;
|
|
166
|
-
const decryptedLength = encryptedDataLength - overhead - actualPadding;
|
|
167
|
-
if (decryptedLength < 0) {
|
|
168
|
-
throw new Error('Computed decrypted length is negative');
|
|
169
|
-
}
|
|
170
|
-
return decryptedLength;
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Generic encrypt method
|
|
174
|
-
*/
|
|
175
|
-
async encrypt(encryptionType, recipients, message, preamble) {
|
|
176
|
-
if ((encryptionType === ecies_encryption_type_1.EciesEncryptionTypeEnum.Simple ||
|
|
177
|
-
ecies_encryption_type_1.EciesEncryptionTypeEnum.Single) &&
|
|
178
|
-
recipients.length === 1) {
|
|
179
|
-
return this.singleRecipient.encrypt(encryptionType === ecies_encryption_type_1.EciesEncryptionTypeEnum.Simple, recipients[0].publicKey, message, preamble);
|
|
180
|
-
}
|
|
181
|
-
else if (encryptionType === ecies_encryption_type_1.EciesEncryptionTypeEnum.Multiple &&
|
|
182
|
-
recipients.length > 1) {
|
|
183
|
-
// TODO: Implement multi-recipient encryption
|
|
184
|
-
throw new Error('Multi-recipient encryption not yet implemented');
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
187
|
-
throw new Error(`Invalid encryption type or number of recipients: ${encryptionType}, ${recipients.length}`);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
exports.ECIESService = ECIESService;
|
|
192
|
-
//# sourceMappingURL=service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/services/ecies/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { SignatureString, SignatureUint8Array } from '../../types';
|
|
2
|
-
import { EciesCryptoCore } from './crypto-core';
|
|
3
|
-
/**
|
|
4
|
-
* Browser-compatible ECDSA signature operations
|
|
5
|
-
*/
|
|
6
|
-
export declare class EciesSignature {
|
|
7
|
-
private readonly cryptoCore;
|
|
8
|
-
constructor(cryptoCore: EciesCryptoCore);
|
|
9
|
-
/**
|
|
10
|
-
* Sign arbitrary binary data with a secp256k1 private key.
|
|
11
|
-
* Returns 64 bytes: [r(32) | s(32)]
|
|
12
|
-
*/
|
|
13
|
-
signMessage(privateKey: Uint8Array, data: Uint8Array): SignatureUint8Array;
|
|
14
|
-
/**
|
|
15
|
-
* Verify signature (64 bytes: [r|s]) over arbitrary binary data against a public key.
|
|
16
|
-
*/
|
|
17
|
-
verifyMessage(publicKey: Uint8Array, data: Uint8Array, signature: SignatureUint8Array): boolean;
|
|
18
|
-
/**
|
|
19
|
-
* Convert signature string to signature Uint8Array
|
|
20
|
-
*/
|
|
21
|
-
signatureStringToSignatureUint8Array(signatureString: SignatureString): SignatureUint8Array;
|
|
22
|
-
/**
|
|
23
|
-
* Convert signature buffer to signature string
|
|
24
|
-
*/
|
|
25
|
-
signatureUint8ArrayToSignatureString(signatureArray: SignatureUint8Array): SignatureString;
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=signature.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/signature.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;gBAEjC,UAAU,EAAE,eAAe;IAIvC;;;OAGG;IACI,WAAW,CAChB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,UAAU,GACf,mBAAmB;IAUtB;;OAEG;IACI,aAAa,CAClB,SAAS,EAAE,UAAU,EACrB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,mBAAmB,GAC7B,OAAO;IA8BV;;OAEG;IACI,oCAAoC,CACzC,eAAe,EAAE,eAAe,GAC/B,mBAAmB;IAStB;;OAEG;IACI,oCAAoC,CACzC,cAAc,EAAE,mBAAmB,GAClC,eAAe;CAGnB"}
|