@digitaldefiance/node-ecies-lib 3.0.7 → 4.1.0

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.
Files changed (119) hide show
  1. package/README.md +233 -408
  2. package/package.json +3 -3
  3. package/src/builders/member-builder.d.ts +1 -2
  4. package/src/builders/member-builder.d.ts.map +1 -1
  5. package/src/builders/member-builder.js.map +1 -1
  6. package/src/constants.d.ts.map +1 -1
  7. package/src/constants.js +38 -9
  8. package/src/constants.js.map +1 -1
  9. package/src/i18n/ecies-i18n-factory.d.ts +2 -52
  10. package/src/i18n/ecies-i18n-factory.d.ts.map +1 -1
  11. package/src/i18n/ecies-i18n-factory.js +9 -63
  12. package/src/i18n/ecies-i18n-factory.js.map +1 -1
  13. package/src/i18n/node-ecies-i18n-setup.d.ts.map +1 -1
  14. package/src/i18n/node-ecies-i18n-setup.js +5 -53
  15. package/src/i18n/node-ecies-i18n-setup.js.map +1 -1
  16. package/src/i18n/node-keys.d.ts +57 -0
  17. package/src/i18n/node-keys.d.ts.map +1 -0
  18. package/src/i18n/node-keys.js +67 -0
  19. package/src/i18n/node-keys.js.map +1 -0
  20. package/src/i18n/translations/de.d.ts +1 -1
  21. package/src/i18n/translations/de.d.ts.map +1 -1
  22. package/src/i18n/translations/de.js +51 -46
  23. package/src/i18n/translations/de.js.map +1 -1
  24. package/src/i18n/translations/en-GB.d.ts +1 -1
  25. package/src/i18n/translations/en-GB.d.ts.map +1 -1
  26. package/src/i18n/translations/en-GB.js +51 -46
  27. package/src/i18n/translations/en-GB.js.map +1 -1
  28. package/src/i18n/translations/en-US.d.ts +1 -1
  29. package/src/i18n/translations/en-US.d.ts.map +1 -1
  30. package/src/i18n/translations/en-US.js +52 -46
  31. package/src/i18n/translations/en-US.js.map +1 -1
  32. package/src/i18n/translations/es.d.ts +1 -1
  33. package/src/i18n/translations/es.d.ts.map +1 -1
  34. package/src/i18n/translations/es.js +51 -46
  35. package/src/i18n/translations/es.js.map +1 -1
  36. package/src/i18n/translations/fr.d.ts +1 -1
  37. package/src/i18n/translations/fr.d.ts.map +1 -1
  38. package/src/i18n/translations/fr.js +51 -46
  39. package/src/i18n/translations/fr.js.map +1 -1
  40. package/src/i18n/translations/index.d.ts +2 -0
  41. package/src/i18n/translations/index.d.ts.map +1 -1
  42. package/src/i18n/translations/index.js +5 -1
  43. package/src/i18n/translations/index.js.map +1 -1
  44. package/src/i18n/translations/ja.d.ts +1 -1
  45. package/src/i18n/translations/ja.d.ts.map +1 -1
  46. package/src/i18n/translations/ja.js +51 -46
  47. package/src/i18n/translations/ja.js.map +1 -1
  48. package/src/i18n/translations/uk.d.ts +1 -1
  49. package/src/i18n/translations/uk.d.ts.map +1 -1
  50. package/src/i18n/translations/uk.js +51 -46
  51. package/src/i18n/translations/uk.js.map +1 -1
  52. package/src/i18n/translations/zh-cn.d.ts +1 -1
  53. package/src/i18n/translations/zh-cn.d.ts.map +1 -1
  54. package/src/i18n/translations/zh-cn.js +51 -46
  55. package/src/i18n/translations/zh-cn.js.map +1 -1
  56. package/src/interfaces/authenticated-cipher.d.ts +3 -0
  57. package/src/interfaces/authenticated-cipher.d.ts.map +1 -1
  58. package/src/interfaces/authenticated-decipher.d.ts +3 -0
  59. package/src/interfaces/authenticated-decipher.d.ts.map +1 -1
  60. package/src/interfaces/backend-member-operational.d.ts +1 -1
  61. package/src/interfaces/backend-member-operational.d.ts.map +1 -1
  62. package/src/interfaces/constants.d.ts +26 -17
  63. package/src/interfaces/constants.d.ts.map +1 -1
  64. package/src/interfaces/multi-encrypted-parsed-header.d.ts +5 -2
  65. package/src/interfaces/multi-encrypted-parsed-header.d.ts.map +1 -1
  66. package/src/interfaces/multi-recipient-chunk.d.ts +16 -0
  67. package/src/interfaces/multi-recipient-chunk.d.ts.map +1 -1
  68. package/src/interfaces/multi-recipient-chunk.js +10 -0
  69. package/src/interfaces/multi-recipient-chunk.js.map +1 -1
  70. package/src/lib/index.d.ts +2 -0
  71. package/src/lib/index.d.ts.map +1 -1
  72. package/src/lib/index.js +2 -0
  73. package/src/lib/index.js.map +1 -1
  74. package/src/lib/invariant-validator.d.ts +62 -0
  75. package/src/lib/invariant-validator.d.ts.map +1 -0
  76. package/src/lib/invariant-validator.js +108 -0
  77. package/src/lib/invariant-validator.js.map +1 -0
  78. package/src/lib/invariants/index.d.ts +8 -0
  79. package/src/lib/invariants/index.d.ts.map +1 -0
  80. package/src/lib/invariants/index.js +12 -0
  81. package/src/lib/invariants/index.js.map +1 -0
  82. package/src/lib/invariants/recipient-id-consistency.d.ts +22 -0
  83. package/src/lib/invariants/recipient-id-consistency.d.ts.map +1 -0
  84. package/src/lib/invariants/recipient-id-consistency.js +62 -0
  85. package/src/lib/invariants/recipient-id-consistency.js.map +1 -0
  86. package/src/member.d.ts +6 -6
  87. package/src/member.d.ts.map +1 -1
  88. package/src/member.js +13 -20
  89. package/src/member.js.map +1 -1
  90. package/src/services/aes-gcm.d.ts +2 -2
  91. package/src/services/aes-gcm.d.ts.map +1 -1
  92. package/src/services/aes-gcm.js +8 -2
  93. package/src/services/aes-gcm.js.map +1 -1
  94. package/src/services/ecies/crypto-core.d.ts +21 -0
  95. package/src/services/ecies/crypto-core.d.ts.map +1 -1
  96. package/src/services/ecies/crypto-core.js +62 -7
  97. package/src/services/ecies/crypto-core.js.map +1 -1
  98. package/src/services/ecies/multi-recipient.d.ts +11 -7
  99. package/src/services/ecies/multi-recipient.d.ts.map +1 -1
  100. package/src/services/ecies/multi-recipient.js +200 -71
  101. package/src/services/ecies/multi-recipient.js.map +1 -1
  102. package/src/services/ecies/service.d.ts +1 -1
  103. package/src/services/ecies/service.d.ts.map +1 -1
  104. package/src/services/ecies/service.js +2 -2
  105. package/src/services/ecies/service.js.map +1 -1
  106. package/src/services/ecies/single-recipient.d.ts +1 -1
  107. package/src/services/ecies/single-recipient.d.ts.map +1 -1
  108. package/src/services/ecies/single-recipient.js +76 -43
  109. package/src/services/ecies/single-recipient.js.map +1 -1
  110. package/src/services/encryption-stream.js +3 -4
  111. package/src/services/encryption-stream.js.map +1 -1
  112. package/src/services/multi-recipient-processor.d.ts +42 -9
  113. package/src/services/multi-recipient-processor.d.ts.map +1 -1
  114. package/src/services/multi-recipient-processor.js +273 -177
  115. package/src/services/multi-recipient-processor.js.map +1 -1
  116. package/src/test-mocks/mock-backend-member.d.ts +7 -8
  117. package/src/test-mocks/mock-backend-member.d.ts.map +1 -1
  118. package/src/test-mocks/mock-backend-member.js +4 -4
  119. package/src/test-mocks/mock-backend-member.js.map +1 -1
