@digitaldefiance/ecies-lib 1.0.23 → 1.0.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 +81 -3
- package/dist/enumerations/ecies-string-key.d.ts +1 -0
- package/dist/enumerations/ecies-string-key.d.ts.map +1 -1
- package/dist/enumerations/ecies-string-key.js +1 -0
- package/dist/enumerations/ecies-string-key.js.map +1 -1
- package/dist/enumerations/pbkdf2-error-type.d.ts +1 -0
- package/dist/enumerations/pbkdf2-error-type.d.ts.map +1 -1
- package/dist/enumerations/pbkdf2-error-type.js +1 -0
- package/dist/enumerations/pbkdf2-error-type.js.map +1 -1
- package/dist/i18n-setup.d.ts.map +1 -1
- package/dist/i18n-setup.js +5 -0
- package/dist/i18n-setup.js.map +1 -1
- package/dist/interfaces/member-operational.d.ts +3 -2
- package/dist/interfaces/member-operational.d.ts.map +1 -1
- package/dist/member.d.ts +7 -9
- package/dist/member.d.ts.map +1 -1
- package/dist/member.js +12 -12
- package/dist/member.js.map +1 -1
- package/dist/services/aes-gcm.d.ts +4 -3
- package/dist/services/aes-gcm.d.ts.map +1 -1
- package/dist/services/aes-gcm.js +12 -9
- package/dist/services/aes-gcm.js.map +1 -1
- package/dist/services/ecies/crypto-core.d.ts +4 -2
- package/dist/services/ecies/crypto-core.d.ts.map +1 -1
- package/dist/services/ecies/crypto-core.js +8 -6
- package/dist/services/ecies/crypto-core.js.map +1 -1
- package/dist/services/ecies/multi-recipient.d.ts +5 -2
- package/dist/services/ecies/multi-recipient.d.ts.map +1 -1
- package/dist/services/ecies/multi-recipient.js +35 -33
- package/dist/services/ecies/multi-recipient.js.map +1 -1
- package/dist/services/ecies/service.d.ts +9 -5
- package/dist/services/ecies/service.d.ts.map +1 -1
- package/dist/services/ecies/service.js +10 -8
- package/dist/services/ecies/service.js.map +1 -1
- package/dist/services/ecies/single-recipient.d.ts +6 -3
- package/dist/services/ecies/single-recipient.d.ts.map +1 -1
- package/dist/services/ecies/single-recipient.js +26 -24
- package/dist/services/ecies/single-recipient.js.map +1 -1
- package/dist/services/password-login.d.ts +3 -1
- package/dist/services/password-login.d.ts.map +1 -1
- package/dist/services/password-login.js +6 -3
- package/dist/services/password-login.js.map +1 -1
- package/dist/services/pbkdf2.d.ts +7 -3
- package/dist/services/pbkdf2.d.ts.map +1 -1
- package/dist/services/pbkdf2.js +15 -6
- package/dist/services/pbkdf2.js.map +1 -1
- package/package.json +1 -1
package/dist/services/aes-gcm.js
CHANGED
|
@@ -7,19 +7,20 @@ export class AESGCMService {
|
|
|
7
7
|
* @param key Key to use for encryption (must be 16, 24 or 32 bytes for AES)
|
|
8
8
|
* @returns Encrypted data
|
|
9
9
|
*/
|
|
10
|
-
static async encrypt(data, key, authTag = false) {
|
|
10
|
+
static async encrypt(data, key, authTag = false, eciesParams) {
|
|
11
11
|
const cryptoKey = await crypto.subtle.importKey('raw', new Uint8Array(key), { name: AESGCMService.ALGORITHM_NAME }, false, ['encrypt']);
|
|
12
|
-
const
|
|
12
|
+
const eciesConsts = eciesParams ?? ECIES;
|
|
13
|
+
const iv = crypto.getRandomValues(new Uint8Array(eciesConsts.IV_SIZE));
|
|
13
14
|
const encryptedResult = await crypto.subtle.encrypt({
|
|
14
15
|
name: AESGCMService.ALGORITHM_NAME,
|
|
15
16
|
iv,
|
|
16
|
-
...(authTag && { tagLength:
|
|
17
|
+
...(authTag && { tagLength: eciesConsts.AUTH_TAG_SIZE * 8 }),
|
|
17
18
|
}, cryptoKey, new Uint8Array(data));
|
|
18
19
|
const encryptedArray = new Uint8Array(encryptedResult);
|
|
19
20
|
if (!authTag) {
|
|
20
21
|
return { encrypted: encryptedArray, iv };
|
|
21
22
|
}
|
|
22
|
-
const authTagLengthBytes =
|
|
23
|
+
const authTagLengthBytes = eciesConsts.AUTH_TAG_SIZE;
|
|
23
24
|
const encryptedBytes = encryptedArray.slice(0, -authTagLengthBytes); // Remove auth tag
|
|
24
25
|
const authTagBytes = encryptedArray.slice(-authTagLengthBytes); // Last 16 bytes are auth tag
|
|
25
26
|
return { encrypted: encryptedBytes, iv, tag: authTagBytes };
|
|
@@ -65,9 +66,10 @@ export class AESGCMService {
|
|
|
65
66
|
* @param hasAuthTag Whether the combined data includes an authentication tag
|
|
66
67
|
* @returns Object containing the split components
|
|
67
68
|
*/
|
|
68
|
-
static splitEncryptedData(combinedData, hasAuthTag = true) {
|
|
69
|
-
const
|
|
70
|
-
const
|
|
69
|
+
static splitEncryptedData(combinedData, hasAuthTag = true, eciesParams) {
|
|
70
|
+
const eciesConsts = eciesParams ?? ECIES;
|
|
71
|
+
const ivLength = eciesConsts.IV_SIZE;
|
|
72
|
+
const tagLength = hasAuthTag ? eciesConsts.AUTH_TAG_SIZE : 0;
|
|
71
73
|
if (combinedData.length < ivLength + tagLength) {
|
|
72
74
|
throw new Error('Combined data is too short to contain required components');
|
|
73
75
|
}
|
|
@@ -83,7 +85,8 @@ export class AESGCMService {
|
|
|
83
85
|
* @param authTag Whether the encrypted data includes an authentication tag
|
|
84
86
|
* @returns Decrypted data
|
|
85
87
|
*/
|
|
86
|
-
static async decrypt(iv, encryptedData, key, authTag = false) {
|
|
88
|
+
static async decrypt(iv, encryptedData, key, authTag = false, eciesParams) {
|
|
89
|
+
const eciesConsts = eciesParams ?? ECIES;
|
|
87
90
|
const cryptoKey = await crypto.subtle.importKey('raw', new Uint8Array(key), { name: AESGCMService.ALGORITHM_NAME }, false, ['decrypt']);
|
|
88
91
|
if (!authTag) {
|
|
89
92
|
const decrypted = await crypto.subtle.decrypt({ name: AESGCMService.ALGORITHM_NAME, iv: new Uint8Array(iv) }, cryptoKey, new Uint8Array(encryptedData));
|
|
@@ -93,7 +96,7 @@ export class AESGCMService {
|
|
|
93
96
|
const decryptedResult = await crypto.subtle.decrypt({
|
|
94
97
|
name: AESGCMService.ALGORITHM_NAME,
|
|
95
98
|
iv: new Uint8Array(iv),
|
|
96
|
-
tagLength:
|
|
99
|
+
tagLength: eciesConsts.AUTH_TAG_SIZE * 8,
|
|
97
100
|
}, cryptoKey, new Uint8Array(encryptedData));
|
|
98
101
|
return new Uint8Array(decryptedResult);
|
|
99
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aes-gcm.js","sourceRoot":"","sources":["../../src/services/aes-gcm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aes-gcm.js","sourceRoot":"","sources":["../../src/services/aes-gcm.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { IECIESConfig } from '../../interfaces/ecies-config';
|
|
2
2
|
import { SecureString } from '../../secure-string';
|
|
3
3
|
import { ISimpleKeyPair, IWalletSeed } from './interfaces';
|
|
4
|
+
import { IECIESConstants } from '../../interfaces/ecies-consts';
|
|
4
5
|
/**
|
|
5
6
|
* Browser-compatible crypto core for ECIES operations
|
|
6
7
|
* Uses @scure libraries for browser compatibility
|
|
7
8
|
*/
|
|
8
9
|
export declare class EciesCryptoCore {
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
protected readonly _config: IECIESConfig;
|
|
11
|
+
protected readonly _eciesConsts: IECIESConstants;
|
|
12
|
+
constructor(config: IECIESConfig, eciesParams?: IECIESConstants);
|
|
11
13
|
get config(): IECIESConfig;
|
|
12
14
|
/**
|
|
13
15
|
* Validates and normalizes a public key for ECIES operations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-core.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/crypto-core.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"crypto-core.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/crypto-core.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE;;;GAGG;AACH,qBAAa,eAAe;IAC1B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IACzC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;gBAErC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,eAAe;IAO/D,IAAW,MAAM,IAAI,YAAY,CAEhC;IAED;;OAEG;IACI,kBAAkB,CAAC,SAAS,EAAE,UAAU,GAAG,UAAU;IA0B5D;;OAEG;IACI,mBAAmB,IAAI,YAAY;IAM1C;;OAEG;IACI,yBAAyB,CAAC,QAAQ,EAAE,YAAY,GAAG,WAAW;IAuBrE;;OAEG;IACI,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc;IAiB5D;;OAEG;IACI,uBAAuB,CAAC,QAAQ,EAAE,YAAY,GAAG,cAAc;IAKtE;;OAEG;IACI,kBAAkB,IAAI,UAAU;IAIvC;;OAEG;IACI,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU;IAMvD;;OAEG;IACU,wBAAwB,IAAI,OAAO,CAAC,cAAc,CAAC;IAMhE;;OAEG;IACI,mBAAmB,CACxB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,UAAU,GACpB,UAAU;CAcd"}
|
|
@@ -11,8 +11,10 @@ import { secp256k1 } from '@noble/curves/secp256k1.js';
|
|
|
11
11
|
*/
|
|
12
12
|
export class EciesCryptoCore {
|
|
13
13
|
_config;
|
|
14
|
-
|
|
14
|
+
_eciesConsts;
|
|
15
|
+
constructor(config, eciesParams) {
|
|
15
16
|
this._config = config;
|
|
17
|
+
this._eciesConsts = eciesParams ?? ECIES;
|
|
16
18
|
}
|
|
17
19
|
get config() {
|
|
18
20
|
return this._config;
|
|
@@ -26,14 +28,14 @@ export class EciesCryptoCore {
|
|
|
26
28
|
}
|
|
27
29
|
const keyLength = publicKey.length;
|
|
28
30
|
// Already in correct format (65 bytes with 0x04 prefix)
|
|
29
|
-
if (keyLength ===
|
|
30
|
-
publicKey[0] ===
|
|
31
|
+
if (keyLength === this._eciesConsts.PUBLIC_KEY_LENGTH &&
|
|
32
|
+
publicKey[0] === this._eciesConsts.PUBLIC_KEY_MAGIC) {
|
|
31
33
|
return publicKey;
|
|
32
34
|
}
|
|
33
35
|
// Raw key without prefix (64 bytes) - add the 0x04 prefix
|
|
34
|
-
if (keyLength ===
|
|
35
|
-
const result = new Uint8Array(
|
|
36
|
-
result[0] =
|
|
36
|
+
if (keyLength === this._eciesConsts.RAW_PUBLIC_KEY_LENGTH) {
|
|
37
|
+
const result = new Uint8Array(this._eciesConsts.PUBLIC_KEY_LENGTH);
|
|
38
|
+
result[0] = this._eciesConsts.PUBLIC_KEY_MAGIC;
|
|
37
39
|
result.set(publicKey, 1);
|
|
38
40
|
return result;
|
|
39
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-core.js","sourceRoot":"","sources":["../../../src/services/ecies/crypto-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"crypto-core.js","sourceRoot":"","sources":["../../../src/services/ecies/crypto-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
import { IECIESConstants } from '../../interfaces/ecies-consts';
|
|
1
2
|
import { IECIESConfig } from '../../interfaces/ecies-config';
|
|
3
|
+
import { EciesCryptoCore } from './crypto-core';
|
|
2
4
|
import { IMultiEncryptedMessage, IMultiEncryptedParsedHeader, IMultiRecipient } from './interfaces';
|
|
3
5
|
/**
|
|
4
6
|
* Browser-compatible multi-recipient ECIES encryption/decryption
|
|
5
7
|
*/
|
|
6
8
|
export declare class EciesMultiRecipient {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
+
protected readonly cryptoCore: EciesCryptoCore;
|
|
10
|
+
protected readonly eciesConsts: IECIESConstants;
|
|
11
|
+
constructor(config: IECIESConfig, eciesParams?: IECIESConstants);
|
|
9
12
|
/**
|
|
10
13
|
* Get the header size for multi-recipient encryption
|
|
11
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-recipient.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/multi-recipient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"multi-recipient.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/multi-recipient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,eAAe,EAChB,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IAC/C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;gBAEpC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,eAAe;IAK/D;;OAEG;IACI,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;IASpD;;;;;OAKG;IACU,UAAU,CACrB,iBAAiB,EAAE,UAAU,EAC7B,mBAAmB,EAAE,UAAU,GAC9B,OAAO,CAAC,UAAU,CAAC;IA8BtB;;;;;OAKG;IACU,UAAU,CACrB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,UAAU,GACvB,OAAO,CAAC,UAAU,CAAC;IAiDtB;;OAEG;IACU,eAAe,CAC1B,UAAU,EAAE,eAAe,EAAE,EAC7B,OAAO,EAAE,UAAU,EACnB,QAAQ,GAAE,UAA8B,GACvC,OAAO,CAAC,sBAAsB,CAAC;IA2DlC;;OAEG;IACU,2BAA2B,CACtC,aAAa,EAAE,sBAAsB,EACrC,WAAW,EAAE,UAAU,EACvB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,UAAU,CAAC;IAuDtB;;OAEG;IACI,WAAW,CAAC,IAAI,EAAE,sBAAsB,GAAG,UAAU;IAuC5D;;OAEG;IACI,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,2BAA2B;IAoDjE;;OAEG;IACI,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,sBAAsB;IAU7D,OAAO,CAAC,WAAW;CAOpB"}
|
|
@@ -7,17 +7,19 @@ import { EciesCryptoCore } from './crypto-core';
|
|
|
7
7
|
*/
|
|
8
8
|
export class EciesMultiRecipient {
|
|
9
9
|
cryptoCore;
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
eciesConsts;
|
|
11
|
+
constructor(config, eciesParams) {
|
|
12
|
+
this.cryptoCore = new EciesCryptoCore(config, eciesParams);
|
|
13
|
+
this.eciesConsts = eciesParams ?? ECIES;
|
|
12
14
|
}
|
|
13
15
|
/**
|
|
14
16
|
* Get the header size for multi-recipient encryption
|
|
15
17
|
*/
|
|
16
18
|
getHeaderSize(recipientCount) {
|
|
17
|
-
return (
|
|
18
|
-
|
|
19
|
-
recipientCount *
|
|
20
|
-
recipientCount *
|
|
19
|
+
return (this.eciesConsts.MULTIPLE.DATA_LENGTH_SIZE +
|
|
20
|
+
this.eciesConsts.MULTIPLE.RECIPIENT_COUNT_SIZE +
|
|
21
|
+
recipientCount * this.eciesConsts.MULTIPLE.RECIPIENT_ID_SIZE +
|
|
22
|
+
recipientCount * this.eciesConsts.MULTIPLE.ENCRYPTED_KEY_SIZE);
|
|
21
23
|
}
|
|
22
24
|
/**
|
|
23
25
|
* Encrypt a message symmetric key with a public key
|
|
@@ -28,8 +30,8 @@ export class EciesMultiRecipient {
|
|
|
28
30
|
async encryptKey(receiverPublicKey, messageSymmetricKey) {
|
|
29
31
|
const ephemeralKeyPair = await this.cryptoCore.generateEphemeralKeyPair();
|
|
30
32
|
const sharedSecret = await this.cryptoCore.computeSharedSecret(ephemeralKeyPair.privateKey, receiverPublicKey);
|
|
31
|
-
const symKey = sharedSecret.slice(0,
|
|
32
|
-
const encryptResult = await AESGCMService.encrypt(messageSymmetricKey, symKey, true);
|
|
33
|
+
const symKey = sharedSecret.slice(0, this.eciesConsts.SYMMETRIC.KEY_SIZE);
|
|
34
|
+
const encryptResult = await AESGCMService.encrypt(messageSymmetricKey, symKey, true, this.eciesConsts);
|
|
33
35
|
const { encrypted, iv } = encryptResult;
|
|
34
36
|
const authTag = encryptResult.tag;
|
|
35
37
|
if (!authTag) {
|
|
@@ -44,19 +46,19 @@ export class EciesMultiRecipient {
|
|
|
44
46
|
* @returns The decrypted data buffer
|
|
45
47
|
*/
|
|
46
48
|
async decryptKey(privateKey, encryptedKey) {
|
|
47
|
-
if (encryptedKey.length !==
|
|
48
|
-
throw new Error(`Invalid encrypted key length: expected ${
|
|
49
|
+
if (encryptedKey.length !== this.eciesConsts.MULTIPLE.ENCRYPTED_KEY_SIZE) {
|
|
50
|
+
throw new Error(`Invalid encrypted key length: expected ${this.eciesConsts.MULTIPLE.ENCRYPTED_KEY_SIZE}, got ${encryptedKey.length}`);
|
|
49
51
|
}
|
|
50
|
-
const ephemeralPublicKey = encryptedKey.slice(0,
|
|
51
|
-
const iv = encryptedKey.slice(
|
|
52
|
-
const authTag = encryptedKey.slice(
|
|
53
|
-
const encrypted = encryptedKey.slice(
|
|
52
|
+
const ephemeralPublicKey = encryptedKey.slice(0, this.eciesConsts.PUBLIC_KEY_LENGTH);
|
|
53
|
+
const iv = encryptedKey.slice(this.eciesConsts.PUBLIC_KEY_LENGTH, this.eciesConsts.PUBLIC_KEY_LENGTH + this.eciesConsts.IV_SIZE);
|
|
54
|
+
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);
|
|
55
|
+
const encrypted = encryptedKey.slice(this.eciesConsts.PUBLIC_KEY_LENGTH + this.eciesConsts.IV_SIZE + this.eciesConsts.AUTH_TAG_SIZE);
|
|
54
56
|
const sharedSecret = await this.cryptoCore.computeSharedSecret(privateKey, ephemeralPublicKey);
|
|
55
|
-
const symKey = sharedSecret.slice(0,
|
|
57
|
+
const symKey = sharedSecret.slice(0, this.eciesConsts.SYMMETRIC.KEY_SIZE);
|
|
56
58
|
const encryptedWithTag = AESGCMService.combineEncryptedDataAndTag(encrypted, authTag);
|
|
57
59
|
try {
|
|
58
|
-
const decrypted = await AESGCMService.decrypt(iv, encryptedWithTag, symKey, true);
|
|
59
|
-
if (decrypted.length !==
|
|
60
|
+
const decrypted = await AESGCMService.decrypt(iv, encryptedWithTag, symKey, true, this.eciesConsts);
|
|
61
|
+
if (decrypted.length !== this.eciesConsts.SYMMETRIC.KEY_SIZE) {
|
|
60
62
|
throw new Error('Invalid data length');
|
|
61
63
|
}
|
|
62
64
|
return decrypted;
|
|
@@ -70,16 +72,16 @@ export class EciesMultiRecipient {
|
|
|
70
72
|
* Encrypt a message for multiple recipients
|
|
71
73
|
*/
|
|
72
74
|
async encryptMultiple(recipients, message, preamble = new Uint8Array(0)) {
|
|
73
|
-
if (recipients.length >
|
|
75
|
+
if (recipients.length > this.eciesConsts.MULTIPLE.MAX_RECIPIENTS) {
|
|
74
76
|
throw new Error(`Too many recipients: ${recipients.length}`);
|
|
75
77
|
}
|
|
76
|
-
if (message.length >
|
|
78
|
+
if (message.length > this.eciesConsts.MAX_RAW_DATA_SIZE) {
|
|
77
79
|
throw new Error(`Message too large: ${message.length}`);
|
|
78
80
|
}
|
|
79
81
|
// Generate symmetric key
|
|
80
|
-
const symmetricKey = crypto.getRandomValues(new Uint8Array(
|
|
82
|
+
const symmetricKey = crypto.getRandomValues(new Uint8Array(this.eciesConsts.SYMMETRIC.KEY_SIZE));
|
|
81
83
|
// Encrypt message with symmetric key
|
|
82
|
-
const encryptResult = await AESGCMService.encrypt(message, symmetricKey, true);
|
|
84
|
+
const encryptResult = await AESGCMService.encrypt(message, symmetricKey, true, this.eciesConsts);
|
|
83
85
|
const { encrypted, iv } = encryptResult;
|
|
84
86
|
const authTag = encryptResult.tag;
|
|
85
87
|
if (!authTag) {
|
|
@@ -119,15 +121,15 @@ export class EciesMultiRecipient {
|
|
|
119
121
|
const symmetricKey = await this.decryptKey(privateKey, encryptedKey);
|
|
120
122
|
// Extract components from encrypted message
|
|
121
123
|
let offset = 0;
|
|
122
|
-
const iv = encryptedData.encryptedMessage.slice(offset, offset +
|
|
123
|
-
offset +=
|
|
124
|
-
const authTag = encryptedData.encryptedMessage.slice(offset, offset +
|
|
125
|
-
offset +=
|
|
124
|
+
const iv = encryptedData.encryptedMessage.slice(offset, offset + this.eciesConsts.IV_SIZE);
|
|
125
|
+
offset += this.eciesConsts.IV_SIZE;
|
|
126
|
+
const authTag = encryptedData.encryptedMessage.slice(offset, offset + this.eciesConsts.AUTH_TAG_SIZE);
|
|
127
|
+
offset += this.eciesConsts.AUTH_TAG_SIZE;
|
|
126
128
|
const encrypted = encryptedData.encryptedMessage.slice(offset);
|
|
127
129
|
// AES-GCM provides authentication via auth tag (no separate CRC needed)
|
|
128
130
|
// Decrypt with symmetric key
|
|
129
131
|
const encryptedWithTag = AESGCMService.combineEncryptedDataAndTag(encrypted, authTag);
|
|
130
|
-
const decrypted = await AESGCMService.decrypt(iv, encryptedWithTag, symmetricKey, true);
|
|
132
|
+
const decrypted = await AESGCMService.decrypt(iv, encryptedWithTag, symmetricKey, true, this.eciesConsts);
|
|
131
133
|
// Verify length
|
|
132
134
|
if (decrypted.length !== encryptedData.dataLength) {
|
|
133
135
|
throw new Error('Decrypted data length mismatch');
|
|
@@ -141,7 +143,7 @@ export class EciesMultiRecipient {
|
|
|
141
143
|
if (data.recipientIds.length !== data.recipientKeys.length) {
|
|
142
144
|
throw new Error('Recipient count mismatch');
|
|
143
145
|
}
|
|
144
|
-
if (data.dataLength < 0 || data.dataLength >
|
|
146
|
+
if (data.dataLength < 0 || data.dataLength > this.eciesConsts.MAX_RAW_DATA_SIZE) {
|
|
145
147
|
throw new Error('Invalid data length');
|
|
146
148
|
}
|
|
147
149
|
// Data length (8 bytes)
|
|
@@ -169,26 +171,26 @@ export class EciesMultiRecipient {
|
|
|
169
171
|
// Read data length
|
|
170
172
|
const dataLength = Number(view.getBigUint64(offset, false));
|
|
171
173
|
offset += 8;
|
|
172
|
-
if (dataLength <= 0 || dataLength >
|
|
174
|
+
if (dataLength <= 0 || dataLength > this.eciesConsts.MAX_RAW_DATA_SIZE) {
|
|
173
175
|
throw new Error('Invalid data length');
|
|
174
176
|
}
|
|
175
177
|
// Read recipient count
|
|
176
178
|
const recipientCount = view.getUint16(offset, false);
|
|
177
179
|
offset += 2;
|
|
178
|
-
if (recipientCount <= 0 || recipientCount >
|
|
180
|
+
if (recipientCount <= 0 || recipientCount > this.eciesConsts.MULTIPLE.MAX_RECIPIENTS) {
|
|
179
181
|
throw new Error('Invalid recipient count');
|
|
180
182
|
}
|
|
181
183
|
// Read recipient IDs
|
|
182
184
|
const recipientIds = [];
|
|
183
185
|
for (let i = 0; i < recipientCount; i++) {
|
|
184
|
-
recipientIds.push(data.slice(offset, offset +
|
|
185
|
-
offset +=
|
|
186
|
+
recipientIds.push(data.slice(offset, offset + this.eciesConsts.MULTIPLE.RECIPIENT_ID_SIZE));
|
|
187
|
+
offset += this.eciesConsts.MULTIPLE.RECIPIENT_ID_SIZE;
|
|
186
188
|
}
|
|
187
189
|
// Read encrypted keys
|
|
188
190
|
const recipientKeys = [];
|
|
189
191
|
for (let i = 0; i < recipientCount; i++) {
|
|
190
|
-
recipientKeys.push(data.slice(offset, offset +
|
|
191
|
-
offset +=
|
|
192
|
+
recipientKeys.push(data.slice(offset, offset + this.eciesConsts.MULTIPLE.ENCRYPTED_KEY_SIZE));
|
|
193
|
+
offset += this.eciesConsts.MULTIPLE.ENCRYPTED_KEY_SIZE;
|
|
192
194
|
}
|
|
193
195
|
return {
|
|
194
196
|
dataLength,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-recipient.js","sourceRoot":"","sources":["../../../src/services/ecies/multi-recipient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"multi-recipient.js","sourceRoot":"","sources":["../../../src/services/ecies/multi-recipient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAOhD;;GAEG;AACH,MAAM,OAAO,mBAAmB;IACX,UAAU,CAAkB;IAC5B,WAAW,CAAkB;IAEhD,YAAY,MAAoB,EAAE,WAA6B;QAC7D,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,KAAK,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,aAAa,CAAC,cAAsB;QACzC,OAAO,CACL,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB;YAC1C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,oBAAoB;YAC9C,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,iBAAiB;YAC5D,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAC9D,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,UAAU,CACrB,iBAA6B,EAC7B,mBAA+B;QAE/B,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC;QAC1E,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAC5D,gBAAgB,CAAC,UAAU,EAC3B,iBAAiB,CAClB,CAAC;QAEF,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE1E,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,OAAO,CAC/C,mBAAmB,EACnB,MAAM,EACN,IAAI,EACJ,IAAI,CAAC,WAAW,CACjB,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,aAAa,CAAC;QACxC,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC;QAElC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,iBAAiB,CACtB,IAAI,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAC1C,EAAE,EACF,OAAO,EACP,SAAS,CACV,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,UAAU,CACrB,UAAsB,EACtB,YAAwB;QAExB,IAAI,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YACzE,MAAM,IAAI,KAAK,CACb,0CAA0C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,SAAS,YAAY,CAAC,MAAM,EAAE,CACrH,CAAC;QACJ,CAAC;QAED,MAAM,kBAAkB,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACrF,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,CAC3B,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAClC,IAAI,CAAC,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAC9D,CAAC;QACF,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAChC,IAAI,CAAC,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAC7D,IAAI,CAAC,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAC/F,CAAC;QACF,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAClC,IAAI,CAAC,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAC/F,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAC5D,UAAU,EACV,kBAAkB,CACnB,CAAC;QACF,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE1E,MAAM,gBAAgB,GAAG,aAAa,CAAC,0BAA0B,CAC/D,SAAS,EACT,OAAO,CACR,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAC3C,EAAE,EACF,gBAAgB,EAChB,MAAM,EACN,IAAI,EACJ,IAAI,CAAC,WAAW,CACjB,CAAC;YACF,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;gBAC7D,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,eAAe,CAC1B,UAA6B,EAC7B,OAAmB,EACnB,WAAuB,IAAI,UAAU,CAAC,CAAC,CAAC;QAExC,IAAI,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,yBAAyB;QACzB,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CACzC,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CACpD,CAAC;QAEF,qCAAqC;QACrC,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,OAAO,CAC/C,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,IAAI,CAAC,WAAW,CACjB,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,aAAa,CAAC;QACxC,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC;QAElC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;QACJ,CAAC;QAED,6DAA6D;QAC7D,MAAM,aAAa,GAAG,iBAAiB,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAE1E,2CAA2C;QAC3C,MAAM,YAAY,GAAiB,EAAE,CAAC;QACtC,MAAM,aAAa,GAAiB,EAAE,CAAC;QAEvC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CACxC,SAAS,CAAC,SAAS,EACnB,YAAY,CACb,CAAC;YAEF,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAChC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEzD,OAAO;YACL,UAAU,EAAE,OAAO,CAAC,MAAM;YAC1B,cAAc,EAAE,UAAU,CAAC,MAAM;YACjC,YAAY;YACZ,aAAa;YACb,gBAAgB,EAAE,aAAa;YAC/B,UAAU;SACX,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,2BAA2B,CACtC,aAAqC,EACrC,WAAuB,EACvB,UAAsB;QAEtB,iCAAiC;QACjC,MAAM,cAAc,GAAG,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CACjE,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,CAClC,CAAC;QAEF,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAEjE,4BAA4B;QAC5B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAErE,4CAA4C;QAC5C,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,EAAE,GAAG,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAC7C,MAAM,EACN,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAClC,CAAC;QACF,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;QAEnC,MAAM,OAAO,GAAG,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAClD,MAAM,EACN,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CACxC,CAAC;QACF,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;QAEzC,MAAM,SAAS,GAAG,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE/D,wEAAwE;QAExE,6BAA6B;QAC7B,MAAM,gBAAgB,GAAG,aAAa,CAAC,0BAA0B,CAC/D,SAAS,EACT,OAAO,CACR,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAC3C,EAAE,EACF,gBAAgB,EAChB,YAAY,EACZ,IAAI,EACJ,IAAI,CAAC,WAAW,CACjB,CAAC;QAEF,gBAAgB;QAChB,IAAI,SAAS,CAAC,MAAM,KAAK,aAAa,CAAC,UAAU,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,IAA4B;QAC7C,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YAChF,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QAED,wBAAwB;QACxB,MAAM,oBAAoB,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,YAAY,CACpD,CAAC,EACD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EACvB,KAAK,CACN,CAAC;QAEF,4BAA4B;QAC5B,MAAM,wBAAwB,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,QAAQ,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,SAAS,CACrD,CAAC,EACD,IAAI,CAAC,YAAY,CAAC,MAAM,EACxB,KAAK,CACN,CAAC;QAEF,gBAAgB;QAChB,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QAEvE,iBAAiB;QACjB,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAEzE,OAAO,iBAAiB,CACtB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,IAAgB;QACjC,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACrB,iBAAiB;YACjB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAExD,mBAAmB;QACnB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5D,MAAM,IAAI,CAAC,CAAC;QAEZ,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QAED,uBAAuB;QACvB,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrD,MAAM,IAAI,CAAC,CAAC;QAEZ,IAAI,cAAc,IAAI,CAAC,IAAI,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;YACrF,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,qBAAqB;QACrB,MAAM,YAAY,GAAiB,EAAE,CAAC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,YAAY,CAAC,IAAI,CACf,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CACzE,CAAC;YACF,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACxD,CAAC;QAED,sBAAsB;QACtB,MAAM,aAAa,GAAiB,EAAE,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,aAAa,CAAC,IAAI,CAChB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAC1E,CAAC;YACF,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACzD,CAAC;QAED,OAAO;YACL,UAAU;YACV,cAAc;YACd,YAAY;YACZ,aAAa;YACb,UAAU,EAAE,MAAM;SACnB,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,IAAgB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEvD,OAAO;YACL,GAAG,MAAM;YACT,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,CAAa,EAAE,CAAa;QAC9C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;QAClC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -1,19 +1,23 @@
|
|
|
1
|
+
import { IECIESConstants } from '../../interfaces/ecies-consts';
|
|
1
2
|
import { EciesEncryptionType, EciesEncryptionTypeEnum } from '../../enumerations/ecies-encryption-type';
|
|
2
3
|
import { IECIESConfig } from '../../interfaces/ecies-config';
|
|
3
4
|
import { SecureString } from '../../secure-string';
|
|
4
5
|
import { SignatureString, SignatureUint8Array } from '../../types';
|
|
5
6
|
import { EciesCryptoCore } from './crypto-core';
|
|
6
7
|
import { ISimpleKeyPair, IWalletSeed } from './interfaces';
|
|
8
|
+
import { EciesSignature } from './signature';
|
|
9
|
+
import { EciesSingleRecipient } from './single-recipient';
|
|
7
10
|
/**
|
|
8
11
|
* Browser-compatible ECIES service that mirrors the server-side functionality
|
|
9
12
|
* Uses Web Crypto API and @scure/@noble libraries for browser compatibility
|
|
10
13
|
*/
|
|
11
14
|
export declare class ECIESService {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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);
|
|
17
21
|
get core(): EciesCryptoCore;
|
|
18
22
|
get config(): IECIESConfig;
|
|
19
23
|
get curveName(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,18 +12,20 @@ export class ECIESService {
|
|
|
12
12
|
cryptoCore;
|
|
13
13
|
signature;
|
|
14
14
|
singleRecipient;
|
|
15
|
-
|
|
15
|
+
eciesConsts;
|
|
16
|
+
constructor(config, eciesParams) {
|
|
17
|
+
this.eciesConsts = eciesParams ?? ECIES;
|
|
16
18
|
this._config = {
|
|
17
|
-
curveName:
|
|
18
|
-
primaryKeyDerivationPath:
|
|
19
|
-
mnemonicStrength:
|
|
20
|
-
symmetricAlgorithm:
|
|
21
|
-
symmetricKeyBits:
|
|
22
|
-
symmetricKeyMode:
|
|
19
|
+
curveName: this.eciesConsts.CURVE_NAME,
|
|
20
|
+
primaryKeyDerivationPath: this.eciesConsts.PRIMARY_KEY_DERIVATION_PATH,
|
|
21
|
+
mnemonicStrength: this.eciesConsts.MNEMONIC_STRENGTH,
|
|
22
|
+
symmetricAlgorithm: this.eciesConsts.SYMMETRIC.ALGORITHM,
|
|
23
|
+
symmetricKeyBits: this.eciesConsts.SYMMETRIC.KEY_BITS,
|
|
24
|
+
symmetricKeyMode: this.eciesConsts.SYMMETRIC.MODE,
|
|
23
25
|
...config,
|
|
24
26
|
};
|
|
25
27
|
// Initialize components
|
|
26
|
-
this.cryptoCore = new EciesCryptoCore(this._config);
|
|
28
|
+
this.cryptoCore = new EciesCryptoCore(this._config, this.eciesConsts);
|
|
27
29
|
this.signature = new EciesSignature(this.cryptoCore);
|
|
28
30
|
this.singleRecipient = new EciesSingleRecipient(this._config);
|
|
29
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/services/ecies/service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/services/ecies/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
+
import { IECIESConstants } from '../../interfaces/ecies-consts';
|
|
1
2
|
import { EciesEncryptionTypeEnum } from '../../enumerations/ecies-encryption-type';
|
|
2
3
|
import { IECIESConfig } from '../../interfaces/ecies-config';
|
|
4
|
+
import { EciesCryptoCore } from './crypto-core';
|
|
3
5
|
import { IDecryptionResult, ISingleEncryptedParsedHeader } from './interfaces';
|
|
4
6
|
/**
|
|
5
7
|
* Browser-compatible single recipient ECIES encryption/decryption
|
|
6
8
|
*/
|
|
7
9
|
export declare class EciesSingleRecipient {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
protected readonly cryptoCore: EciesCryptoCore;
|
|
11
|
+
protected readonly config: IECIESConfig;
|
|
12
|
+
protected readonly eciesConsts: IECIESConstants;
|
|
13
|
+
constructor(config: IECIESConfig, eciesParams?: IECIESConstants);
|
|
11
14
|
/**
|
|
12
15
|
* Encrypt a message for a single recipient
|
|
13
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"single-recipient.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/single-recipient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"single-recipient.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/single-recipient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAEL,uBAAuB,EACxB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAE/E;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IAC/C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IACxC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;gBAEpC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,eAAe;IAM/D;;OAEG;IACU,OAAO,CAClB,aAAa,EAAE,OAAO,EACtB,iBAAiB,EAAE,UAAU,EAC7B,OAAO,EAAE,UAAU,EACnB,QAAQ,GAAE,UAA8B,GACvC,OAAO,CAAC,UAAU,CAAC;IA+EtB;;OAEG;IACI,qBAAqB,CAC1B,cAAc,EAAE,uBAAuB,GAAG,SAAS,EACnD,IAAI,EAAE,UAAU,EAChB,YAAY,GAAE,MAAU,EACxB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAChC;QACD,MAAM,EAAE,4BAA4B,CAAC;QACrC,IAAI,EAAE,UAAU,CAAC;QACjB,SAAS,EAAE,UAAU,CAAC;KACvB;IAqHD;;OAEG;IACU,iBAAiB,CAC5B,cAAc,EAAE,uBAAuB,GAAG,SAAS,EACnD,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,UAAU,EACzB,YAAY,GAAE,MAAU,EACxB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAChC,OAAO,CAAC,UAAU,CAAC;IAWtB;;OAEG;IACU,mBAAmB,CAC9B,cAAc,EAAE,uBAAuB,GAAG,SAAS,EACnD,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,UAAU,EACzB,YAAY,GAAE,MAAU,EACxB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAChC,OAAO,CAAC,iBAAiB,CAAC;IAsB7B;;OAEG;IACU,qBAAqB,CAChC,UAAU,EAAE,UAAU,EACtB,kBAAkB,EAAE,UAAU,EAC9B,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,UAAU,CAAC;IAwBtB,OAAO,CAAC,WAAW;CAOpB"}
|