@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.
- package/README.md +153 -3
- package/package.json +3 -3
- package/src/builders/ecies-builder.d.ts +7 -3
- package/src/builders/ecies-builder.d.ts.map +1 -1
- package/src/builders/ecies-builder.js +11 -9
- package/src/builders/ecies-builder.js.map +1 -1
- package/src/builders/member-builder.d.ts +10 -1
- package/src/builders/member-builder.d.ts.map +1 -1
- package/src/builders/member-builder.js +29 -7
- package/src/builders/member-builder.js.map +1 -1
- package/src/enumerations/ecies-error-type.d.ts +11 -1
- package/src/enumerations/ecies-error-type.d.ts.map +1 -1
- package/src/enumerations/ecies-error-type.js +10 -0
- package/src/enumerations/ecies-error-type.js.map +1 -1
- package/src/enumerations/ecies-string-key.d.ts +77 -1
- package/src/enumerations/ecies-string-key.d.ts.map +1 -1
- package/src/enumerations/ecies-string-key.js +77 -0
- package/src/enumerations/ecies-string-key.js.map +1 -1
- package/src/i18n-setup.d.ts.map +1 -1
- package/src/i18n-setup.js +15 -683
- package/src/i18n-setup.js.map +1 -1
- package/src/index.d.ts +12 -0
- package/src/index.d.ts.map +1 -1
- package/src/index.js +15 -1
- package/src/index.js.map +1 -1
- package/src/interfaces/encrypted-chunk.d.ts +55 -0
- package/src/interfaces/encrypted-chunk.d.ts.map +1 -0
- package/src/interfaces/encrypted-chunk.js +15 -0
- package/src/interfaces/encrypted-chunk.js.map +1 -0
- package/src/interfaces/encryption-state.d.ts +18 -0
- package/src/interfaces/encryption-state.d.ts.map +1 -0
- package/src/interfaces/encryption-state.js +5 -0
- package/src/interfaces/encryption-state.js.map +1 -0
- package/src/interfaces/frontend-member-operational.d.ts +12 -1
- package/src/interfaces/frontend-member-operational.d.ts.map +1 -1
- package/src/interfaces/multi-recipient-chunk.d.ts +65 -0
- package/src/interfaces/multi-recipient-chunk.d.ts.map +1 -0
- package/src/interfaces/multi-recipient-chunk.js +25 -0
- package/src/interfaces/multi-recipient-chunk.js.map +1 -0
- package/src/interfaces/stream-config.d.ts +14 -0
- package/src/interfaces/stream-config.d.ts.map +1 -0
- package/src/interfaces/stream-config.js +11 -0
- package/src/interfaces/stream-config.js.map +1 -0
- package/src/interfaces/stream-header.d.ts +29 -0
- package/src/interfaces/stream-header.d.ts.map +1 -0
- package/src/interfaces/stream-header.js +12 -0
- package/src/interfaces/stream-header.js.map +1 -0
- package/src/interfaces/stream-progress.d.ts +33 -0
- package/src/interfaces/stream-progress.d.ts.map +1 -0
- package/src/interfaces/stream-progress.js +3 -0
- package/src/interfaces/stream-progress.js.map +1 -0
- package/src/lib/crypto-container.d.ts.map +1 -1
- package/src/lib/crypto-container.js +2 -1
- package/src/lib/crypto-container.js.map +1 -1
- package/src/member.d.ts +27 -1
- package/src/member.d.ts.map +1 -1
- package/src/member.js +69 -2
- package/src/member.js.map +1 -1
- package/src/services/aes-gcm.d.ts.map +1 -1
- package/src/services/aes-gcm.js +29 -0
- package/src/services/aes-gcm.js.map +1 -1
- package/src/services/chunk-processor.d.ts +31 -0
- package/src/services/chunk-processor.d.ts.map +1 -0
- package/src/services/chunk-processor.js +149 -0
- package/src/services/chunk-processor.js.map +1 -0
- package/src/services/ecies/crypto-core.d.ts.map +1 -1
- package/src/services/ecies/crypto-core.js +23 -8
- package/src/services/ecies/crypto-core.js.map +1 -1
- package/src/services/ecies/service.d.ts +12 -4
- package/src/services/ecies/service.d.ts.map +1 -1
- package/src/services/ecies/service.js +28 -18
- package/src/services/ecies/service.js.map +1 -1
- package/src/services/ecies/single-recipient.d.ts.map +1 -1
- package/src/services/ecies/single-recipient.js +55 -4
- package/src/services/ecies/single-recipient.js.map +1 -1
- package/src/services/encryption-stream.d.ts +69 -0
- package/src/services/encryption-stream.d.ts.map +1 -0
- package/src/services/encryption-stream.js +297 -0
- package/src/services/encryption-stream.js.map +1 -0
- package/src/services/multi-recipient-processor.d.ts +25 -0
- package/src/services/multi-recipient-processor.d.ts.map +1 -0
- package/src/services/multi-recipient-processor.js +238 -0
- package/src/services/multi-recipient-processor.js.map +1 -0
- package/src/services/password-login.js +1 -1
- package/src/services/password-login.js.map +1 -1
- package/src/services/progress-tracker.d.ts +23 -0
- package/src/services/progress-tracker.d.ts.map +1 -0
- package/src/services/progress-tracker.js +98 -0
- package/src/services/progress-tracker.js.map +1 -0
- package/src/services/resumable-encryption.d.ts +19 -0
- package/src/services/resumable-encryption.d.ts.map +1 -0
- package/src/services/resumable-encryption.js +109 -0
- package/src/services/resumable-encryption.js.map +1 -0
- package/src/test-mocks/mock-frontend-member.d.ts +15 -0
- package/src/test-mocks/mock-frontend-member.d.ts.map +1 -1
- package/src/test-mocks/mock-frontend-member.js +58 -0
- package/src/test-mocks/mock-frontend-member.js.map +1 -1
- package/src/translations/de.d.ts +3 -0
- package/src/translations/de.d.ts.map +1 -0
- package/src/translations/de.js +178 -0
- package/src/translations/de.js.map +1 -0
- package/src/translations/en-US.d.ts +3 -0
- package/src/translations/en-US.d.ts.map +1 -0
- package/src/translations/en-US.js +178 -0
- package/src/translations/en-US.js.map +1 -0
- package/src/translations/es.d.ts +3 -0
- package/src/translations/es.d.ts.map +1 -0
- package/src/translations/es.js +178 -0
- package/src/translations/es.js.map +1 -0
- package/src/translations/fr.d.ts +3 -0
- package/src/translations/fr.d.ts.map +1 -0
- package/src/translations/fr.js +178 -0
- package/src/translations/fr.js.map +1 -0
- package/src/translations/ja.d.ts +3 -0
- package/src/translations/ja.d.ts.map +1 -0
- package/src/translations/ja.js +178 -0
- package/src/translations/ja.js.map +1 -0
- package/src/translations/uk.d.ts +3 -0
- package/src/translations/uk.d.ts.map +1 -0
- package/src/translations/uk.js +178 -0
- package/src/translations/uk.js.map +1 -0
- package/src/translations/zh-cn.d.ts +3 -0
- package/src/translations/zh-cn.d.ts.map +1 -0
- package/src/translations/zh-cn.js +178 -0
- package/src/translations/zh-cn.js.map +1 -0
- package/src/utils.d.ts.map +1 -1
- package/src/utils.js +8 -5
- package/src/utils.js.map +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@digitaldefiance/ecies-lib)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
|
-
[](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** –
|
|
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": "
|
|
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": "
|
|
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.
|
|
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
|
|
9
|
+
private serviceConfig;
|
|
10
|
+
private eciesConsts;
|
|
8
11
|
private i18n?;
|
|
9
12
|
static create(): ECIESBuilder;
|
|
10
|
-
|
|
13
|
+
withServiceConfig(config: Partial<IECIESConfig>): this;
|
|
14
|
+
withConstants(constants: Partial<IECIESConstants>): this;
|
|
11
15
|
withI18n(engine: PluginI18nEngine<string>): this;
|
|
12
|
-
build():
|
|
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;
|
|
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
|
|
8
|
+
const service_1 = require("../services/ecies/service");
|
|
9
9
|
class ECIESBuilder {
|
|
10
|
-
|
|
10
|
+
serviceConfig = {};
|
|
11
|
+
eciesConsts = {};
|
|
11
12
|
i18n;
|
|
12
13
|
static create() {
|
|
13
14
|
return new ECIESBuilder();
|
|
14
15
|
}
|
|
15
|
-
|
|
16
|
-
this.
|
|
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
|
-
|
|
25
|
-
|
|
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;;;
|
|
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():
|
|
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;
|
|
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
|
|
9
|
-
const
|
|
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
|
-
|
|
32
|
-
|
|
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
|
|
59
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_Builder_TypeNameAndEmailAreRequired));
|
|
37
60
|
}
|
|
38
|
-
|
|
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,
|
|
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;
|
|
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,
|
|
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;
|
|
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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"}
|