@@ -2,221 +2,317 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MultiRecipientProcessor = void 0;
4
4
  const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
5
+ const constants_1 = require("../constants");
6
+ const multi_recipient_chunk_1 = require("../interfaces/multi-recipient-chunk");
5
7
  const aes_gcm_1 = require("./aes-gcm");
8
+ const multi_recipient_1 = require("./ecies/multi-recipient");
6
9
  const crypto_1 = require("crypto");
7
10
  class MultiRecipientProcessor {
8
11
  aesGcm;
9
12
  cryptoCore;
10
13
  consts;
11
- constructor(cryptoCore, consts = ecies_lib_1.Constants.ECIES) {
14
+ eciesMultiRecipient;
15
+ constants;
16
+ recipientIdSize;
17
+ constructor(cryptoCore, consts = constants_1.Constants.ECIES) {
12
18
  this.cryptoCore = cryptoCore;
13
19
  this.consts = consts;
14
20
  this.aesGcm = new aes_gcm_1.AESGCMService();
21
+ this.eciesMultiRecipient = new multi_recipient_1.EciesMultiRecipient(cryptoCore);
22
+ this.recipientIdSize = consts.MULTIPLE.RECIPIENT_ID_SIZE;
23
+ this.constants = (0, multi_recipient_chunk_1.getMultiRecipientConstants)(this.recipientIdSize);
15
24
  }
16
- getHeaderSize(recipientCount) {
17
- return (this.consts.MULTIPLE.DATA_LENGTH_SIZE +
18
- this.consts.MULTIPLE.RECIPIENT_COUNT_SIZE +
19
- recipientCount * this.consts.MULTIPLE.RECIPIENT_ID_SIZE +
20
- recipientCount * this.consts.MULTIPLE.ENCRYPTED_KEY_SIZE);
25
+ /**
26
+ * Encrypts a message for multiple recipients.
27
+ * Wrapper around EciesMultiRecipient.encryptMultiple for backward compatibility.
28
+ */
29
+ async encryptMultiple(recipients, message, preamble = Buffer.alloc(0)) {
30
+ // Convert IMultiRecipient to Member-like objects
31
+ // EciesMultiRecipient expects Member[] which has id: Buffer and publicKey: Buffer
32
+ // IMultiRecipient already matches this structure
33
+ const members = recipients;
34
+ const result = this.eciesMultiRecipient.encryptMultiple(members, message, preamble);
35
+ return result;
21
36
  }
22
- async encryptKey(receiverPublicKey, messageSymmetricKey) {
23
- const ephemeralKeyPair = await this.cryptoCore.generateEphemeralKeyPair();
24
- const sharedSecret = await this.cryptoCore.computeSharedSecret(ephemeralKeyPair.privateKey, receiverPublicKey);
25
- const symKey = sharedSecret.subarray(0, this.consts.SYMMETRIC.KEY_SIZE);
26
- const { encrypted, iv, tag } = this.aesGcm.encrypt(messageSymmetricKey, symKey, true);
27
- if (!tag) {
28
- throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.AuthenticationTagIsRequiredForKeyEncryption);
29
- }
30
- return Buffer.concat([
31
- Buffer.from(ephemeralKeyPair.publicKey),
32
- iv,
33
- tag,
34
- encrypted,
35
- ]);
37
+ /**
38
+ * Builds the header for a message encrypted for multiple recipients.
39
+ * Wrapper around EciesMultiRecipient.buildECIESMultipleRecipientHeader for backward compatibility.
40
+ */
41
+ buildHeader(data) {
42
+ return this.eciesMultiRecipient.buildECIESMultipleRecipientHeader(data);
36
43
  }
37
- async decryptKey(privateKey, encryptedKey) {
38
- if (encryptedKey.length !== this.consts.MULTIPLE.ENCRYPTED_KEY_SIZE) {
39
- throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.InvalidEncryptedKeyLength);
44
+ async encryptChunk(data, recipients, chunkIndex, isLast, symmetricKey, senderPrivateKey) {
45
+ if (chunkIndex < 0 || chunkIndex > 0xFFFFFFFF) {
46
+ throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.InvalidDataLength);
40
47
  }
41
- const ephemeralPublicKey = encryptedKey.subarray(0, this.consts.PUBLIC_KEY_LENGTH);
42
- const iv = encryptedKey.subarray(this.consts.PUBLIC_KEY_LENGTH, this.consts.PUBLIC_KEY_LENGTH + this.consts.IV_SIZE);
43
- const authTag = encryptedKey.subarray(this.consts.PUBLIC_KEY_LENGTH + this.consts.IV_SIZE, this.consts.PUBLIC_KEY_LENGTH + this.consts.IV_SIZE + this.consts.AUTH_TAG_SIZE);
44
- const encrypted = encryptedKey.subarray(this.consts.PUBLIC_KEY_LENGTH + this.consts.IV_SIZE + this.consts.AUTH_TAG_SIZE);
45
- const sharedSecret = await this.cryptoCore.computeSharedSecret(privateKey, ephemeralPublicKey);
46
- const symKey = sharedSecret.subarray(0, this.consts.SYMMETRIC.KEY_SIZE);
47
- const encryptedWithTag = Buffer.concat([encrypted, authTag]);
48
- try {
49
- const decrypted = this.aesGcm.decrypt(iv, encryptedWithTag, symKey, true);
50
- if (decrypted.length !== this.consts.SYMMETRIC.KEY_SIZE) {
51
- throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.InvalidDataLength);
52
- }
53
- return decrypted;
48
+ // Sign-then-Encrypt
49
+ let dataToEncrypt = data;
50
+ if (senderPrivateKey) {
51
+ const signature = this.cryptoCore.sign(senderPrivateKey, data);
52
+ dataToEncrypt = Buffer.concat([signature, data]);
54
53
  }
55
- catch (error) {
56
- if (error instanceof ecies_lib_1.ECIESError) {
57
- throw error;
58
- }
59
- throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.FailedToDecryptKey, { cause: error instanceof Error ? error : undefined });
54
+ if (dataToEncrypt.length > this.consts.MAX_RAW_DATA_SIZE) {
55
+ throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.FileSizeTooLarge);
60
56
  }
61
- }
62
- async encryptMultiple(recipients, message, preamble = Buffer.alloc(0)) {
63
- if (recipients.length > this.consts.MULTIPLE.MAX_RECIPIENTS) {
64
- throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.TooManyRecipients);
57
+ // Generate ONE ephemeral key pair for all recipients
58
+ const ecdh = (0, crypto_1.createECDH)(this.cryptoCore.config.curveName);
59
+ ecdh.generateKeys();
60
+ const ephemeralPrivateKey = ecdh.getPrivateKey();
61
+ let ephemeralPublicKey = ecdh.getPublicKey(null, 'compressed');
62
+ // Ensure public key has 0x04 prefix
63
+ if (ephemeralPublicKey.length === this.cryptoCore.consts.RAW_PUBLIC_KEY_LENGTH) {
64
+ ephemeralPublicKey = Buffer.concat([
65
+ Buffer.from([this.cryptoCore.consts.PUBLIC_KEY_MAGIC]),
66
+ ephemeralPublicKey,
67
+ ]);
65
68
  }
66
- if (message.length > this.consts.MAX_RAW_DATA_SIZE) {
67
- throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.MessageTooLarge);
69
+ // Build recipient headers
70
+ const recipientHeaders = [];
71
+ for (const recipient of recipients) {
72
+ // Use Recipient ID as AAD for key encryption
73
+ const encryptedKey = this.eciesMultiRecipient.encryptKey(recipient.publicKey, symmetricKey, ephemeralPrivateKey, recipient.id);
74
+ recipientHeaders.push({
75
+ id: recipient.id,
76
+ keySize: encryptedKey.length,
77
+ encryptedKey,
78
+ });
68
79
  }
69
- const symmetricKey = (0, crypto_1.randomBytes)(this.consts.SYMMETRIC.KEY_SIZE);
70
- const { encrypted, iv, tag } = this.aesGcm.encrypt(message, symmetricKey, true);
71
- if (!tag) {
72
- throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.AuthenticationTagIsRequiredForMultiRecipientECIESEncryption);
80
+ // Calculate encrypted size (Data + Tag)
81
+ // AES-GCM tag is 16 bytes
82
+ const encryptedSize = dataToEncrypt.length + 16;
83
+ // Calculate total size
84
+ let recipientHeadersSize = 0;
85
+ for (const h of recipientHeaders) {
86
+ recipientHeadersSize += this.recipientIdSize + this.constants.KEY_SIZE_BYTES + h.keySize;
73
87
  }
74
- const storedMessage = Buffer.concat([iv, tag, encrypted]);
75
- const recipientIds = [];
76
- const recipientKeys = [];
77
- for (const recipient of recipients) {
78
- const encryptedKey = await this.encryptKey(recipient.publicKey, symmetricKey);
79
- recipientIds.push(recipient.id);
80
- recipientKeys.push(encryptedKey);
88
+ const totalSize = this.constants.HEADER_SIZE +
89
+ recipientHeadersSize +
90
+ 12 + // IV
91
+ encryptedSize;
92
+ // Build chunk buffer
93
+ const chunk = Buffer.alloc(totalSize);
94
+ let offset = 0;
95
+ // Write header
96
+ chunk.writeUInt32BE(this.constants.MAGIC, offset);
97
+ offset += 4;
98
+ chunk.writeUInt16BE(this.constants.VERSION, offset);
99
+ offset += 2;
100
+ chunk.writeUInt16BE(recipients.length, offset);
101
+ offset += 2;
102
+ chunk.writeUInt32BE(chunkIndex, offset);
103
+ offset += 4;
104
+ chunk.writeUInt32BE(dataToEncrypt.length, offset); // Original Size
105
+ offset += 4;
106
+ chunk.writeUInt32BE(encryptedSize, offset);
107
+ offset += 4;
108
+ chunk.writeUInt8(isLast ? this.constants.FLAG_IS_LAST : 0, offset);
109
+ offset += 1;
110
+ // Write Ephemeral Public Key (33 bytes)
111
+ ephemeralPublicKey.copy(chunk, offset);
112
+ offset += 33;
113
+ // Padding to HEADER_SIZE (64 bytes)
114
+ offset = this.constants.HEADER_SIZE;
115
+ // Write recipient headers
116
+ for (const header of recipientHeaders) {
117
+ header.id.copy(chunk, offset);
118
+ offset += this.recipientIdSize;
119
+ chunk.writeUInt16BE(header.keySize, offset);
120
+ offset += this.constants.KEY_SIZE_BYTES;
121
+ header.encryptedKey.copy(chunk, offset);
122
+ offset += header.keySize;
81
123
  }
82
- const headerSize = this.getHeaderSize(recipients.length);
83
- return {
84
- dataLength: message.length,
124
+ // Extract the full header (including recipient headers) to use as AAD
125
+ const headerBytes = chunk.subarray(0, offset);
126
+ // Encrypt data with AES-256-GCM using Header as AAD
127
+ const iv = (0, crypto_1.randomBytes)(this.consts.IV_SIZE);
128
+ const cipher = (0, crypto_1.createCipheriv)(this.consts.SYMMETRIC_ALGORITHM_CONFIGURATION, symmetricKey, iv);
129
+ cipher.setAAD(headerBytes);
130
+ const encrypted = cipher.update(dataToEncrypt);
131
+ const final = cipher.final();
132
+ const authTag = cipher.getAuthTag();
133
+ // Write IV
134
+ iv.copy(chunk, offset);
135
+ offset += 12;
136
+ // Write encrypted data
137
+ encrypted.copy(chunk, offset);
138
+ offset += encrypted.length;
139
+ final.copy(chunk, offset); // Should be empty usually
140
+ offset += final.length;
141
+ // Write auth tag
142
+ authTag.copy(chunk, offset);
143
+ const header = {
144
+ chunkIndex,
145
+ flags: isLast ? 1 : 0,
85
146
  recipientCount: recipients.length,
86
- recipientIds,
87
- recipientKeys,
88
- encryptedMessage: storedMessage,
89
- headerSize,
147
+ magic: this.constants.MAGIC,
148
+ version: this.constants.VERSION,
149
+ originalSize: dataToEncrypt.length,
150
+ encryptedSize,
151
+ };
152
+ return {
153
+ header,
154
+ data: chunk,
90
155
  };
91
156
  }
92
- async decryptMultipleForRecipient(encryptedData, recipientId, privateKey, preambleSize = 0) {
93
- const recipientIndex = encryptedData.recipientIds.findIndex((id) => id.equals(recipientId));
94
- if (recipientIndex === -1) {
95
- throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.RecipientNotFound);
96
- }
97
- const encryptedKey = encryptedData.recipientKeys[recipientIndex];
98
- const symmetricKey = await this.decryptKey(privateKey, encryptedKey);
99
- let offset = preambleSize;
100
- const iv = encryptedData.encryptedMessage.subarray(offset, offset + this.consts.IV_SIZE);
101
- offset += this.consts.IV_SIZE;
102
- const authTag = encryptedData.encryptedMessage.subarray(offset, offset + this.consts.AUTH_TAG_SIZE);
103
- offset += this.consts.AUTH_TAG_SIZE;
104
- const encrypted = encryptedData.encryptedMessage.subarray(offset);
105
- const encryptedWithTag = Buffer.concat([encrypted, authTag]);
106
- const decrypted = this.aesGcm.decrypt(iv, encryptedWithTag, symmetricKey, true);
107
- if (decrypted.length !== encryptedData.dataLength) {
108
- throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.DecryptedDataLengthMismatch);
109
- }
110
- return decrypted;
111
- }
112
- buildHeader(data) {
113
- if (data.recipientIds.length !== data.recipientKeys.length) {
114
- throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.RecipientCountMismatch);
115
- }
116
- if (data.dataLength < 0 || data.dataLength > this.consts.MAX_RAW_DATA_SIZE) {
157
+ async decryptChunk(chunkData, recipientId, privateKey, senderPublicKey) {
158
+ if (chunkData.length < this.constants.HEADER_SIZE) {
117
159
  throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.InvalidDataLength);
118
160
  }
119
- const dataLengthBuffer = Buffer.alloc(8);
120
- dataLengthBuffer.writeBigUInt64BE(BigInt(data.dataLength));
121
- const recipientCountBuffer = Buffer.alloc(2);
122
- recipientCountBuffer.writeUInt16BE(data.recipientIds.length);
123
- const recipientIdsBuffer = Buffer.concat(data.recipientIds);
124
- const encryptedKeysBuffer = Buffer.concat(data.recipientKeys);
125
- return Buffer.concat([
126
- dataLengthBuffer,
127
- recipientCountBuffer,
128
- recipientIdsBuffer,
129
- encryptedKeysBuffer,
130
- ]);
131
- }
132
- parseHeader(data) {
133
- if (data.length < 10) {
134
- throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.DataTooShortForMultiRecipientHeader);
135
- }
136
161
  let offset = 0;
137
- const dataLength = Number(data.readBigUInt64BE(offset));
138
- offset += 8;
139
- if (dataLength <= 0 || dataLength > this.consts.MAX_RAW_DATA_SIZE) {
140
- throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.InvalidDataLength);
162
+ // Parse header
163
+ const magic = chunkData.readUInt32BE(offset);
164
+ offset += 4;
165
+ if (magic !== this.constants.MAGIC) {
166
+ throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.InvalidDataLength); // Invalid Magic
141
167
  }
142
- const recipientCount = data.readUInt16BE(offset);
168
+ const version = chunkData.readUInt16BE(offset);
143
169
  offset += 2;
144
- if (recipientCount <= 0 || recipientCount > this.consts.MULTIPLE.MAX_RECIPIENTS) {
145
- throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.InvalidRecipientCount);
170
+ if (version !== this.constants.VERSION) {
171
+ throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.InvalidVersion);
146
172
  }
