@digitaldefiance/ecies-lib 2.1.42 → 3.0.1

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 (128) hide show
  1. package/README.md +153 -3
  2. package/package.json +3 -3
  3. package/src/builders/ecies-builder.d.ts +7 -3
  4. package/src/builders/ecies-builder.d.ts.map +1 -1
  5. package/src/builders/ecies-builder.js +11 -9
  6. package/src/builders/ecies-builder.js.map +1 -1
  7. package/src/builders/member-builder.d.ts +10 -1
  8. package/src/builders/member-builder.d.ts.map +1 -1
  9. package/src/builders/member-builder.js +29 -7
  10. package/src/builders/member-builder.js.map +1 -1
  11. package/src/enumerations/ecies-error-type.d.ts +11 -1
  12. package/src/enumerations/ecies-error-type.d.ts.map +1 -1
  13. package/src/enumerations/ecies-error-type.js +10 -0
  14. package/src/enumerations/ecies-error-type.js.map +1 -1
  15. package/src/enumerations/ecies-string-key.d.ts +77 -1
  16. package/src/enumerations/ecies-string-key.d.ts.map +1 -1
  17. package/src/enumerations/ecies-string-key.js +77 -0
  18. package/src/enumerations/ecies-string-key.js.map +1 -1
  19. package/src/i18n-setup.d.ts.map +1 -1
  20. package/src/i18n-setup.js +15 -683
  21. package/src/i18n-setup.js.map +1 -1
  22. package/src/index.d.ts +12 -0
  23. package/src/index.d.ts.map +1 -1
  24. package/src/index.js +15 -1
  25. package/src/index.js.map +1 -1
  26. package/src/interfaces/encrypted-chunk.d.ts +55 -0
  27. package/src/interfaces/encrypted-chunk.d.ts.map +1 -0
  28. package/src/interfaces/encrypted-chunk.js +15 -0
  29. package/src/interfaces/encrypted-chunk.js.map +1 -0
  30. package/src/interfaces/encryption-state.d.ts +18 -0
  31. package/src/interfaces/encryption-state.d.ts.map +1 -0
  32. package/src/interfaces/encryption-state.js +5 -0
  33. package/src/interfaces/encryption-state.js.map +1 -0
  34. package/src/interfaces/frontend-member-operational.d.ts +12 -1
  35. package/src/interfaces/frontend-member-operational.d.ts.map +1 -1
  36. package/src/interfaces/multi-recipient-chunk.d.ts +65 -0
  37. package/src/interfaces/multi-recipient-chunk.d.ts.map +1 -0
  38. package/src/interfaces/multi-recipient-chunk.js +25 -0
  39. package/src/interfaces/multi-recipient-chunk.js.map +1 -0
  40. package/src/interfaces/stream-config.d.ts +14 -0
  41. package/src/interfaces/stream-config.d.ts.map +1 -0
  42. package/src/interfaces/stream-config.js +11 -0
  43. package/src/interfaces/stream-config.js.map +1 -0
  44. package/src/interfaces/stream-header.d.ts +29 -0
  45. package/src/interfaces/stream-header.d.ts.map +1 -0
  46. package/src/interfaces/stream-header.js +12 -0
  47. package/src/interfaces/stream-header.js.map +1 -0
  48. package/src/interfaces/stream-progress.d.ts +33 -0
  49. package/src/interfaces/stream-progress.d.ts.map +1 -0
  50. package/src/interfaces/stream-progress.js +3 -0
  51. package/src/interfaces/stream-progress.js.map +1 -0
  52. package/src/lib/crypto-container.d.ts.map +1 -1
  53. package/src/lib/crypto-container.js +2 -1
  54. package/src/lib/crypto-container.js.map +1 -1
  55. package/src/member.d.ts +27 -1
  56. package/src/member.d.ts.map +1 -1
  57. package/src/member.js +69 -2
  58. package/src/member.js.map +1 -1
  59. package/src/services/aes-gcm.d.ts.map +1 -1
  60. package/src/services/aes-gcm.js +29 -0
  61. package/src/services/aes-gcm.js.map +1 -1
  62. package/src/services/chunk-processor.d.ts +31 -0
  63. package/src/services/chunk-processor.d.ts.map +1 -0
  64. package/src/services/chunk-processor.js +149 -0
  65. package/src/services/chunk-processor.js.map +1 -0
  66. package/src/services/ecies/crypto-core.d.ts.map +1 -1
  67. package/src/services/ecies/crypto-core.js +23 -8
  68. package/src/services/ecies/crypto-core.js.map +1 -1
  69. package/src/services/ecies/service.d.ts +12 -4
  70. package/src/services/ecies/service.d.ts.map +1 -1
  71. package/src/services/ecies/service.js +28 -18
  72. package/src/services/ecies/service.js.map +1 -1
  73. package/src/services/ecies/single-recipient.d.ts.map +1 -1
  74. package/src/services/ecies/single-recipient.js +55 -4
  75. package/src/services/ecies/single-recipient.js.map +1 -1
  76. package/src/services/encryption-stream.d.ts +69 -0
  77. package/src/services/encryption-stream.d.ts.map +1 -0
  78. package/src/services/encryption-stream.js +297 -0
  79. package/src/services/encryption-stream.js.map +1 -0
  80. package/src/services/multi-recipient-processor.d.ts +25 -0
  81. package/src/services/multi-recipient-processor.d.ts.map +1 -0
  82. package/src/services/multi-recipient-processor.js +238 -0
  83. package/src/services/multi-recipient-processor.js.map +1 -0
  84. package/src/services/password-login.js +1 -1
  85. package/src/services/password-login.js.map +1 -1
  86. package/src/services/progress-tracker.d.ts +23 -0
  87. package/src/services/progress-tracker.d.ts.map +1 -0
  88. package/src/services/progress-tracker.js +98 -0
  89. package/src/services/progress-tracker.js.map +1 -0
  90. package/src/services/resumable-encryption.d.ts +19 -0
  91. package/src/services/resumable-encryption.d.ts.map +1 -0
  92. package/src/services/resumable-encryption.js +109 -0
  93. package/src/services/resumable-encryption.js.map +1 -0
  94. package/src/test-mocks/mock-frontend-member.d.ts +15 -0
  95. package/src/test-mocks/mock-frontend-member.d.ts.map +1 -1
  96. package/src/test-mocks/mock-frontend-member.js +58 -0
  97. package/src/test-mocks/mock-frontend-member.js.map +1 -1
  98. package/src/translations/de.d.ts +3 -0
  99. package/src/translations/de.d.ts.map +1 -0
  100. package/src/translations/de.js +178 -0
  101. package/src/translations/de.js.map +1 -0
  102. package/src/translations/en-US.d.ts +3 -0
  103. package/src/translations/en-US.d.ts.map +1 -0
  104. package/src/translations/en-US.js +178 -0
  105. package/src/translations/en-US.js.map +1 -0
  106. package/src/translations/es.d.ts +3 -0
  107. package/src/translations/es.d.ts.map +1 -0
  108. package/src/translations/es.js +178 -0
  109. package/src/translations/es.js.map +1 -0
  110. package/src/translations/fr.d.ts +3 -0
  111. package/src/translations/fr.d.ts.map +1 -0
  112. package/src/translations/fr.js +178 -0
  113. package/src/translations/fr.js.map +1 -0
  114. package/src/translations/ja.d.ts +3 -0
  115. package/src/translations/ja.d.ts.map +1 -0
  116. package/src/translations/ja.js +178 -0
  117. package/src/translations/ja.js.map +1 -0
  118. package/src/translations/uk.d.ts +3 -0
  119. package/src/translations/uk.d.ts.map +1 -0
  120. package/src/translations/uk.js +178 -0
  121. package/src/translations/uk.js.map +1 -0
  122. package/src/translations/zh-cn.d.ts +3 -0
  123. package/src/translations/zh-cn.d.ts.map +1 -0
  124. package/src/translations/zh-cn.js +178 -0
  125. package/src/translations/zh-cn.js.map +1 -0
  126. package/src/utils.d.ts.map +1 -1
  127. package/src/utils.js +8 -5
  128. package/src/utils.js.map +1 -1
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![npm version](https://badge.fury.io/js/%40digitaldefiance%2Fecies-lib.svg)](https://www.npmjs.com/package/@digitaldefiance/ecies-lib)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
- [![Tests](https://img.shields.io/badge/tests-393%20passing-brightgreen)](https://github.com/Digital-Defiance/ecies-lib)
5
+ [![Tests](https://img.shields.io/badge/tests-646%20passing-brightgreen)](https://github.com/Digital-Defiance/ecies-lib)
6
6
 
7
7
  Production-ready, browser-compatible ECIES (Elliptic Curve Integrated Encryption Scheme) library for TypeScript. Built on Web Crypto API and @noble/curves with comprehensive encryption, key management, and authentication services. Binary compatible with @digitaldefiance/node-ecies-lib for seamless cross-platform operations.
8
8
 
@@ -28,6 +28,7 @@ Part of [Express Suite](https://github.com/Digital-Defiance/express-suite)
28
28
 
29
29
  ### Advanced
30
30
 
31
+ - **Streaming Encryption** – Memory-efficient encryption for large files (<10MB RAM for any size) ✨ NEW
31
32
  - **Multi-Recipient** – Encrypt for up to 65,535 recipients efficiently
32
33
  - **File Encryption** – Chunked 1MB segments for large files
33
34
  - **Password Login** – Complete authentication with encrypted key storage
@@ -38,7 +39,7 @@ Part of [Express Suite](https://github.com/Digital-Defiance/express-suite)
38
39
  - **TypeScript** – Full type definitions and interfaces
39
40
  - **i18n** – Error messages in 8 languages (en-US, en-GB, fr, es, de, zh-CN, ja, uk)
40
41
  - **Runtime Config** – Injectable configuration profiles via ConstantsRegistry
41
- - **Testing** – 32 test files with 389+ specs (unit, integration, e2e)
42
+ - **Testing** – 40 test files with 480+ specs (unit, integration, e2e)
42
43
  - **Cross-Platform** – Node.js 18+ and modern browsers
43
44
 
44
45
  ## Installation
@@ -61,6 +62,46 @@ yarn add @digitaldefiance/ecies-lib
61
62
 
62
63
  ## Quick Start
63
64
 
65
+ ### Streaming Encryption (NEW)
66
+
67
+ Memory-efficient encryption for large files:
68
+
69
+ ```typescript
70
+ import { ECIESService, EncryptionStream } from '@digitaldefiance/ecies-lib';
71
+
72
+ const ecies = new ECIESService();
73
+ const stream = new EncryptionStream(ecies);
74
+ const mnemonic = ecies.generateNewMnemonic();
75
+ const { publicKey, privateKey } = ecies.mnemonicToSimpleKeyPair(mnemonic);
76
+
77
+ // Encrypt large file with <10MB RAM
78
+ const file = document.querySelector('input[type="file"]').files[0];
79
+ const encryptedChunks: Uint8Array[] = [];
80
+
81
+ for await (const chunk of stream.encryptStream(file.stream(), publicKey)) {
82
+ encryptedChunks.push(chunk.data);
83
+ }
84
+
85
+ // Decrypt
86
+ const decryptedChunks: Uint8Array[] = [];
87
+ for await (const chunk of stream.decryptStream(
88
+ (async function* () {
89
+ for (const encrypted of encryptedChunks) yield encrypted;
90
+ })(),
91
+ privateKey
92
+ )) {
93
+ decryptedChunks.push(chunk);
94
+ }
95
+ ```
96
+
97
+ **Features:**
98
+ - 99% memory reduction (1GB file: 1GB RAM → <10MB RAM)
99
+ - Cancellation support via AbortSignal
100
+ - AsyncGenerator API for flexibility
101
+ - Works with ReadableStream and AsyncIterable
102
+
103
+ See [Streaming API Quick Start](./docs/STREAMING_API_QUICKSTART.md) for more examples.
104
+
64
105
  ### Basic Encryption
65
106
 
66
107
  ```typescript
@@ -95,10 +136,17 @@ const { member, mnemonic } = Member.newMember(
95
136
  new EmailString('alice@example.com')
96
137
  );
97
138
 
98
- // Encrypt/decrypt
139
+ // Encrypt/decrypt (up to 10MB)
99
140
  const encrypted = await member.encryptData('Sensitive data');
100
141
  const decrypted = await member.decryptData(encrypted);
101
142
 
143
+ // Streaming encryption (any size)
144
+ const file = document.querySelector('input[type="file"]').files[0];
145
+ const chunks: Uint8Array[] = [];
146
+ for await (const chunk of member.encryptDataStream(file.stream())) {
147
+ chunks.push(chunk.data);
148
+ }
149
+
102
150
  // Sign/verify
103
151
  const signature = member.sign(new TextEncoder().encode('Message'));
104
152
  const valid = member.verify(signature, new TextEncoder().encode('Message'));
@@ -664,6 +712,108 @@ const passwordLogin = new PasswordLoginService(ecies, pbkdf2);
664
712
 
665
713
  ## ChangeLog
666
714
 
715
+ ### v3.0.1
716
+
717
+ - Fix strings mainly
718
+ - add service.encryptMultiple endpoint, clarify service.encrypt endpoint
719
+
720
+ ### v3.0.0 - Streaming Encryption & Security Hardening
721
+
722
+ **Major Features**:
723
+
724
+ - ✨ **Streaming Encryption**: Memory-efficient encryption for large files (<10MB RAM for any size)
725
+ - 🔐 **Multi-Recipient Streaming**: Encrypt once for up to 65,535 recipients with shared symmetric key
726
+ - 📊 **Progress Tracking**: Real-time throughput, ETA, and completion percentage
727
+ - 🔒 **Security Hardening**: 16 comprehensive security validations across all layers
728
+ - ✅ **AsyncGenerator API**: Flexible streaming with cancellation support
729
+ - 🎯 **100% Test Coverage**: 646/646 tests passing, 52/52 suites
730
+
731
+ **New APIs**:
732
+
733
+ **Single-Recipient Streaming**:
734
+ - `EncryptionStream.encryptStream()` - Stream encryption with configurable chunks
735
+ - `EncryptionStream.decryptStream()` - Stream decryption with validation
736
+ - `Member.encryptDataStream()` - Member-level streaming encryption
737
+ - `Member.decryptDataStream()` - Member-level streaming decryption
738
+
739
+ **Multi-Recipient Streaming**:
740
+ - `EncryptionStream.encryptStreamMultiple()` - Encrypt for multiple recipients
741
+ - `EncryptionStream.decryptStreamMultiple()` - Decrypt as specific recipient
742
+ - `MultiRecipientProcessor.encryptChunk()` - Low-level multi-recipient encryption
743
+ - `MultiRecipientProcessor.decryptChunk()` - Low-level multi-recipient decryption
744
+
745
+ **Progress Tracking**:
746
+ - `ProgressTracker.update()` - Track bytes processed, throughput, ETA
747
+ - `IStreamProgress` interface with `throughputBytesPerSec` property
748
+ - Optional progress callbacks in all streaming operations
749
+
750
+ **Security Enhancements (16 validations)**:
751
+
752
+ **Base ECIES Layer (8 fixes)**:
753
+ - Public key all-zeros validation
754
+ - Private key all-zeros validation
755
+ - Shared secret all-zeros validation
756
+ - Message size validation (max 2GB)
757
+ - Encrypted size bounds checking
758
+ - Minimum encrypted data size validation
759
+ - Component extraction validation
760
+ - Decrypted data validation
761
+
762
+ **AES-GCM Layer (5 fixes)**:
763
+ - Key length validation (16/24/32 bytes only)
764
+ - IV length validation (16 bytes)
765
+ - Null/undefined data rejection
766
+ - Data size validation (max 2GB)
767
+ - Comprehensive decrypt input validation
768
+
769
+ **Multi-Recipient Layer (3 fixes)**:
770
+ - Chunk index bounds checking (uint32 range)
771
+ - Data size validation (max 2GB)
772
+ - Safe accumulation with overflow detection
773
+
774
+ **Performance**:
775
+
776
+ - 99% memory reduction (1GB file: 1GB RAM → <10MB RAM)
777
+ - < 0.1% overhead from security validations
778
+ - Independent chunk encryption (resumability ready)
779
+ - Chunk sequence validation (prevents reordering attacks)
780
+ - Optional SHA-256 checksums (in addition to AES-GCM auth)
781
+ - Single symmetric key per stream (not per chunk)
782
+
783
+ **Multi-Recipient Features**:
784
+
785
+ - Maximum 65,535 recipients supported
786
+ - 32-byte recipient IDs required
787
+ - Shared symmetric key encrypted per recipient
788
+ - Efficient header format with recipient metadata
789
+ - Buffer overflow protection (100MB max per source chunk)
790
+
791
+ **New Error Types**:
792
+
793
+ - `InvalidAESKeyLength` - AES key must be 16/24/32 bytes
794
+ - `CannotEncryptEmptyData` - Empty/null data rejected
795
+ - `CannotDecryptEmptyData` - Empty/null encrypted data rejected
796
+ - `EncryptedSizeExceedsExpected` - Encrypted output too large
797
+ - `InvalidChunkIndex` - Chunk index out of uint32 range
798
+ - `HeaderSizeOverflow` - Recipient header size overflow
799
+
800
+ **Documentation**:
801
+
802
+ - Added `docs/STREAMING_ENCRYPTION_ARCHITECTURE.md`
803
+ - Added `docs/STREAMING_API_QUICKSTART.md`
804
+ - Added `docs/PHASE_1_COMPLETE.md`
805
+ - Added `ECIES_STREAMING_CHANGES_SUMMARY.md` (for node-ecies porting)
806
+ - Updated README with streaming and multi-recipient examples
807
+
808
+ **Test Coverage**:
809
+
810
+ - 646 tests passing (100%)
811
+ - 52 test suites passing (100%)
812
+ - 5 multi-recipient streaming tests
813
+ - 87+ streaming tests (unit + integration + e2e)
814
+ - All 16 security validations covered
815
+ - Error coverage validation updated
816
+
667
817
  ### v2.1.42
668
818
 
669
819
  - Fix Hmac constant
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digitaldefiance/ecies-lib",
3
- "version": "2.1.42",
3
+ "version": "3.0.1",
4
4
  "description": "Digital Defiance ECIES Library",
5
5
  "main": "src/index.js",
6
6
  "types": "src/index.d.ts",
@@ -45,7 +45,7 @@
45
45
  "license": "MIT",
46
46
  "packageManager": "yarn@4.10.3",
47
47
  "dependencies": {
48
- "@digitaldefiance/i18n-lib": "2.1.40",
48
+ "@digitaldefiance/i18n-lib": "3.6.0",
49
49
  "@ethereumjs/wallet": "^10.0.0",
50
50
  "@noble/curves": "^2.0.1",
51
51
  "@noble/hashes": "^2.0.1",
@@ -54,7 +54,7 @@
54
54
  "ts-brand": "^0.2.0"
55
55
  },
56
56
  "devDependencies": {
57
- "@digitaldefiance/express-suite-test-utils": "1.0.7"
57
+ "@digitaldefiance/express-suite-test-utils": "1.0.9"
58
58
  },
59
59
  "type": "commonjs"
60
60
  }
@@ -3,12 +3,16 @@
3
3
  */
4
4
  import { PluginI18nEngine } from '@digitaldefiance/i18n-lib';
5
5
  import { IECIESConstants } from '../interfaces/ecies-consts';
6
+ import { IECIESConfig } from '../interfaces/ecies-config';
7
+ import { ECIESService } from '../services/ecies/service';
6
8
  export declare class ECIESBuilder {
7
- private config;
9
+ private serviceConfig;
10
+ private eciesConsts;
8
11
  private i18n?;
9
12
  static create(): ECIESBuilder;
10
- withConfig(config: Partial<IECIESConstants>): this;
13
+ withServiceConfig(config: Partial<IECIESConfig>): this;
14
+ withConstants(constants: Partial<IECIESConstants>): this;
11
15
  withI18n(engine: PluginI18nEngine<string>): this;
12
- build(): any;
16
+ build(): ECIESService;
13
17
  }
14
18
  //# sourceMappingURL=ecies-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ecies-builder.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/builders/ecies-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAI7D,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,IAAI,CAAC,CAA2B;IAExC,MAAM,CAAC,MAAM,IAAI,YAAY;IAI7B,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAKlD,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,IAAI;IAKhD,KAAK,IAAI,GAAG;CAQb"}
1
+ {"version":3,"file":"ecies-builder.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/builders/ecies-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBAAa,YAAY;IACvB,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,IAAI,CAAC,CAA2B;IAExC,MAAM,CAAC,MAAM,IAAI,YAAY;IAI7B,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAKtD,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAKxD,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,IAAI;IAKhD,KAAK,IAAI,YAAY;CAItB"}
@@ -5,15 +5,20 @@
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ECIESBuilder = void 0;
7
7
  const constants_1 = require("../constants");
8
- const i18n_setup_1 = require("../i18n-setup");
8
+ const service_1 = require("../services/ecies/service");
9
9
  class ECIESBuilder {
10
- config = {};
10
+ serviceConfig = {};
11
+ eciesConsts = {};
11
12
  i18n;
12
13
  static create() {
13
14
  return new ECIESBuilder();
14
15
  }
15
- withConfig(config) {
16
- this.config = { ...this.config, ...config };
16
+ withServiceConfig(config) {
17
+ this.serviceConfig = { ...this.serviceConfig, ...config };
18
+ return this;
19
+ }
20
+ withConstants(constants) {
21
+ this.eciesConsts = { ...this.eciesConsts, ...constants };
17
22
  return this;
18
23
  }
19
24
  withI18n(engine) {
@@ -21,11 +26,8 @@ class ECIESBuilder {
21
26
  return this;
22
27
  }
23
28
  build() {
24
- // Will return ECIESService once migrated
25
- const finalConfig = { ...constants_1.Constants.ECIES, ...this.config };
26
- const finalI18n = this.i18n || (0, i18n_setup_1.getEciesI18nEngine)();
27
- // Placeholder - will import and instantiate ECIESService
28
- throw new Error('ECIESService not yet migrated to v2');
29
+ const finalConstants = { ...constants_1.Constants.ECIES, ...this.eciesConsts };
30
+ return new service_1.ECIESService(this.serviceConfig, finalConstants);
29
31
  }
30
32
  }
31
33
  exports.ECIESBuilder = ECIESBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"ecies-builder.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/builders/ecies-builder.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAIH,4CAAyC;AACzC,8CAAmD;AAEnD,MAAa,YAAY;IACf,MAAM,GAA6B,EAAE,CAAC;IACtC,IAAI,CAA4B;IAExC,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,YAAY,EAAE,CAAC;IAC5B,CAAC;IAED,UAAU,CAAC,MAAgC;QACzC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,MAAgC;QACvC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,yCAAyC;QACzC,MAAM,WAAW,GAAG,EAAE,GAAG,qBAAS,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,IAAI,IAAA,+BAAkB,GAAE,CAAC;QAEpD,yDAAyD;QACzD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;CACF;AA1BD,oCA0BC"}
1
+ {"version":3,"file":"ecies-builder.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/builders/ecies-builder.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAKH,4CAAyC;AACzC,uDAAyD;AAEzD,MAAa,YAAY;IACf,aAAa,GAA0B,EAAE,CAAC;IAC1C,WAAW,GAA6B,EAAE,CAAC;IAC3C,IAAI,CAA4B;IAExC,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,YAAY,EAAE,CAAC;IAC5B,CAAC;IAED,iBAAiB,CAAC,MAA6B;QAC7C,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,SAAmC;QAC/C,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,SAAS,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,MAAgC;QACvC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,MAAM,cAAc,GAAG,EAAE,GAAG,qBAAS,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACnE,OAAO,IAAI,sBAAY,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAC9D,CAAC;CACF;AA5BD,oCA4BC"}
@@ -3,16 +3,25 @@
3
3
  */
4
4
  import { MemberType } from '../enumerations/member-type';
5
5
  import { EmailString } from '../email-string';
6
+ import { IMemberWithMnemonic } from '../interfaces/member-with-mnemonic';
7
+ import { ECIESService } from '../services/ecies/service';
8
+ import { SecureString } from '../secure-string';
9
+ import { ObjectId } from 'bson';
6
10
  export declare class MemberBuilder {
11
+ private eciesService?;
7
12
  private type?;
8
13
  private name?;
9
14
  private email?;
10
15
  private mnemonic?;
16
+ private createdBy?;
11
17
  static create(): MemberBuilder;
18
+ withEciesService(service: ECIESService): this;
12
19
  withType(type: MemberType): this;
13
20
  withName(name: string): this;
14
21
  withEmail(email: string | EmailString): this;
22
+ withMnemonic(mnemonic: SecureString): this;
23
+ withCreatedBy(creatorId: ObjectId): this;
15
24
  generateMnemonic(): this;
16
- build(): any;
25
+ build(): IMemberWithMnemonic;
17
26
  }
18
27
  //# sourceMappingURL=member-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"member-builder.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/builders/member-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9C,qBAAa,aAAa;IACxB,OAAO,CAAC,IAAI,CAAC,CAAa;IAC1B,OAAO,CAAC,IAAI,CAAC,CAAS;IACtB,OAAO,CAAC,KAAK,CAAC,CAAc;IAC5B,OAAO,CAAC,QAAQ,CAAC,CAAS;IAE1B,MAAM,CAAC,MAAM,IAAI,aAAa;IAI9B,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAKhC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK5B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAK5C,gBAAgB,IAAI,IAAI;IAKxB,KAAK,IAAI,GAAG;CAWb"}
1
+ {"version":3,"file":"member-builder.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/builders/member-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAIhC,qBAAa,aAAa;IACxB,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,IAAI,CAAC,CAAa;IAC1B,OAAO,CAAC,IAAI,CAAC,CAAS;IACtB,OAAO,CAAC,KAAK,CAAC,CAAc;IAC5B,OAAO,CAAC,QAAQ,CAAC,CAAe;IAChC,OAAO,CAAC,SAAS,CAAC,CAAW;IAE7B,MAAM,CAAC,MAAM,IAAI,aAAa;IAI9B,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAK7C,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAKhC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK5B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAK5C,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAK1C,aAAa,CAAC,SAAS,EAAE,QAAQ,GAAG,IAAI;IAKxC,gBAAgB,IAAI,IAAI;IASxB,KAAK,IAAI,mBAAmB;CAkB7B"}
@@ -5,16 +5,23 @@
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.MemberBuilder = void 0;
7
7
  const email_string_1 = require("../email-string");
8
- const crypto_error_1 = require("../core/errors/crypto-error");
9
- const ecies_string_key_1 = require("../enumerations/ecies-string-key");
8
+ const member_1 = require("../member");
9
+ const i18n_setup_1 = require("../i18n-setup");
10
+ const enumerations_1 = require("../enumerations");
10
11
  class MemberBuilder {
12
+ eciesService;
11
13
  type;
12
14
  name;
13
15
  email;
14
16
  mnemonic;
17
+ createdBy;
15
18
  static create() {
16
19
  return new MemberBuilder();
17
20
  }
21
+ withEciesService(service) {
22
+ this.eciesService = service;
23
+ return this;
24
+ }
18
25
  withType(type) {
19
26
  this.type = type;
20
27
  return this;
@@ -27,16 +34,31 @@ class MemberBuilder {
27
34
  this.email = typeof email === 'string' ? new email_string_1.EmailString(email) : email;
28
35
  return this;
29
36
  }
37
+ withMnemonic(mnemonic) {
38
+ this.mnemonic = mnemonic;
39
+ return this;
40
+ }
41
+ withCreatedBy(creatorId) {
42
+ this.createdBy = creatorId;
43
+ return this;
44
+ }
30
45
  generateMnemonic() {
31
- // Will use ECIESService once migrated
32
- throw new Error('Mnemonic generation not yet implemented in v2');
46
+ if (!this.eciesService) {
47
+ const engine = (0, i18n_setup_1.getEciesI18nEngine)();
48
+ throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_Builder_ECIESServiceMustBeSetBeforeGeneratingMnemonic));
49
+ }
50
+ this.mnemonic = this.eciesService.generateNewMnemonic();
51
+ return this;
33
52
  }
34
53
  build() {
54
+ const engine = (0, i18n_setup_1.getEciesI18nEngine)();
55
+ if (!this.eciesService) {
56
+ throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_Builder_ECIESServiceIsRequired));
57
+ }
35
58
  if (!this.type || !this.name || !this.email) {
36
- throw new crypto_error_1.CryptoError(crypto_error_1.CryptoErrorCode.MISSING_MEMBER_NAME, ecies_string_key_1.EciesStringKey.Error_MemberError_MissingMemberName);
59
+ throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_Builder_TypeNameAndEmailAreRequired));
37
60
  }
38
- // Placeholder - will create Member once migrated
39
- throw new Error('Member not yet migrated to v2');
61
+ return member_1.Member.newMember(this.eciesService, this.type, this.name, this.email, this.mnemonic, this.createdBy);
40
62
  }
41
63
  }
42
64
  exports.MemberBuilder = MemberBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"member-builder.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/builders/member-builder.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,kDAA8C;AAC9C,8DAA2E;AAC3E,uEAAkE;AAElE,MAAa,aAAa;IAChB,IAAI,CAAc;IAClB,IAAI,CAAU;IACd,KAAK,CAAe;IACpB,QAAQ,CAAU;IAE1B,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,aAAa,EAAE,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,IAAgB;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,KAA2B;QACnC,IAAI,CAAC,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,0BAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;QACd,sCAAsC;QACtC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5C,MAAM,IAAI,0BAAW,CACnB,8BAAe,CAAC,mBAAmB,EACnC,iCAAc,CAAC,mCAAmC,CACnD,CAAC;QACJ,CAAC;QAED,iDAAiD;QACjD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;CACF;AAzCD,sCAyCC"}
1
+ {"version":3,"file":"member-builder.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/builders/member-builder.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,kDAA8C;AAC9C,sCAAmC;AAKnC,8CAAqE;AACrE,kDAAiD;AAEjD,MAAa,aAAa;IAChB,YAAY,CAAgB;IAC5B,IAAI,CAAc;IAClB,IAAI,CAAU;IACd,KAAK,CAAe;IACpB,QAAQ,CAAgB;IACxB,SAAS,CAAY;IAE7B,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,aAAa,EAAE,CAAC;IAC7B,CAAC;IAED,gBAAgB,CAAC,OAAqB;QACpC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,IAAgB;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,KAA2B;QACnC,IAAI,CAAC,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,0BAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,QAAsB;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,SAAmB;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,IAAA,+BAAkB,GAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,6BAAgB,EAAE,6BAAc,CAAC,2DAA2D,CAAC,CAAC,CAAC;QAClI,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,MAAM,MAAM,GAAG,IAAA,+BAAkB,GAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,6BAAgB,EAAE,6BAAc,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC3G,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,6BAAgB,EAAE,6BAAc,CAAC,yCAAyC,CAAC,CAAC,CAAC;QAChH,CAAC;QAED,OAAO,eAAM,CAAC,SAAS,CACrB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;CACF;AArED,sCAqEC"}
@@ -27,6 +27,16 @@ export declare enum ECIESErrorTypeEnum {
27
27
  FileSizeTooLarge = "FileSizeTooLarge",
28
28
  DecryptionFailed = "DecryptionFailed",// Added for MAC/Padding errors
29
29
  InvalidRecipientPublicKey = "InvalidRecipientPublicKey",// Added for specific key errors
30
- SecretComputationFailed = "SecretComputationFailed"
30
+ SecretComputationFailed = "SecretComputationFailed",// Added for ECDH failures
31
+ AuthenticationTagIsRequiredForKeyEncryption = "AuthenticationTagIsRequiredForKeyEncryption",
32
+ FailedToDecryptKey = "FailedToDecryptKey",
33
+ MessageTooLarge = "MessageTooLarge",
34
+ AuthenticationTagIsRequiredForMultiRecipientECIESEncryption = "AuthenticationTagIsRequiredForMultiRecipientECIESEncryption",
35
+ CannotEncryptEmptyData = "CannotEncryptEmptyData",
36
+ CannotDecryptEmptyData = "CannotDecryptEmptyData",
37
+ EncryptedSizeExceedsExpected = "EncryptedSizeExceedsExpected",
38
+ DecryptedDataLengthMismatch = "DecryptedDataLengthMismatch",
39
+ RecipientCountMismatch = "RecipientCountMismatch",
40
+ DataTooShortForMultiRecipientHeader = "DataTooShortForMultiRecipientHeader"
31
41
  }
32
42
  //# sourceMappingURL=ecies-error-type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ecies-error-type.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/enumerations/ecies-error-type.ts"],"names":[],"mappings":"AAAA,oBAAY,kBAAkB;IAC5B,oCAAoC,yCAAyC;IAC7E,2BAA2B,gCAAgC;IAC3D,sCAAsC,2CAA2C;IACjF,kCAAkC,uCAAuC;IACzE,mCAAmC,wCAAwC;IAC3E,QAAQ,aAAa;IACrB,qBAAqB,0BAA0B;IAC/C,eAAe,oBAAoB;IACnC,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;IAC3C,iBAAiB,sBAAsB;IACvC,0BAA0B,+BAA+B;IACzD,iBAAiB,sBAAsB;IACvC,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,qBAAqB,0BAA0B;IAC/C,yBAAyB,8BAA8B;IACvD,yBAAyB,8BAA8B;IACvD,iBAAiB,sBAAsB;IACvC,gBAAgB,qBAAqB;IACrC,sBAAsB,2BAA2B;IACjD,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,yBAAyB,8BAA8B;IACvD,qBAAqB,0BAA0B;IAC/C,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB,CAAE,+BAA+B;IACtE,yBAAyB,8BAA8B,CAAE,gCAAgC;IACzF,uBAAuB,4BAA4B;CACpD"}
1
+ {"version":3,"file":"ecies-error-type.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/enumerations/ecies-error-type.ts"],"names":[],"mappings":"AAAA,oBAAY,kBAAkB;IAC5B,oCAAoC,yCAAyC;IAC7E,2BAA2B,gCAAgC;IAC3D,sCAAsC,2CAA2C;IACjF,kCAAkC,uCAAuC;IACzE,mCAAmC,wCAAwC;IAC3E,QAAQ,aAAa;IACrB,qBAAqB,0BAA0B;IAC/C,eAAe,oBAAoB;IACnC,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;IAC3C,iBAAiB,sBAAsB;IACvC,0BAA0B,+BAA+B;IACzD,iBAAiB,sBAAsB;IACvC,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,qBAAqB,0BAA0B;IAC/C,yBAAyB,8BAA8B;IACvD,yBAAyB,8BAA8B;IACvD,iBAAiB,sBAAsB;IACvC,gBAAgB,qBAAqB;IACrC,sBAAsB,2BAA2B;IACjD,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,yBAAyB,8BAA8B;IACvD,qBAAqB,0BAA0B;IAC/C,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB,CAAE,+BAA+B;IACtE,yBAAyB,8BAA8B,CAAE,gCAAgC;IACzF,uBAAuB,4BAA4B,CAAE,0BAA0B;IAC/E,2CAA2C,gDAAgD;IAC3F,kBAAkB,uBAAuB;IACzC,eAAe,oBAAoB;IACnC,2DAA2D,gEAAgE;IAC3H,sBAAsB,2BAA2B;IACjD,sBAAsB,2BAA2B;IACjD,4BAA4B,iCAAiC;IAC7D,2BAA2B,gCAAgC;IAC3D,sBAAsB,2BAA2B;IACjD,mCAAmC,wCAAwC;CAC5E"}
@@ -32,5 +32,15 @@ var ECIESErrorTypeEnum;
32
32
  ECIESErrorTypeEnum["DecryptionFailed"] = "DecryptionFailed";
33
33
  ECIESErrorTypeEnum["InvalidRecipientPublicKey"] = "InvalidRecipientPublicKey";
34
34
  ECIESErrorTypeEnum["SecretComputationFailed"] = "SecretComputationFailed";
35
+ ECIESErrorTypeEnum["AuthenticationTagIsRequiredForKeyEncryption"] = "AuthenticationTagIsRequiredForKeyEncryption";
36
+ ECIESErrorTypeEnum["FailedToDecryptKey"] = "FailedToDecryptKey";
37
+ ECIESErrorTypeEnum["MessageTooLarge"] = "MessageTooLarge";
38
+ ECIESErrorTypeEnum["AuthenticationTagIsRequiredForMultiRecipientECIESEncryption"] = "AuthenticationTagIsRequiredForMultiRecipientECIESEncryption";
39
+ ECIESErrorTypeEnum["CannotEncryptEmptyData"] = "CannotEncryptEmptyData";
40
+ ECIESErrorTypeEnum["CannotDecryptEmptyData"] = "CannotDecryptEmptyData";
41
+ ECIESErrorTypeEnum["EncryptedSizeExceedsExpected"] = "EncryptedSizeExceedsExpected";
42
+ ECIESErrorTypeEnum["DecryptedDataLengthMismatch"] = "DecryptedDataLengthMismatch";
43
+ ECIESErrorTypeEnum["RecipientCountMismatch"] = "RecipientCountMismatch";
44
+ ECIESErrorTypeEnum["DataTooShortForMultiRecipientHeader"] = "DataTooShortForMultiRecipientHeader";
35
45
  })(ECIESErrorTypeEnum || (exports.ECIESErrorTypeEnum = ECIESErrorTypeEnum = {}));
36
46
  //# sourceMappingURL=ecies-error-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ecies-error-type.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/enumerations/ecies-error-type.ts"],"names":[],"mappings":";;;AAAA,IAAY,kBA8BX;AA9BD,WAAY,kBAAkB;IAC5B,mGAA6E,CAAA;IAC7E,iFAA2D,CAAA;IAC3D,uGAAiF,CAAA;IACjF,+FAAyE,CAAA;IACzE,iGAA2E,CAAA;IAC3E,2CAAqB,CAAA;IACrB,qEAA+C,CAAA;IAC/C,yDAAmC,CAAA;IACnC,mEAA6C,CAAA;IAC7C,iEAA2C,CAAA;IAC3C,6DAAuC,CAAA;IACvC,+EAAyD,CAAA;IACzD,6DAAuC,CAAA;IACvC,yDAAmC,CAAA;IACnC,2DAAqC,CAAA;IACrC,qEAA+C,CAAA;IAC/C,6EAAuD,CAAA;IACvD,6EAAuD,CAAA;IACvD,6DAAuC,CAAA;IACvC,2DAAqC,CAAA;IACrC,uEAAiD,CAAA;IACjD,6DAAuC,CAAA;IACvC,iEAA2C,CAAA;IAC3C,6EAAuD,CAAA;IACvD,qEAA+C,CAAA;IAC/C,2DAAqC,CAAA;IACrC,2DAAqC,CAAA;IACrC,6EAAuD,CAAA;IACvD,yEAAmD,CAAA;AACrD,CAAC,EA9BW,kBAAkB,kCAAlB,kBAAkB,QA8B7B"}
1
+ {"version":3,"file":"ecies-error-type.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/enumerations/ecies-error-type.ts"],"names":[],"mappings":";;;AAAA,IAAY,kBAwCX;AAxCD,WAAY,kBAAkB;IAC5B,mGAA6E,CAAA;IAC7E,iFAA2D,CAAA;IAC3D,uGAAiF,CAAA;IACjF,+FAAyE,CAAA;IACzE,iGAA2E,CAAA;IAC3E,2CAAqB,CAAA;IACrB,qEAA+C,CAAA;IAC/C,yDAAmC,CAAA;IACnC,mEAA6C,CAAA;IAC7C,iEAA2C,CAAA;IAC3C,6DAAuC,CAAA;IACvC,+EAAyD,CAAA;IACzD,6DAAuC,CAAA;IACvC,yDAAmC,CAAA;IACnC,2DAAqC,CAAA;IACrC,qEAA+C,CAAA;IAC/C,6EAAuD,CAAA;IACvD,6EAAuD,CAAA;IACvD,6DAAuC,CAAA;IACvC,2DAAqC,CAAA;IACrC,uEAAiD,CAAA;IACjD,6DAAuC,CAAA;IACvC,iEAA2C,CAAA;IAC3C,6EAAuD,CAAA;IACvD,qEAA+C,CAAA;IAC/C,2DAAqC,CAAA;IACrC,2DAAqC,CAAA;IACrC,6EAAuD,CAAA;IACvD,yEAAmD,CAAA;IACnD,iHAA2F,CAAA;IAC3F,+DAAyC,CAAA;IACzC,yDAAmC,CAAA;IACnC,iJAA2H,CAAA;IAC3H,uEAAiD,CAAA;IACjD,uEAAiD,CAAA;IACjD,mFAA6D,CAAA;IAC7D,iFAA2D,CAAA;IAC3D,uEAAiD,CAAA;IACjD,iGAA2E,CAAA;AAC7E,CAAC,EAxCW,kBAAkB,kCAAlB,kBAAkB,QAwC7B"}
@@ -11,6 +11,11 @@ export declare enum EciesStringKey {
11
11
  Error_ECIESError_InvalidAuthTagLength = "Error_ECIESError_InvalidAuthTagLength",
12
12
  Error_ECIESError_InvalidHeaderLength = "Error_ECIESError_InvalidHeaderLength",
13
13
  Error_ECIESError_InvalidDataLength = "Error_ECIESError_InvalidDataLength",
14
+ Error_ECIESError_InvalidPrivateKey = "Error_ECIESError_InvalidPrivateKey",
15
+ Error_ECIESError_InvalidIV = "Error_ECIESError_InvalidIV",
16
+ Error_ECIESError_InvalidAuthTag = "Error_ECIESError_InvalidAuthTag",
17
+ Error_ECIESError_InvalidSharedSecret = "Error_ECIESError_InvalidSharedSecret",
18
+ Error_ECIESError_InvalidPublicKeyNotOnCurve = "Error_ECIESError_InvalidPublicKeyNotOnCurve",
14
19
  Error_ECIESError_InvalidEncryptedDataLength = "Error_ECIESError_InvalidEncryptedDataLength",
15
20
  Error_ECIESError_InvalidMessageCrc = "Error_ECIESError_InvalidMessageCrc",
16
21
  Error_ECIESError_InvalidMnemonic = "Error_ECIESError_InvalidMnemonic",
@@ -35,6 +40,7 @@ export declare enum EciesStringKey {
35
40
  Error_ECIESError_InvalidEncryptedKeyLengthTemplate = "Error_ECIESError_InvalidEncryptedKeyLengthTemplate",
36
41
  Error_ECIESError_FailedToDecryptKey = "Error_ECIESError_FailedToDecryptKey",
37
42
  Error_ECIESError_TooManyRecipientsTemplate = "Error_ECIESError_TooManyRecipientsTemplate",
43
+ Error_ECIESError_MessageTooLarge = "Error_ECIESError_MessageTooLarge",
38
44
  Error_ECIESError_MessageTooLargeTemplate = "Error_ECIESError_MessageTooLargeTemplate",
39
45
  Error_ECIESError_DecryptedDataLengthMismatch = "Error_ECIESError_DecryptedDataLengthMismatch",
40
46
  Error_ECIESError_RecipientCountMismatch = "Error_ECIESError_RecipientCountMismatch",
@@ -52,6 +58,10 @@ export declare enum EciesStringKey {
52
58
  Error_ECIESError_CombinedDataTooShortForComponents = "Error_ECIESError_CombinedDataTooShortForComponents",
53
59
  Error_ECIESError_InvalidChecksumConstants = "Error_ECIESError_InvalidChecksumConstants",
54
60
  Error_ECIESError_CannotOverwriteDefaultConfiguration = "Error_ECIESError_CannotOverwriteDefaultConfiguration",
61
+ Error_ECIESError_InvalidAESKeyLength = "Error_ECIESError_InvalidAESKeyLength",
62
+ Error_ECIESError_CannotEncryptEmptyData = "Error_ECIESError_CannotEncryptEmptyData",
63
+ Error_ECIESError_CannotDecryptEmptyData = "Error_ECIESError_CannotDecryptEmptyData",
64
+ Error_ECIESError_EncryptedSizeExceedsExpected = "Error_ECIESError_EncryptedSizeExceedsExpected",
55
65
  Error_MemberError_MissingMemberName = "Error_MemberError_MissingMemberName",
56
66
  Error_MemberError_InvalidMemberNameWhitespace = "Error_MemberError_InvalidMemberNameWhitespace",
57
67
  Error_MemberError_InvalidEmail = "Error_MemberError_InvalidEmail",
@@ -87,6 +97,72 @@ export declare enum EciesStringKey {
87
97
  Error_Utils_EncryptionFailedNoAuthTag = "Error_Utils_EncryptionFailedNoAuthTag",
88
98
  Error_PasswordLoginError_FailedToStoreLoginData = "Error_PasswordLoginError_FailedToStoreLoginData",
89
99
  Error_PasswordLoginError_PasswordLoginNotSetUp = "Error_PasswordLoginError_PasswordLoginNotSetUp",
90
- Error_PhoneNumber_InvalidTemplate = "Error_PhoneNumber_InvalidTemplate"
100
+ Error_PhoneNumber_InvalidTemplate = "Error_PhoneNumber_InvalidTemplate",
101
+ Error_MultiRecipient_InvalidRecipientCountTemplate = "Error_MultiRecipient_InvalidRecipientCountTemplate",
102
+ Error_MultiRecipient_SymmetricKeyMust32Bytes = "Error_MultiRecipient_SymmetricKeyMust32Bytes",
103
+ Error_MultiRecipient_InvalidChunkIndexTemplate = "Error_MultiRecipient_InvalidChunkIndexTemplate",
104
+ Error_MultiRecipient_DataSizeExceedsMaximumTemplate = "Error_MultiRecipient_DataSizeExceedsMaximumTemplate",
105
+ Error_MultiRecipient_DuplicateRecipientId = "Error_MultiRecipient_DuplicateRecipientId",
106
+ Error_MultiRecipient_RecipientIdMust32Bytes = "Error_MultiRecipient_RecipientIdMust32Bytes",
107
+ Error_MultiRecipient_RecipientHeadersSizeOverflow = "Error_MultiRecipient_RecipientHeadersSizeOverflow",
108
+ Error_MultiRecipient_ChunkSizeOverflow = "Error_MultiRecipient_ChunkSizeOverflow",
109
+ Error_MultiRecipient_ChunkTooSmall = "Error_MultiRecipient_ChunkTooSmall",
110
+ Error_MultiRecipient_InvalidChunkMagic = "Error_MultiRecipient_InvalidChunkMagic",
111
+ Error_MultiRecipient_UnsupportedVersionTemplate = "Error_MultiRecipient_UnsupportedVersionTemplate",
112
+ Error_MultiRecipient_ChunkTooSmallForEncryptedSize = "Error_MultiRecipient_ChunkTooSmallForEncryptedSize",
113
+ Error_MultiRecipient_ChunkTruncatedRecipientId = "Error_MultiRecipient_ChunkTruncatedRecipientId",
114
+ Error_MultiRecipient_ChunkTruncatedKeySize = "Error_MultiRecipient_ChunkTruncatedKeySize",
115
+ Error_MultiRecipient_InvalidKeySizeTemplate = "Error_MultiRecipient_InvalidKeySizeTemplate",
116
+ Error_MultiRecipient_ChunkTruncatedEncryptedKey = "Error_MultiRecipient_ChunkTruncatedEncryptedKey",
117
+ Error_MultiRecipient_RecipientNotFoundInChunk = "Error_MultiRecipient_RecipientNotFoundInChunk",
118
+ Error_Stream_DataTooShortForHeader = "Error_Stream_DataTooShortForHeader",
119
+ Error_Stream_InvalidMagicBytes = "Error_Stream_InvalidMagicBytes",
120
+ Error_Stream_UnsupportedVersion = "Error_Stream_UnsupportedVersion",
121
+ Error_Stream_InvalidPublicKeyLength = "Error_Stream_InvalidPublicKeyLength",
122
+ Error_Stream_BufferOverflowTemplate = "Error_Stream_BufferOverflowTemplate",
123
+ Error_Stream_EncryptionCancelled = "Error_Stream_EncryptionCancelled",
124
+ Error_Stream_AtLeastOneRecipientRequired = "Error_Stream_AtLeastOneRecipientRequired",
125
+ Error_Stream_MaxRecipientsExceeded = "Error_Stream_MaxRecipientsExceeded",
126
+ Error_Stream_InvalidRecipientPublicKeyLength = "Error_Stream_InvalidRecipientPublicKeyLength",
127
+ Error_Stream_InvalidRecipientIdLength = "Error_Stream_InvalidRecipientIdLength",
128
+ Error_Stream_InvalidRecipientIdMust32Bytes = "Error_Stream_InvalidRecipientIdMust32Bytes",
129
+ Error_Stream_InvalidPrivateKeyMust32Bytes = "Error_Stream_InvalidPrivateKeyMust32Bytes",
130
+ Error_Stream_ChunkSequenceErrorTemplate = "Error_Stream_ChunkSequenceErrorTemplate",
131
+ Error_Stream_DecryptionCancelled = "Error_Stream_DecryptionCancelled",
132
+ Error_Chunk_DataTooShortForHeader = "Error_Chunk_DataTooShortForHeader",
133
+ Error_Chunk_InvalidMagicBytes = "Error_Chunk_InvalidMagicBytes",
134
+ Error_Chunk_UnsupportedVersion = "Error_Chunk_UnsupportedVersion",
135
+ Error_Chunk_EncryptedSizeMismatchTemplate = "Error_Chunk_EncryptedSizeMismatchTemplate",
136
+ Error_Chunk_ChecksumMismatch = "Error_Chunk_ChecksumMismatch",
137
+ Error_Chunk_DecryptedSizeMismatch = "Error_Chunk_DecryptedSizeMismatch",
138
+ Error_Progress_ChunkBytesCannotBeNegative = "Error_Progress_ChunkBytesCannotBeNegative",
139
+ Error_Resumable_AutoSaveIntervalMustBePositive = "Error_Resumable_AutoSaveIntervalMustBePositive",
140
+ Error_Resumable_PublicKeyMismatch = "Error_Resumable_PublicKeyMismatch",
141
+ Error_Resumable_ChunkSizeMismatch = "Error_Resumable_ChunkSizeMismatch",
142
+ Error_Resumable_IncludeChecksumsMismatch = "Error_Resumable_IncludeChecksumsMismatch",
143
+ Error_Resumable_NoStateToSave = "Error_Resumable_NoStateToSave",
144
+ Error_Resumable_UnsupportedStateVersionTemplate = "Error_Resumable_UnsupportedStateVersionTemplate",
145
+ Error_Resumable_InvalidChunkIndex = "Error_Resumable_InvalidChunkIndex",
146
+ Error_Resumable_StateTooOld = "Error_Resumable_StateTooOld",
147
+ Error_Resumable_InvalidPublicKeyInState = "Error_Resumable_InvalidPublicKeyInState",
148
+ Error_Resumable_StateIntegrityCheckFailed = "Error_Resumable_StateIntegrityCheckFailed",
149
+ Error_Builder_MnemonicGenerationNotImplemented = "Error_Builder_MnemonicGenerationNotImplemented",
150
+ Error_Builder_MemberNotMigrated = "Error_Builder_MemberNotMigrated",
151
+ Error_Builder_ECIESServiceNotMigrated = "Error_Builder_ECIESServiceNotMigrated",
152
+ Error_Service_InvalidDataLength = "Error_Service_InvalidDataLength",
153
+ Error_Service_InvalidEncryptionType = "Error_Service_InvalidEncryptionType",
154
+ Error_Service_InvalidEncryptedDataLength = "Error_Service_InvalidEncryptedDataLength",
155
+ Error_Service_ComputedDecryptedLengthNegative = "Error_Service_ComputedDecryptedLengthNegative",
156
+ Error_Service_MultiRecipientNotImplemented = "Error_Service_MultiRecipientNotImplemented",
157
+ Error_Service_InvalidEncryptionTypeOrRecipientCountTemplate = "Error_Service_InvalidEncryptionTypeOrRecipientCountTemplate",
158
+ Error_Container_ServiceNotFoundTemplate = "Error_Container_ServiceNotFoundTemplate",
159
+ Error_Utils_InvalidHexString = "Error_Utils_InvalidHexString",
160
+ Error_Utils_HexStringMustHaveEvenLength = "Error_Utils_HexStringMustHaveEvenLength",
161
+ Error_Utils_HexStringContainsInvalidCharacters = "Error_Utils_HexStringContainsInvalidCharacters",
162
+ Error_Utils_ValueExceedsSafeIntegerRange = "Error_Utils_ValueExceedsSafeIntegerRange",
163
+ Error_Utils_ValueBelowSafeIntegerRange = "Error_Utils_ValueBelowSafeIntegerRange",
164
+ Error_Builder_ECIESServiceMustBeSetBeforeGeneratingMnemonic = "Error_Builder_ECIESServiceMustBeSetBeforeGeneratingMnemonic",
165
+ Error_Builder_ECIESServiceIsRequired = "Error_Builder_ECIESServiceIsRequired",
166
+ Error_Builder_TypeNameAndEmailAreRequired = "Error_Builder_TypeNameAndEmailAreRequired"
91
167
  }
92
168
  //# sourceMappingURL=ecies-string-key.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ecies-string-key.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/enumerations/ecies-string-key.ts"],"names":[],"mappings":"AACA,oBAAY,cAAc;IACxB,qDAAqD,0DAA0D;IAC/G,4CAA4C,iDAAiD;IAC7F,uDAAuD,4DAA4D;IACnH,mDAAmD,wDAAwD;IAC3G,oDAAoD,yDAAyD;IAC7G,yBAAyB,8BAA8B;IACvD,sCAAsC,2CAA2C;IACjF,8CAA8C,mDAAmD;IACjG,gCAAgC,qCAAqC;IACrE,qCAAqC,0CAA0C;IAC/E,oCAAoC,yCAAyC;IAC7E,kCAAkC,uCAAuC;IACzE,2CAA2C,gDAAgD;IAC3F,kCAAkC,uCAAuC;IACzE,gCAAgC,qCAAqC;IACrE,iCAAiC,sCAAsC;IACvE,sCAAsC,2CAA2C;IACjF,0CAA0C,+CAA+C;IACzF,0CAA0C,+CAA+C;IACzF,kCAAkC,uCAAuC;IACzE,iCAAiC,sCAAsC;IACvE,uCAAuC,4CAA4C;IACnF,kCAAkC,uCAAuC;IACzE,oCAAoC,yCAAyC;IAC7E,0CAA0C,+CAA+C;IACzF,sCAAsC,2CAA2C;IACjF,iCAAiC,sCAAsC;IACvE,iCAAiC,sCAAsC;IACvE,0CAA0C,+CAA+C;IACzF,wCAAwC,6CAA6C;IACrF,4DAA4D,iEAAiE;IAC7H,8DAA8D,mEAAmE;IACjI,4EAA4E,iFAAiF;IAC7J,kDAAkD,uDAAuD;IACzG,mCAAmC,wCAAwC;IAC3E,0CAA0C,+CAA+C;IACzF,wCAAwC,6CAA6C;IACrF,4CAA4C,iDAAiD;IAC7F,uCAAuC,4CAA4C;IACnF,oDAAoD,yDAAyD;IAC7G,iDAAiD,sDAAsD;IACvG,0CAA0C,+CAA+C;IACzF,0CAA0C,+CAA+C;IACzF,uDAAuD,4DAA4D;IACnH,iDAAiD,sDAAsD;IACvG,+DAA+D,oEAAoE;IACnI,wEAAwE,6EAA6E;IACrJ,+CAA+C,oDAAoD;IACnG,qCAAqC,0CAA0C;IAC/E,2CAA2C,gDAAgD;IAC3F,kDAAkD,uDAAuD;IACzG,yCAAyC,8CAA8C;IACvF,oDAAoD,yDAAyD;IAG7G,mCAAmC,wCAAwC;IAC3E,6CAA6C,kDAAkD;IAC/F,8BAA8B,mCAAmC;IACjE,mCAAmC,wCAAwC;IAC3E,8BAA8B,mCAAmC;IACjE,wCAAwC,6CAA6C;IACrF,mCAAmC,wCAAwC;IAC3E,0BAA0B,+BAA+B;IACzD,qCAAqC,0CAA0C;IAC/E,iCAAiC,sCAAsC;IACvE,8CAA8C,mDAAmD;IACjG,gCAAgC,qCAAqC;IACrE,qCAAqC,0CAA0C;IAC/E,qCAAqC,0CAA0C;IAC/E,uCAAuC,4CAA4C;IACnF,mCAAmC,wCAAwC;IAC3E,2CAA2C,gDAAgD;IAC3F,uCAAuC,4CAA4C;IACnF,wCAAwC,6CAA6C;IACrF,uCAAuC,4CAA4C;IAGnF,kCAAkC,uCAAuC;IACzE,iCAAiC,sCAAsC;IACvE,qCAAqC,0CAA0C;IAG/E,gCAAgC,qCAAqC;IACrE,mCAAmC,wCAAwC;IAC3E,mCAAmC,wCAAwC;IAG3E,qDAAqD,0DAA0D;IAC/G,uDAAuD,4DAA4D;IACnH,oCAAoC,yCAAyC;IAE7E,+BAA+B,oCAAoC;IACnE,+BAA+B,oCAAoC;IACnE,kCAAkC,uCAAuC;IACzE,qCAAqC,0CAA0C;IAC/E,+CAA+C,oDAAoD;IACnG,8CAA8C,mDAAmD;IAEjG,iCAAiC,sCAAsC;CACxE"}
1
+ {"version":3,"file":"ecies-string-key.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/enumerations/ecies-string-key.ts"],"names":[],"mappings":"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"}