@digitaldefiance/node-ecies-lib 4.12.5 → 4.12.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digitaldefiance/node-ecies-lib",
3
- "version": "4.12.5",
3
+ "version": "4.12.7",
4
4
  "description": "Digital Defiance Node ECIES Library",
5
5
  "homepage": "https://github.com/Digital-Defiance/node-ecies-lib",
6
6
  "repository": {
@@ -62,7 +62,7 @@
62
62
  "license": "MIT",
63
63
  "packageManager": "yarn@4.10.3",
64
64
  "dependencies": {
65
- "@digitaldefiance/ecies-lib": "4.12.5",
65
+ "@digitaldefiance/ecies-lib": "4.12.7",
66
66
  "@digitaldefiance/express-suite-test-utils": "1.0.14",
67
67
  "@digitaldefiance/i18n-lib": "3.8.16",
68
68
  "@ethereumjs/wallet": "^10.0.0",
@@ -71,6 +71,7 @@
71
71
  "@scure/bip32": "1.7.0",
72
72
  "bson": "^6.10.4",
73
73
  "ethereum-cryptography": "^3.2.0",
74
+ "js-sha3": "^0.9.3",
74
75
  "paillier-bigint": "^3.4.1",
75
76
  "ts-brand": "^0.2.0"
76
77
  },
package/src/index.d.ts CHANGED
@@ -8,6 +8,7 @@ export * from './interfaces';
8
8
  export * from './member';
9
9
  export * from './types';
10
10
  export * from './secure-buffer';
11
+ export * from './transforms';
11
12
  export { AESGCMService } from './services/aes-gcm';
12
13
  export { ChunkProcessor } from './services/chunk-processor';
13
14
  export * from './services/ecies';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AAGtB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAGhC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,cAAc,2BAA2B,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,YAAY,EACV,UAAU,EACV,SAAS,EACT,OAAO,IAAI,eAAe,GAC3B,MAAM,iBAAiB,CAAC;AAGzB,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AAGtB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAGhC,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,cAAc,2BAA2B,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,YAAY,EACV,UAAU,EACV,SAAS,EACT,OAAO,IAAI,eAAe,GAC3B,MAAM,iBAAiB,CAAC;AAGzB,cAAc,uBAAuB,CAAC"}
package/src/index.js CHANGED
@@ -14,6 +14,8 @@ tslib_1.__exportStar(require("./interfaces"), exports);
14
14
  tslib_1.__exportStar(require("./member"), exports);
15
15
  tslib_1.__exportStar(require("./types"), exports);
16
16
  tslib_1.__exportStar(require("./secure-buffer"), exports);
17
+ // Transforms - stream transforms for encryption/decryption
18
+ tslib_1.__exportStar(require("./transforms"), exports);
17
19
  // Services - explicit exports to avoid conflicts
18
20
  var aes_gcm_1 = require("./services/aes-gcm");
19
21
  Object.defineProperty(exports, "AESGCMService", { enumerable: true, get: function () { return aes_gcm_1.AESGCMService; } });
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/index.ts"],"names":[],"mappings":";;;;AAAA,0BAA0B;AAC1B,qDAA2B;AAC3B,iDAAuB;AACvB,gDAAsB;AAEtB,4CAA4C;AAC5C,sDAA4B;AAC5B,yDAA+B;AAC/B,iDAAuB;AACvB,uDAA6B;AAC7B,mDAAyB;AACzB,kDAAwB;AACxB,0DAAgC;AAEhC,iDAAiD;AACjD,8CAAmD;AAA1C,wGAAA,aAAa,OAAA;AACtB,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,2DAAiC;AACjC,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AACzB,kFAA+E;AAAtE,oIAAA,uBAAuB,OAAA;AAChC,4CAAkD;AAAzC,uGAAA,aAAa,OAAA;AACtB,gEAA8D;AAArD,mHAAA,eAAe,OAAA;AACxB,oEAA0C;AAE1C,kCAAkC;AAClC,qDAAsD;AAA7C,oHAAA,iBAAiB,OAAA;AAC1B,uDAAwD;AAA/C,sHAAA,kBAAkB,OAAA;AAS3B,iEAAiE;AACjE,gEAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/index.ts"],"names":[],"mappings":";;;;AAAA,0BAA0B;AAC1B,qDAA2B;AAC3B,iDAAuB;AACvB,gDAAsB;AAEtB,4CAA4C;AAC5C,sDAA4B;AAC5B,yDAA+B;AAC/B,iDAAuB;AACvB,uDAA6B;AAC7B,mDAAyB;AACzB,kDAAwB;AACxB,0DAAgC;AAEhC,2DAA2D;AAC3D,uDAA6B;AAE7B,iDAAiD;AACjD,8CAAmD;AAA1C,wGAAA,aAAa,OAAA;AACtB,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,2DAAiC;AACjC,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AACzB,kFAA+E;AAAtE,oIAAA,uBAAuB,OAAA;AAChC,4CAAkD;AAAzC,uGAAA,aAAa,OAAA;AACtB,gEAA8D;AAArD,mHAAA,eAAe,OAAA;AACxB,oEAA0C;AAE1C,kCAAkC;AAClC,qDAAsD;AAA7C,oHAAA,iBAAiB,OAAA;AAC1B,uDAAwD;AAA/C,sHAAA,kBAAkB,OAAA;AAS3B,iEAAiE;AACjE,gEAAsC"}
@@ -0,0 +1,8 @@
1
+ import { Transform, TransformCallback } from 'stream';
2
+ export declare class ChecksumTransform extends Transform {
3
+ private sha3;
4
+ constructor();
5
+ _transform(chunk: Buffer, encoding: BufferEncoding, callback: TransformCallback): void;
6
+ _flush(callback: TransformCallback): void;
7
+ }
8
+ //# sourceMappingURL=checksumTransform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checksumTransform.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/checksumTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAMtD,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C,OAAO,CAAC,IAAI,CAAS;;IAML,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,iBAAiB;IAMb,MAAM,CAAC,QAAQ,EAAE,iBAAiB;CAKnD"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChecksumTransform = void 0;
4
+ const stream_1 = require("stream");
5
+ const js_sha3_1 = require("js-sha3");
6
+ class ChecksumTransform extends stream_1.Transform {
7
+ sha3;
8
+ constructor() {
9
+ super();
10
+ this.sha3 = js_sha3_1.sha3_512.create();
11
+ }
12
+ _transform(chunk, encoding, callback) {
13
+ this.sha3.update(chunk);
14
+ callback(null, chunk);
15
+ }
16
+ _flush(callback) {
17
+ const checksum = this.sha3.digest();
18
+ this.emit('checksum', Buffer.from(checksum));
19
+ callback();
20
+ }
21
+ }
22
+ exports.ChecksumTransform = ChecksumTransform;
23
+ //# sourceMappingURL=checksumTransform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checksumTransform.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/checksumTransform.ts"],"names":[],"mappings":";;;AAAA,mCAAsD;AAEtD,qCAA2C;AAI3C,MAAa,iBAAkB,SAAQ,kBAAS;IACtC,IAAI,CAAS;IACrB;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,kBAAQ,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;IAEe,UAAU,CACxB,KAAa,EACb,QAAwB,EACxB,QAA2B;QAE3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IAEe,MAAM,CAAC,QAA2B;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAA8B,CAAC,CAAC;QAC1E,QAAQ,EAAE,CAAC;IACb,CAAC;CACF;AArBD,8CAqBC"}
@@ -0,0 +1,14 @@
1
+ import { Transform, TransformCallback, TransformOptions } from 'stream';
2
+ import { PlatformID } from '../interfaces';
3
+ import { ECIESService } from '../services';
4
+ export declare class EciesDecryptionTransform<TID extends PlatformID = Buffer> extends Transform {
5
+ private readonly blockSize;
6
+ private readonly privateKey;
7
+ private buffer;
8
+ private readonly logger;
9
+ private readonly eciesService;
10
+ constructor(eciesService: ECIESService<TID>, privateKey: Buffer, blockSize: number, options?: TransformOptions, logger?: Console);
11
+ _transform(chunk: Buffer, encoding: BufferEncoding, callback: TransformCallback): void;
12
+ _flush(callback: TransformCallback): void;
13
+ }
14
+ //# sourceMappingURL=eciesDecryptTransform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eciesDecryptTransform.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/eciesDecryptTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,qBAAa,wBAAwB,CACnC,GAAG,SAAS,UAAU,GAAG,MAAM,CAC/B,SAAQ,SAAS;IACjB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;gBAG/C,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,gBAAgB,EAC1B,MAAM,GAAE,OAAiB;IAYX,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,iBAAiB,GAC1B,IAAI;IAkDS,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;CAoB1D"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EciesDecryptionTransform = void 0;
4
+ const stream_1 = require("stream");
5
+ class EciesDecryptionTransform extends stream_1.Transform {
6
+ blockSize;
7
+ privateKey;
8
+ buffer;
9
+ logger;
10
+ eciesService;
11
+ constructor(eciesService, privateKey, blockSize, options, logger = console) {
12
+ super(options);
13
+ this.logger = logger;
14
+ this.privateKey = privateKey;
15
+ this.blockSize = blockSize;
16
+ this.buffer = Buffer.alloc(0);
17
+ // Use provided service or create one with GuidV4Provider config
18
+ this.eciesService = eciesService;
19
+ }
20
+ _transform(chunk, encoding, callback) {
21
+ try {
22
+ if (chunk.length === 0) {
23
+ callback();
24
+ return;
25
+ }
26
+ // Add new chunk to buffer
27
+ this.buffer = Buffer.concat([this.buffer, chunk]);
28
+ // Process complete blocks
29
+ while (this.buffer.length >= this.blockSize) {
30
+ const encryptedBlock = this.buffer.subarray(0, this.blockSize);
31
+ this.buffer = this.buffer.subarray(this.blockSize);
32
+ try {
33
+ const decryptedBlock = this.eciesService.decryptSimpleOrSingleWithHeader(true, // decryptSimple = true
34
+ this.privateKey, encryptedBlock);
35
+ this.push(decryptedBlock);
36
+ }
37
+ catch (decryptError) {
38
+ console.error('Block decryption error:', {
39
+ error: decryptError,
40
+ blockSize: this.blockSize,
41
+ encryptedBlockLength: encryptedBlock.length,
42
+ privateKeyLength: this.privateKey.length,
43
+ });
44
+ throw decryptError;
45
+ }
46
+ }
47
+ callback();
48
+ }
49
+ catch (error) {
50
+ this.logger.error('Transform error details:', {
51
+ error,
52
+ blockSize: this.blockSize,
53
+ bufferLength: this.buffer.length,
54
+ chunkLength: chunk.length,
55
+ privateKeyLength: this.privateKey.length,
56
+ });
57
+ const finalError = error instanceof Error ? error : new Error('Decryption failed');
58
+ this.logger.error('Transform error:', finalError);
59
+ callback(finalError);
60
+ }
61
+ }
62
+ _flush(callback) {
63
+ try {
64
+ // Handle any remaining data in buffer
65
+ if (this.buffer.length > 0) {
66
+ const decryptedBlock = this.eciesService.decryptSimpleOrSingleWithHeader(true, // decryptSimple = true
67
+ this.privateKey, this.buffer);
68
+ this.push(decryptedBlock);
69
+ }
70
+ callback();
71
+ }
72
+ catch (error) {
73
+ const finalError = error instanceof Error ? error : new Error('Decryption failed');
74
+ this.logger.error('Flush error:', finalError);
75
+ callback(finalError);
76
+ }
77
+ }
78
+ }
79
+ exports.EciesDecryptionTransform = EciesDecryptionTransform;
80
+ //# sourceMappingURL=eciesDecryptTransform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eciesDecryptTransform.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/eciesDecryptTransform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Transform, TransformCallback } from 'stream';
2
+ import { ECIESService } from '../services';
3
+ /**
4
+ * Transform stream that encrypts data using ECIES encryption
5
+ */
6
+ export declare class EciesEncryptTransform extends Transform {
7
+ private readonly blockSize;
8
+ private readonly receiverPublicKey;
9
+ private buffer;
10
+ private readonly capacityPerBlock;
11
+ private readonly logger;
12
+ private readonly eciesService;
13
+ constructor(eciesService: ECIESService, blockSize: number, receiverPublicKey: Buffer, logger?: Console);
14
+ _transform(chunk: Buffer, encoding: BufferEncoding, callback: TransformCallback): void;
15
+ _flush(callback: TransformCallback): void;
16
+ }
17
+ //# sourceMappingURL=eciesEncryptTransform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eciesEncryptTransform.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/eciesEncryptTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,SAAS;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;gBAG1C,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,EACzB,MAAM,GAAE,OAAiB;IA4BX,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,iBAAiB,GAC1B,IAAI;IAsDS,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;CAmB1D"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EciesEncryptTransform = void 0;
4
+ const stream_1 = require("stream");
5
+ /**
6
+ * Transform stream that encrypts data using ECIES encryption
7
+ */
8
+ class EciesEncryptTransform extends stream_1.Transform {
9
+ blockSize;
10
+ receiverPublicKey;
11
+ buffer;
12
+ capacityPerBlock;
13
+ logger;
14
+ eciesService;
15
+ constructor(eciesService, blockSize, receiverPublicKey, logger = console) {
16
+ super();
17
+ this.logger = logger;
18
+ this.blockSize = blockSize;
19
+ // Validate public key size (should be 33 bytes for compressed or 65 bytes for uncompressed secp256k1 public key)
20
+ if (receiverPublicKey.length !== 33 && receiverPublicKey.length !== 65) {
21
+ throw new Error(`Invalid public key length: expected 33 or 65 bytes, got ${receiverPublicKey.length}`);
22
+ }
23
+ this.receiverPublicKey = receiverPublicKey;
24
+ this.buffer = Buffer.alloc(0);
25
+ this.eciesService = eciesService;
26
+ // Calculate how much data we can encrypt per block
27
+ const encryptedLength = this.eciesService.computeEncryptedLengthFromDataLength(this.blockSize, 'simple');
28
+ // For Simple encryption, capacity = blockSize - overhead
29
+ this.capacityPerBlock = this.blockSize - (encryptedLength - this.blockSize);
30
+ }
31
+ _transform(chunk, encoding, callback) {
32
+ try {
33
+ if (chunk.length === 0) {
34
+ callback();
35
+ return;
36
+ }
37
+ // Add new chunk to buffer by creating a new Uint8Array with combined length
38
+ const newBuffer = Buffer.alloc(this.buffer.length + chunk.length);
39
+ newBuffer.set(this.buffer);
40
+ newBuffer.set(chunk, this.buffer.length);
41
+ this.buffer = newBuffer;
42
+ // Process complete blocks
43
+ while (this.buffer.length >= this.capacityPerBlock) {
44
+ const blockData = this.buffer.subarray(0, this.capacityPerBlock);
45
+ this.buffer = this.buffer.subarray(this.capacityPerBlock);
46
+ const encryptedBlock = this.eciesService.encryptSimpleOrSingle(true, // encryptSimple = true
47
+ this.receiverPublicKey, blockData);
48
+ this.push(encryptedBlock);
49
+ }
50
+ callback();
51
+ }
52
+ catch (error) {
53
+ // Create final error with message
54
+ const finalError = error instanceof Error
55
+ ? new Error(`Encryption failed: ${error.message}`)
56
+ : new Error('Encryption failed');
57
+ // Log errors before emitting
58
+ this.logger.error('Encryption error:', finalError);
59
+ this.logger.error('Error details:', {
60
+ error,
61
+ publicKeyLength: this.receiverPublicKey.length,
62
+ publicKeyPrefix: this.receiverPublicKey.subarray(0, 4),
63
+ dataLength: chunk.length,
64
+ blockSize: this.blockSize,
65
+ bufferLength: this.buffer.length,
66
+ capacityPerBlock: this.capacityPerBlock,
67
+ });
68
+ // Emit error event and call callback
69
+ setImmediate(() => {
70
+ this.emit('error', finalError);
71
+ callback(finalError);
72
+ });
73
+ }
74
+ }
75
+ _flush(callback) {
76
+ try {
77
+ // Handle any remaining data in buffer
78
+ if (this.buffer.length > 0) {
79
+ const encryptedBlock = this.eciesService.encryptSimpleOrSingle(true, // encryptSimple = true
80
+ this.receiverPublicKey, this.buffer);
81
+ this.push(encryptedBlock);
82
+ }
83
+ callback();
84
+ }
85
+ catch (error) {
86
+ const finalError = error instanceof Error ? error : new Error('Encryption failed');
87
+ this.logger.error('Flush error:', finalError);
88
+ callback(finalError);
89
+ }
90
+ }
91
+ }
92
+ exports.EciesEncryptTransform = EciesEncryptTransform;
93
+ //# sourceMappingURL=eciesEncryptTransform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eciesEncryptTransform.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/eciesEncryptTransform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export * from './checksumTransform';
2
+ export * from './eciesDecryptTransform';
3
+ export * from './eciesEncryptTransform';
4
+ export * from './xorMultipleTransform';
5
+ export * from './xorTransform';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./checksumTransform"), exports);
5
+ tslib_1.__exportStar(require("./eciesDecryptTransform"), exports);
6
+ tslib_1.__exportStar(require("./eciesEncryptTransform"), exports);
7
+ tslib_1.__exportStar(require("./xorMultipleTransform"), exports);
8
+ tslib_1.__exportStar(require("./xorTransform"), exports);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,kEAAwC;AACxC,kEAAwC;AACxC,iEAAuC;AACvC,yDAA+B"}
@@ -0,0 +1,13 @@
1
+ import { Readable, Transform, TransformCallback } from 'stream';
2
+ export declare class XorMultipleTransformStream extends Transform {
3
+ private sources;
4
+ private buffers;
5
+ private readonly streamEnded;
6
+ constructor(sources: Readable[]);
7
+ processData(): void;
8
+ checkEndCondition(): void;
9
+ _transform(chunk: Buffer, encoding: string, callback: TransformCallback): void;
10
+ _flush(callback: TransformCallback): void;
11
+ }
12
+ export default XorMultipleTransformStream;
13
+ //# sourceMappingURL=xorMultipleTransform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xorMultipleTransform.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/xorMultipleTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAEhE,qBAAa,0BAA2B,SAAQ,SAAS;IACvD,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAY;gBAE5B,OAAO,EAAE,QAAQ,EAAE;IAmB/B,WAAW,IAAI,IAAI;IAoCnB,iBAAiB,IAAI,IAAI;IAMhB,UAAU,CACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,iBAAiB,GAC1B,IAAI;IAKE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;CAGnD;AAED,eAAe,0BAA0B,CAAC"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XorMultipleTransformStream = void 0;
4
+ const stream_1 = require("stream");
5
+ class XorMultipleTransformStream extends stream_1.Transform {
6
+ sources;
7
+ buffers;
8
+ streamEnded;
9
+ constructor(sources) {
10
+ super();
11
+ this.sources = sources;
12
+ this.buffers = new Array(sources.length).fill(null);
13
+ this.streamEnded = new Array(sources.length).fill(false);
14
+ this.sources.forEach((source, index) => {
15
+ source.on('data', (chunk) => {
16
+ this.buffers[index] = chunk;
17
+ this.processData();
18
+ });
19
+ source.on('end', () => {
20
+ this.streamEnded[index] = true;
21
+ this.checkEndCondition();
22
+ });
23
+ });
24
+ }
25
+ processData() {
26
+ if (this.buffers.every((buffer, index) => buffer !== null || this.streamEnded[index])) {
27
+ const minLength = Math.min(...this.buffers.map((buffer, index) => this.streamEnded[index] ? 0 : buffer.length));
28
+ if (minLength === 0) {
29
+ this.end();
30
+ return;
31
+ }
32
+ const xorResult = Buffer.alloc(minLength);
33
+ for (let i = 0; i < minLength; i++) {
34
+ xorResult[i] = this.buffers.reduce((acc, buffer, index) => this.streamEnded[index] ? acc : acc ^ buffer[i], 0);
35
+ }
36
+ this.push(xorResult);
37
+ // Update buffers
38
+ this.buffers = this.buffers.map((buffer, index) => this.streamEnded[index] ? buffer : buffer.subarray(minLength));
39
+ }
40
+ }
41
+ checkEndCondition() {
42
+ if (this.streamEnded.every((ended) => ended)) {
43
+ this.end();
44
+ }
45
+ }
46
+ _transform(chunk, encoding, callback) {
47
+ // This transform does not use the incoming chunk directly
48
+ callback();
49
+ }
50
+ _flush(callback) {
51
+ callback();
52
+ }
53
+ }
54
+ exports.XorMultipleTransformStream = XorMultipleTransformStream;
55
+ exports.default = XorMultipleTransformStream;
56
+ //# sourceMappingURL=xorMultipleTransform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xorMultipleTransform.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/xorMultipleTransform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Transform, TransformCallback } from 'stream';
2
+ export declare class XorTransform extends Transform {
3
+ private firstChunk;
4
+ private xorChunk;
5
+ constructor();
6
+ _transform(chunk: Buffer, encoding: BufferEncoding, callback: TransformCallback): void;
7
+ _flush(callback: TransformCallback): void;
8
+ }
9
+ //# sourceMappingURL=xorTransform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xorTransform.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/xorTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAEtD,qBAAa,YAAa,SAAQ,SAAS;IACzC,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,QAAQ,CAAS;;IAOT,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,iBAAiB;IAab,MAAM,CAAC,QAAQ,EAAE,iBAAiB;CAInD"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XorTransform = void 0;
4
+ const stream_1 = require("stream");
5
+ class XorTransform extends stream_1.Transform {
6
+ firstChunk;
7
+ xorChunk;
8
+ constructor() {
9
+ super();
10
+ this.firstChunk = true;
11
+ this.xorChunk = Buffer.alloc(0);
12
+ }
13
+ _transform(chunk, encoding, callback) {
14
+ if (this.firstChunk) {
15
+ this.xorChunk = chunk;
16
+ this.firstChunk = false;
17
+ }
18
+ else {
19
+ for (let i = 0; i < chunk.length; i++) {
20
+ this.xorChunk[i] ^= chunk[i];
21
+ }
22
+ }
23
+ callback();
24
+ }
25
+ _flush(callback) {
26
+ this.push(this.xorChunk);
27
+ callback();
28
+ }
29
+ }
30
+ exports.XorTransform = XorTransform;
31
+ //# sourceMappingURL=xorTransform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xorTransform.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/transforms/xorTransform.ts"],"names":[],"mappings":";;;AAAA,mCAAsD;AAEtD,MAAa,YAAa,SAAQ,kBAAS;IACjC,UAAU,CAAU;IACpB,QAAQ,CAAS;IACzB;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAEe,UAAU,CACxB,KAAa,EACb,QAAwB,EACxB,QAA2B;QAE3B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,QAAQ,EAAE,CAAC;IACb,CAAC;IAEe,MAAM,CAAC,QAA2B;QAChD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,QAAQ,EAAE,CAAC;IACb,CAAC;CACF;AA7BD,oCA6BC"}