147
- const recipientIds = [];
173
+ const recipientCount = chunkData.readUInt16BE(offset);
174
+ offset += 2;
175
+ const chunkIndex = chunkData.readUInt32BE(offset);
176
+ offset += 4;
177
+ const originalSize = chunkData.readUInt32BE(offset);
178
+ offset += 4;
179
+ const encryptedSize = chunkData.readUInt32BE(offset);
180
+ offset += 4;
181
+ const flags = chunkData.readUInt8(offset);
182
+ offset += 1;
183
+ // Read Ephemeral Public Key (33 bytes)
184
+ const ephemeralPublicKey = chunkData.subarray(offset, offset + 33);
185
+ offset += 33;
186
+ offset = this.constants.HEADER_SIZE;
187
+ // Find recipient header and decrypt symmetric key
188
+ let symmetricKey = null;
189
+ let tempOffset = offset;
148
190
  for (let i = 0; i < recipientCount; i++) {
149
- recipientIds.push(data.subarray(offset, offset + this.consts.MULTIPLE.RECIPIENT_ID_SIZE));
150
- offset += this.consts.MULTIPLE.RECIPIENT_ID_SIZE;
191
+ const id = chunkData.subarray(tempOffset, tempOffset + this.recipientIdSize);
192
+ tempOffset += this.recipientIdSize;
193
+ const keySize = chunkData.readUInt16BE(tempOffset);
194
+ tempOffset += this.constants.KEY_SIZE_BYTES;
195
+ const encryptedKey = chunkData.subarray(tempOffset, tempOffset + keySize);
196
+ tempOffset += keySize;
197
+ // Check if this is our recipient
198
+ if (id.equals(recipientId)) {
199
+ // Use Recipient ID as AAD for key decryption
200
+ symmetricKey = this.eciesMultiRecipient.decryptKey(privateKey, encryptedKey, ephemeralPublicKey, id);
201
+ }
151
202
  }
152
- const recipientKeys = [];
153
- for (let i = 0; i < recipientCount; i++) {
154
- recipientKeys.push(data.subarray(offset, offset + this.consts.MULTIPLE.ENCRYPTED_KEY_SIZE));
155
- offset += this.consts.MULTIPLE.ENCRYPTED_KEY_SIZE;
203
+ if (!symmetricKey) {
204
+ throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.RecipientNotFound);
205
+ }
206
+ // Update offset to after all recipient headers
207
+ offset = tempOffset;
208
+ // Extract header bytes for AAD
209
+ const headerBytes = chunkData.subarray(0, offset);
210
+ // Read IV
211
+ const iv = chunkData.subarray(offset, offset + 12);
212
+ offset += 12;
213
+ // Read encrypted data (includes tag)
214
+ const encryptedWithTag = chunkData.subarray(offset, offset + encryptedSize);
215
+ offset += encryptedSize;
216
+ // Extract tag from end of encrypted data
217
+ const authTag = encryptedWithTag.subarray(encryptedWithTag.length - 16);
218
+ const encrypted = encryptedWithTag.subarray(0, encryptedWithTag.length - 16);
219
+ // Decrypt with AAD
220
+ const decipher = (0, crypto_1.createDecipheriv)(this.consts.SYMMETRIC_ALGORITHM_CONFIGURATION, symmetricKey, iv);
221
+ decipher.setAuthTag(authTag);
222
+ decipher.setAAD(headerBytes);
223
+ const decrypted = decipher.update(encrypted);
224
+ const final = decipher.final();
225
+ const decryptedMessage = Buffer.concat([decrypted, final]);
226
+ // Verify signature if sender public key provided
227
+ let finalData = decryptedMessage;
228
+ if (senderPublicKey) {
229
+ if (decryptedMessage.length < 64) {
230
+ throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.InvalidSignature);
231
+ }
232
+ const signature = decryptedMessage.subarray(0, 64);
233
+ const message = decryptedMessage.subarray(64);
234
+ const isValid = this.cryptoCore.verify(senderPublicKey, message, signature);
235
+ if (!isValid) {
236
+ throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.InvalidSignature);
237
+ }
238
+ finalData = message;
156
239
  }
157
240
  return {
158
- dataLength,
159
- recipientCount,
160
- recipientIds,
161
- recipientKeys,
162
- headerSize: offset,
241
+ data: finalData,
242
+ header: {
243
+ chunkIndex,
244
+ flags,
245
+ recipientCount,
246
+ magic,
247
+ version,
248
+ originalSize,
249
+ encryptedSize,
250
+ },
163
251
  };
164
252
  }
165
- parseMessage(data) {
166
- const header = this.parseHeader(data);
167
- const encryptedMessage = data.subarray(header.headerSize);
168
- return {
169
- ...header,
170
- encryptedMessage,
253
+ /**
254
+ * Decrypts a message encrypted with multiple ECIE for a recipient.
255
+ * Wrapper around EciesMultiRecipient.decryptMultipleECIEForRecipient for backward compatibility.
256
+ */
257
+ async decryptMultipleForRecipient(encryptedData, recipientId, privateKey, senderPublicKey) {
258
+ // Create a mock Member
259
+ const member = {
260
+ id: recipientId,
261
+ privateKey: { value: privateKey }
171
262
  };
263
+ return this.eciesMultiRecipient.decryptMultipleECIEForRecipient(encryptedData, member, senderPublicKey);
172
264
  }
173
- async encryptChunk(data, recipients, chunkIndex, isLast, symmetricKey) {
174
- if (chunkIndex < 0 || chunkIndex > 0xFFFFFFFF) {
175
- throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.InvalidDataLength);
176
- }
177
- if (data.length > this.consts.MAX_RAW_DATA_SIZE) {
178
- throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.FileSizeTooLarge);
179
- }
180
- const { encrypted, iv, tag } = this.aesGcm.encrypt(data, symmetricKey, true);
181
- if (!tag) {
182
- throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.AuthenticationTagIsRequiredForMultiRecipientECIESEncryption);
183
- }
184
- const header = {
185
- chunkIndex,
186
- flags: isLast ? 1 : 0,
187
- recipientCount: recipients.length,
188
- };
189
- return {
190
- header,
191
- data: Buffer.concat([iv, tag, encrypted]),
192
- };
265
+ /**
266
+ * Parses a multi-encrypted header.
267
+ * Wrapper around EciesMultiRecipient.parseMultiEncryptedHeader for backward compatibility.
268
+ */
269
+ parseHeader(data) {
270
+ const result = this.eciesMultiRecipient.parseMultiEncryptedHeader(data);
271
+ return result;
193
272
  }
194
- async decryptChunk(chunkData, recipientId, privateKey, encryptedKeys, recipientIds) {
195
- // If encryptedKeys and recipientIds not provided, parse from chunk
196
- if (!encryptedKeys || !recipientIds) {
197
- const parsed = this.parseMessage(chunkData);
198
- encryptedKeys = parsed.recipientKeys;
199
- recipientIds = parsed.recipientIds;
200
- chunkData = parsed.encryptedMessage;
201
- }
202
- const recipientIndex = recipientIds.findIndex((id) => id.equals(recipientId));
203
- if (recipientIndex === -1) {
204
- throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.RecipientNotFound);
273
+ /**
274
+ * Parses a multi-encrypted buffer into its components.
275
+ * Wrapper around EciesMultiRecipient.parseMultiEncryptedBuffer for backward compatibility.
276
+ */
277
+ parseMessage(data) {
278
+ const result = this.eciesMultiRecipient.parseMultiEncryptedBuffer(data);
279
+ return result;
280
+ }
281
+ /**
282
+ * Encrypts a symmetric key for a recipient.
283
+ * Generates a new ephemeral key pair.
284
+ * Returns [EphemeralPublicKey][EncryptedKey]
285
+ */
286
+ async encryptKey(recipientPublicKey, symmetricKey) {
287
+ // Generate ephemeral key pair
288
+ const ecdh = (0, crypto_1.createECDH)(this.cryptoCore.config.curveName);
289
+ ecdh.generateKeys();
290
+ const ephemeralPrivateKey = ecdh.getPrivateKey();
291
+ let ephemeralPublicKey = ecdh.getPublicKey(null, 'compressed');
292
+ // Ensure public key has 0x04 prefix
293
+ if (ephemeralPublicKey.length === this.cryptoCore.consts.RAW_PUBLIC_KEY_LENGTH) {
294
+ ephemeralPublicKey = Buffer.concat([
295
+ Buffer.from([this.cryptoCore.consts.PUBLIC_KEY_MAGIC]),
296
+ ephemeralPublicKey,
297
+ ]);
205
298
  }
206
- const encryptedKey = encryptedKeys[recipientIndex];
207
- const symmetricKey = await this.decryptKey(privateKey, encryptedKey);
208
- let offset = 0;
209
- const iv = chunkData.subarray(offset, offset + this.consts.IV_SIZE);
210
- offset += this.consts.IV_SIZE;
211
- const authTag = chunkData.subarray(offset, offset + this.consts.AUTH_TAG_SIZE);
212
- offset += this.consts.AUTH_TAG_SIZE;
213
- const encrypted = chunkData.subarray(offset);
214
- const encryptedWithTag = Buffer.concat([encrypted, authTag]);
215
- const decrypted = this.aesGcm.decrypt(iv, encryptedWithTag, symmetricKey, true);
216
- return {
217
- data: decrypted,
218
- header: { chunkIndex: 0, flags: 0, recipientCount: recipientIds.length },
219
- };
299
+ const encryptedKey = this.eciesMultiRecipient.encryptKey(recipientPublicKey, symmetricKey, ephemeralPrivateKey, Buffer.alloc(0) // No AAD for simple key encryption? Or use recipient ID?
300
+ );
301
+ return Buffer.concat([ephemeralPublicKey, encryptedKey]);
302
+ }
303
+ /**
304
+ * Decrypts a symmetric key.
305
+ * Expects [EphemeralPublicKey][EncryptedKey]
306
+ */
307
+ async decryptKey(privateKey, encryptedData) {
308
+ // Extract ephemeral public key
309
+ const pubKeyLength = this.cryptoCore.consts.PUBLIC_KEY_LENGTH; // 33
310
+ const ephemeralPublicKey = encryptedData.subarray(0, 33);
311
+ const encryptedKey = encryptedData.subarray(33);
312
+ return this.eciesMultiRecipient.decryptKey(privateKey, encryptedKey, ephemeralPublicKey, Buffer.alloc(0));
313
+ }
314
+ getHeaderSize(recipientCount) {
315
+ return this.eciesMultiRecipient.getHeaderSize(recipientCount);
220
316
  }
221
317
  }
222
318
  exports.MultiRecipientProcessor = MultiRecipientProcessor;
@@ -1 +1 @@
1
- {"version":3,"file":"multi-recipient-processor.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/services/multi-recipient-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multi-recipient-processor.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/services/multi-recipient-processor.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  import { EmailString, MemberType, SecureBuffer, SecureString } from '@digitaldefiance/ecies-lib';
2
2
  import { Wallet } from '@ethereumjs/wallet';
3
- import { Types } from 'mongoose';
4
3
  import { IBackendMemberOperational } from '../interfaces';
5
4
  import { SignatureBuffer } from '../types';
6
- export declare class MockBackendMember implements IBackendMemberOperational<Types.ObjectId> {
5
+ export declare class MockBackendMember implements IBackendMemberOperational<Buffer> {
7
6
  private _id;
8
7
  private _type;
9
8
  private _name;
@@ -16,24 +15,24 @@ export declare class MockBackendMember implements IBackendMemberOperational<Type
16
15
  private _wallet?;
17
16
  private _hasPrivateKey;
18
17
  constructor(data?: Partial<{
19
- id: Types.ObjectId;
18
+ id: Buffer;
20
19
  type: MemberType;
21
20
  name: string;
22
21
  email: EmailString;
23
22
  publicKey: Buffer;
24
23
  privateKey: SecureBuffer;
25
24
  wallet: Wallet;
26
- creatorId: Types.ObjectId;
25
+ creatorId: Buffer;
27
26
  dateCreated: Date;
28
27
  dateUpdated: Date;
29
28
  hasPrivateKey: boolean;
30
29
  }>);
31
- get id(): Types.ObjectId;
30
+ get id(): Buffer;
32
31
  get type(): MemberType;
33
32
  get name(): string;
34
33
  get email(): EmailString;
35
34
  get publicKey(): Uint8Array;
36
- get creatorId(): Types.ObjectId;
35
+ get creatorId(): Buffer;
37
36
  get dateCreated(): Date;
38
37
  get dateUpdated(): Date;
39
38
  get privateKey(): SecureBuffer | undefined;
@@ -53,14 +52,14 @@ export declare class MockBackendMember implements IBackendMemberOperational<Type
53
52
  toJson(): string;
54
53
  dispose(): void;
55
54
  static create(overrides?: Partial<{
56
- id: Types.ObjectId;
55
+ id: Buffer;
57
56
  type: MemberType;
58
57
  name: string;
59
58
  email: EmailString;
60
59
  publicKey: Buffer;
61
60
  privateKey: SecureBuffer;
62
61
  wallet: Wallet;
63
- creatorId: Types.ObjectId;
62
+ creatorId: Buffer;
64
63
  dateCreated: Date;
65
64
  dateUpdated: Date;
66
65
  hasPrivateKey: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"mock-backend-member.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/test-mocks/mock-backend-member.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock-backend-member.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/test-mocks/mock-backend-member.ts"],"names":[],"mappings":"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"}