@digitaldefiance/ecies-lib 3.0.8 → 3.7.2
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 +4 -0
- package/package.json +4 -3
- package/src/builders/ecies-builder.js +5 -9
- package/src/builders/ecies-builder.js.map +1 -1
- package/src/builders/index.js +2 -5
- package/src/builders/index.js.map +1 -1
- package/src/builders/member-builder.js +12 -16
- package/src/builders/member-builder.js.map +1 -1
- package/src/constants.d.ts +14 -0
- package/src/constants.d.ts.map +1 -1
- package/src/constants.js +150 -74
- package/src/constants.js.map +1 -1
- package/src/core/errors/crypto-error.js +10 -14
- package/src/core/errors/crypto-error.js.map +1 -1
- package/src/core/index.js +2 -5
- package/src/core/index.js.map +1 -1
- package/src/core/types/result.js +1 -5
- package/src/core/types/result.js.map +1 -1
- package/src/email-string.js +8 -13
- package/src/email-string.js.map +1 -1
- package/src/enumerations/disposed-error-type.d.ts +12 -0
- package/src/enumerations/disposed-error-type.d.ts.map +1 -0
- package/src/enumerations/disposed-error-type.js +13 -0
- package/src/enumerations/disposed-error-type.js.map +1 -0
- package/src/enumerations/ecies-encryption-type.js +20 -27
- package/src/enumerations/ecies-encryption-type.js.map +1 -1
- package/src/enumerations/ecies-error-type.js +2 -5
- package/src/enumerations/ecies-error-type.js.map +1 -1
- package/src/enumerations/ecies-string-key.d.ts +19 -1
- package/src/enumerations/ecies-string-key.d.ts.map +1 -1
- package/src/enumerations/ecies-string-key.js +21 -5
- package/src/enumerations/ecies-string-key.js.map +1 -1
- package/src/enumerations/guid-brand-type.d.ts +27 -0
- package/src/enumerations/guid-brand-type.d.ts.map +1 -0
- package/src/enumerations/guid-brand-type.js +28 -0
- package/src/enumerations/guid-brand-type.js.map +1 -0
- package/src/enumerations/guid-error-type.d.ts +7 -0
- package/src/enumerations/guid-error-type.d.ts.map +1 -0
- package/src/enumerations/guid-error-type.js +8 -0
- package/src/enumerations/guid-error-type.js.map +1 -0
- package/src/enumerations/id-provider-error-type.d.ts +43 -0
- package/src/enumerations/id-provider-error-type.d.ts.map +1 -0
- package/src/enumerations/id-provider-error-type.js +44 -0
- package/src/enumerations/id-provider-error-type.js.map +1 -0
- package/src/enumerations/index.d.ts +3 -0
- package/src/enumerations/index.d.ts.map +1 -1
- package/src/enumerations/index.js +15 -15
- package/src/enumerations/index.js.map +1 -1
- package/src/enumerations/invalid-email-type.js +2 -5
- package/src/enumerations/invalid-email-type.js.map +1 -1
- package/src/enumerations/length-encoding-type.js +2 -5
- package/src/enumerations/length-encoding-type.js.map +1 -1
- package/src/enumerations/length-error-type.js +2 -5
- package/src/enumerations/length-error-type.js.map +1 -1
- package/src/enumerations/member-error-type.js +3 -6
- package/src/enumerations/member-error-type.js.map +1 -1
- package/src/enumerations/member-type.js +3 -6
- package/src/enumerations/member-type.js.map +1 -1
- package/src/enumerations/password-login-error-type.js +2 -5
- package/src/enumerations/password-login-error-type.js.map +1 -1
- package/src/enumerations/pbkdf2-error-type.js +2 -5
- package/src/enumerations/pbkdf2-error-type.js.map +1 -1
- package/src/enumerations/pbkdf2-profile.js +2 -5
- package/src/enumerations/pbkdf2-profile.js.map +1 -1
- package/src/enumerations/secure-storage-error-type.js +2 -5
- package/src/enumerations/secure-storage-error-type.js.map +1 -1
- package/src/errors/disposed.d.ts +20 -2
- package/src/errors/disposed.d.ts.map +1 -1
- package/src/errors/disposed.js +24 -17
- package/src/errors/disposed.js.map +1 -1
- package/src/errors/ecies.d.ts +46 -1
- package/src/errors/ecies.d.ts.map +1 -1
- package/src/errors/ecies.js +65 -10
- package/src/errors/ecies.js.map +1 -1
- package/src/errors/guid.d.ts +44 -0
- package/src/errors/guid.d.ts.map +1 -0
- package/src/errors/guid.js +81 -0
- package/src/errors/guid.js.map +1 -0
- package/src/errors/id-provider.d.ts +23 -0
- package/src/errors/id-provider.d.ts.map +1 -0
- package/src/errors/id-provider.js +29 -0
- package/src/errors/id-provider.js.map +1 -0
- package/src/errors/index.d.ts +3 -0
- package/src/errors/index.d.ts.map +1 -1
- package/src/errors/index.js +9 -10
- package/src/errors/index.js.map +1 -1
- package/src/errors/invalid-email.js +5 -9
- package/src/errors/invalid-email.js.map +1 -1
- package/src/errors/length.js +5 -9
- package/src/errors/length.js.map +1 -1
- package/src/errors/member.js +5 -9
- package/src/errors/member.js.map +1 -1
- package/src/errors/pbkdf2.js +5 -9
- package/src/errors/pbkdf2.js.map +1 -1
- package/src/errors/secure-storage.js +6 -10
- package/src/errors/secure-storage.js.map +1 -1
- package/src/errors/simple-ecies.js +6 -10
- package/src/errors/simple-ecies.js.map +1 -1
- package/src/errors/simple-test-error.js +1 -5
- package/src/errors/simple-test-error.js.map +1 -1
- package/src/i18n-setup.js +29 -37
- package/src/i18n-setup.js.map +1 -1
- package/src/index.d.ts +10 -0
- package/src/index.d.ts.map +1 -1
- package/src/index.js +44 -57
- package/src/index.js.map +1 -1
- package/src/interfaces/checksum-config.js +1 -2
- package/src/interfaces/checksum-consts.js +1 -2
- package/src/interfaces/configuration-provenance.d.ts +51 -0
- package/src/interfaces/configuration-provenance.d.ts.map +1 -0
- package/src/interfaces/configuration-provenance.js +23 -0
- package/src/interfaces/configuration-provenance.js.map +1 -0
- package/src/interfaces/constants.d.ts +27 -1
- package/src/interfaces/constants.d.ts.map +1 -1
- package/src/interfaces/constants.js +1 -2
- package/src/interfaces/ecies-config.js +1 -2
- package/src/interfaces/ecies-consts.js +1 -2
- package/src/interfaces/ecies-file-service.js +1 -2
- package/src/interfaces/encrypted-chunk.js +1 -4
- package/src/interfaces/encrypted-chunk.js.map +1 -1
- package/src/interfaces/encryption-state.js +1 -4
- package/src/interfaces/encryption-state.js.map +1 -1
- package/src/interfaces/frontend-member-operational.js +1 -2
- package/src/interfaces/guid.d.ts +78 -0
- package/src/interfaces/guid.d.ts.map +1 -0
- package/src/interfaces/guid.js +2 -0
- package/src/interfaces/guid.js.map +1 -0
- package/src/interfaces/id-provider.d.ts +83 -0
- package/src/interfaces/id-provider.d.ts.map +1 -0
- package/src/interfaces/id-provider.js +35 -0
- package/src/interfaces/id-provider.js.map +1 -0
- package/src/interfaces/index.d.ts +1 -0
- package/src/interfaces/index.d.ts.map +1 -1
- package/src/interfaces/index.js +13 -15
- package/src/interfaces/index.js.map +1 -1
- package/src/interfaces/invariant.d.ts +46 -0
- package/src/interfaces/invariant.d.ts.map +1 -0
- package/src/interfaces/invariant.js +18 -0
- package/src/interfaces/invariant.js.map +1 -0
- package/src/interfaces/library-error.js +1 -2
- package/src/interfaces/member-storage.js +1 -2
- package/src/interfaces/member-with-mnemonic.js +1 -2
- package/src/interfaces/multi-recipient-chunk.d.ts +36 -12
- package/src/interfaces/multi-recipient-chunk.d.ts.map +1 -1
- package/src/interfaces/multi-recipient-chunk.js +36 -14
- package/src/interfaces/multi-recipient-chunk.js.map +1 -1
- package/src/interfaces/pbkdf2-config.js +1 -2
- package/src/interfaces/pbkdf2-consts.js +1 -2
- package/src/interfaces/pbkdf2-result.js +1 -2
- package/src/interfaces/stream-config.js +1 -4
- package/src/interfaces/stream-config.js.map +1 -1
- package/src/interfaces/stream-header.js +1 -4
- package/src/interfaces/stream-header.js.map +1 -1
- package/src/interfaces/stream-progress.js +1 -2
- package/src/lib/crypto-container.js +9 -13
- package/src/lib/crypto-container.js.map +1 -1
- package/src/lib/guid.d.ts +344 -0
- package/src/lib/guid.d.ts.map +1 -0
- package/src/lib/guid.js +914 -0
- package/src/lib/guid.js.map +1 -0
- package/src/lib/id-providers/custom-provider.d.ts +69 -0
- package/src/lib/id-providers/custom-provider.d.ts.map +1 -0
- package/src/lib/id-providers/custom-provider.js +128 -0
- package/src/lib/id-providers/custom-provider.js.map +1 -0
- package/src/lib/id-providers/guidv4-provider.d.ts +46 -0
- package/src/lib/id-providers/guidv4-provider.d.ts.map +1 -0
- package/src/lib/id-providers/guidv4-provider.js +105 -0
- package/src/lib/id-providers/guidv4-provider.js.map +1 -0
- package/src/lib/id-providers/index.d.ts +30 -0
- package/src/lib/id-providers/index.d.ts.map +1 -0
- package/src/lib/id-providers/index.js +29 -0
- package/src/lib/id-providers/index.js.map +1 -0
- package/src/lib/id-providers/objectid-provider.d.ts +33 -0
- package/src/lib/id-providers/objectid-provider.d.ts.map +1 -0
- package/src/lib/id-providers/objectid-provider.js +79 -0
- package/src/lib/id-providers/objectid-provider.js.map +1 -0
- package/src/lib/id-providers/uuid-provider.d.ts +42 -0
- package/src/lib/id-providers/uuid-provider.d.ts.map +1 -0
- package/src/lib/id-providers/uuid-provider.js +96 -0
- package/src/lib/id-providers/uuid-provider.js.map +1 -0
- package/src/lib/index.d.ts +1 -0
- package/src/lib/index.d.ts.map +1 -1
- package/src/lib/index.js +2 -4
- package/src/lib/index.js.map +1 -1
- package/src/lib/invariant-validator.d.ts +59 -0
- package/src/lib/invariant-validator.d.ts.map +1 -0
- package/src/lib/invariant-validator.js +97 -0
- package/src/lib/invariant-validator.js.map +1 -0
- package/src/lib/invariants/encryption-algorithm-consistency.d.ts +17 -0
- package/src/lib/invariants/encryption-algorithm-consistency.d.ts.map +1 -0
- package/src/lib/invariants/encryption-algorithm-consistency.js +49 -0
- package/src/lib/invariants/encryption-algorithm-consistency.js.map +1 -0
- package/src/lib/invariants/index.d.ts +4 -0
- package/src/lib/invariants/index.d.ts.map +1 -0
- package/src/lib/invariants/index.js +4 -0
- package/src/lib/invariants/index.js.map +1 -0
- package/src/lib/invariants/pbkdf2-profiles-validity.d.ts +16 -0
- package/src/lib/invariants/pbkdf2-profiles-validity.d.ts.map +1 -0
- package/src/lib/invariants/pbkdf2-profiles-validity.js +58 -0
- package/src/lib/invariants/pbkdf2-profiles-validity.js.map +1 -0
- package/src/lib/invariants/recipient-id-consistency.d.ts +18 -0
- package/src/lib/invariants/recipient-id-consistency.d.ts.map +1 -0
- package/src/lib/invariants/recipient-id-consistency.js +31 -0
- package/src/lib/invariants/recipient-id-consistency.js.map +1 -0
- package/src/member.js +43 -48
- package/src/member.js.map +1 -1
- package/src/pbkdf2-profiles.js +1 -2
- package/src/phone-number.js +7 -11
- package/src/phone-number.js.map +1 -1
- package/src/regexes.js +3 -6
- package/src/regexes.js.map +1 -1
- package/src/secure-buffer.d.ts +17 -1
- package/src/secure-buffer.d.ts.map +1 -1
- package/src/secure-buffer.js +40 -22
- package/src/secure-buffer.js.map +1 -1
- package/src/secure-string.js +20 -24
- package/src/secure-string.js.map +1 -1
- package/src/services/aes-gcm.js +21 -25
- package/src/services/aes-gcm.js.map +1 -1
- package/src/services/chunk-processor.js +32 -36
- package/src/services/chunk-processor.js.map +1 -1
- package/src/services/ecies/crypto-core.js +33 -37
- package/src/services/ecies/crypto-core.js.map +1 -1
- package/src/services/ecies/example.js +37 -44
- package/src/services/ecies/example.js.map +1 -1
- package/src/services/ecies/file.js +1 -5
- package/src/services/ecies/file.js.map +1 -1
- package/src/services/ecies/index.js +10 -15
- package/src/services/ecies/index.js.map +1 -1
- package/src/services/ecies/integration.js +23 -28
- package/src/services/ecies/integration.js.map +1 -1
- package/src/services/ecies/interfaces.js +1 -2
- package/src/services/ecies/interfaces.js.map +1 -1
- package/src/services/ecies/manual-test.js +26 -34
- package/src/services/ecies/manual-test.js.map +1 -1
- package/src/services/ecies/multi-recipient.js +47 -51
- package/src/services/ecies/multi-recipient.js.map +1 -1
- package/src/services/ecies/service.js +27 -31
- package/src/services/ecies/service.js.map +1 -1
- package/src/services/ecies/signature.js +9 -13
- package/src/services/ecies/signature.js.map +1 -1
- package/src/services/ecies/single-recipient.js +42 -46
- package/src/services/ecies/single-recipient.js.map +1 -1
- package/src/services/encryption-stream.d.ts +3 -1
- package/src/services/encryption-stream.d.ts.map +1 -1
- package/src/services/encryption-stream.js +46 -48
- package/src/services/encryption-stream.js.map +1 -1
- package/src/services/index.js +5 -8
- package/src/services/index.js.map +1 -1
- package/src/services/multi-recipient-processor.d.ts +12 -2
- package/src/services/multi-recipient-processor.d.ts.map +1 -1
- package/src/services/multi-recipient-processor.js +65 -56
- package/src/services/multi-recipient-processor.js.map +1 -1
- package/src/services/password-login.js +33 -37
- package/src/services/password-login.js.map +1 -1
- package/src/services/pbkdf2.js +8 -12
- package/src/services/pbkdf2.js.map +1 -1
- package/src/services/progress-tracker.js +5 -9
- package/src/services/progress-tracker.js.map +1 -1
- package/src/services/resumable-encryption.js +24 -28
- package/src/services/resumable-encryption.js.map +1 -1
- package/src/services/xor.js +1 -5
- package/src/services/xor.js.map +1 -1
- package/src/test-mocks/index.js +1 -4
- package/src/test-mocks/index.js.map +1 -1
- package/src/test-mocks/mock-frontend-member.js +20 -24
- package/src/test-mocks/mock-frontend-member.js.map +1 -1
- package/src/testing.js +1 -4
- package/src/testing.js.map +1 -1
- package/src/translations/de.d.ts +2 -1
- package/src/translations/de.d.ts.map +1 -1
- package/src/translations/de.js +190 -170
- package/src/translations/de.js.map +1 -1
- package/src/translations/en-US.d.ts +2 -1
- package/src/translations/en-US.d.ts.map +1 -1
- package/src/translations/en-US.js +190 -170
- package/src/translations/en-US.js.map +1 -1
- package/src/translations/es.d.ts +2 -1
- package/src/translations/es.d.ts.map +1 -1
- package/src/translations/es.js +190 -170
- package/src/translations/es.js.map +1 -1
- package/src/translations/fr.d.ts +2 -1
- package/src/translations/fr.d.ts.map +1 -1
- package/src/translations/fr.js +190 -170
- package/src/translations/fr.js.map +1 -1
- package/src/translations/ja.d.ts +2 -1
- package/src/translations/ja.d.ts.map +1 -1
- package/src/translations/ja.js +189 -170
- package/src/translations/ja.js.map +1 -1
- package/src/translations/uk.d.ts +2 -1
- package/src/translations/uk.d.ts.map +1 -1
- package/src/translations/uk.js +192 -170
- package/src/translations/uk.js.map +1 -1
- package/src/translations/zh-cn.d.ts +2 -1
- package/src/translations/zh-cn.d.ts.map +1 -1
- package/src/translations/zh-cn.js +189 -170
- package/src/translations/zh-cn.js.map +1 -1
- package/src/types/deep-partial.js +1 -2
- package/src/types.d.ts +31 -0
- package/src/types.d.ts.map +1 -1
- package/src/types.js +1 -2
- package/src/utils.js +59 -77
- package/src/utils.js.map +1 -1
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { IConstants } from './constants';
|
|
2
|
+
/**
|
|
3
|
+
* An invariant is a relationship between configuration values that must always hold true.
|
|
4
|
+
* Unlike simple property validation, invariants check consistency across multiple related values.
|
|
5
|
+
*
|
|
6
|
+
* Example: MEMBER_ID_LENGTH must equal idProvider.byteLength
|
|
7
|
+
*
|
|
8
|
+
* Invariants help catch configuration errors that simple property validation would miss,
|
|
9
|
+
* such as the 12 vs 32 byte discrepancy we encountered.
|
|
10
|
+
*/
|
|
11
|
+
export interface IInvariant {
|
|
12
|
+
/**
|
|
13
|
+
* Unique name for this invariant (used in error messages)
|
|
14
|
+
*/
|
|
15
|
+
readonly name: string;
|
|
16
|
+
/**
|
|
17
|
+
* Human-readable description of what this invariant validates
|
|
18
|
+
*/
|
|
19
|
+
readonly description: string;
|
|
20
|
+
/**
|
|
21
|
+
* Check if the invariant holds for the given configuration
|
|
22
|
+
* @returns true if invariant is satisfied, false otherwise
|
|
23
|
+
*/
|
|
24
|
+
check(config: IConstants): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Generate a detailed error message explaining why the invariant failed
|
|
27
|
+
* @param config The configuration that failed validation
|
|
28
|
+
* @returns Error message with actual vs expected values
|
|
29
|
+
*/
|
|
30
|
+
errorMessage(config: IConstants): string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Base class for invariants with common utilities
|
|
34
|
+
*/
|
|
35
|
+
export declare abstract class BaseInvariant implements IInvariant {
|
|
36
|
+
readonly name: string;
|
|
37
|
+
readonly description: string;
|
|
38
|
+
constructor(name: string, description: string);
|
|
39
|
+
abstract check(config: IConstants): boolean;
|
|
40
|
+
abstract errorMessage(config: IConstants): string;
|
|
41
|
+
/**
|
|
42
|
+
* Helper to format error messages consistently
|
|
43
|
+
*/
|
|
44
|
+
protected formatError(property1: string, value1: unknown, property2: string, value2: unknown): string;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=invariant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invariant.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/invariant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC;IAEnC;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC;CAC1C;AAED;;GAEG;AACH,8BAAsB,aAAc,YAAW,UAAU;aAErC,IAAI,EAAE,MAAM;aACZ,WAAW,EAAE,MAAM;gBADnB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM;IAGrC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAC3C,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAEjD;;OAEG;IACH,SAAS,CAAC,WAAW,CACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,GACd,MAAM;CAGV"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for invariants with common utilities
|
|
3
|
+
*/
|
|
4
|
+
export class BaseInvariant {
|
|
5
|
+
name;
|
|
6
|
+
description;
|
|
7
|
+
constructor(name, description) {
|
|
8
|
+
this.name = name;
|
|
9
|
+
this.description = description;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Helper to format error messages consistently
|
|
13
|
+
*/
|
|
14
|
+
formatError(property1, value1, property2, value2) {
|
|
15
|
+
return `Invariant '${this.name}' failed: ${property1} (${value1}) must equal ${property2} (${value2})`;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=invariant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invariant.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/invariant.ts"],"names":[],"mappings":"AAoCA;;GAEG;AACH,MAAM,OAAgB,aAAa;IAEf;IACA;IAFlB,YACkB,IAAY,EACZ,WAAmB;QADnB,SAAI,GAAJ,IAAI,CAAQ;QACZ,gBAAW,GAAX,WAAW,CAAQ;IAClC,CAAC;IAKJ;;OAEG;IACO,WAAW,CACnB,SAAiB,EACjB,MAAe,EACf,SAAiB,EACjB,MAAe;QAEf,OAAO,cAAc,IAAI,CAAC,IAAI,aAAa,SAAS,KAAK,MAAM,gBAAgB,SAAS,KAAK,MAAM,GAAG,CAAC;IACzG,CAAC;CACF"}
|
|
@@ -29,7 +29,7 @@ export interface IMultiRecipientChunkHeader {
|
|
|
29
29
|
* Recipient header (variable size)
|
|
30
30
|
*/
|
|
31
31
|
export interface IRecipientHeader {
|
|
32
|
-
/** Recipient ID (
|
|
32
|
+
/** Recipient ID (size determined by ID provider) */
|
|
33
33
|
id: Uint8Array;
|
|
34
34
|
/** Encrypted symmetric key size (2 bytes) */
|
|
35
35
|
keySize: number;
|
|
@@ -50,16 +50,40 @@ export interface IMultiRecipientChunk {
|
|
|
50
50
|
recipientCount: number;
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
53
|
-
*
|
|
53
|
+
* Multi-recipient format constants structure
|
|
54
54
|
*/
|
|
55
|
-
export
|
|
56
|
-
readonly MAGIC:
|
|
57
|
-
readonly VERSION:
|
|
58
|
-
readonly HEADER_SIZE:
|
|
59
|
-
readonly RECIPIENT_ID_SIZE:
|
|
60
|
-
readonly KEY_SIZE_BYTES:
|
|
61
|
-
readonly FLAG_IS_LAST:
|
|
62
|
-
readonly FLAG_HAS_CHECKSUM:
|
|
63
|
-
readonly MAX_RECIPIENTS:
|
|
64
|
-
}
|
|
55
|
+
export interface IMultiRecipientConstants {
|
|
56
|
+
readonly MAGIC: number;
|
|
57
|
+
readonly VERSION: number;
|
|
58
|
+
readonly HEADER_SIZE: number;
|
|
59
|
+
readonly RECIPIENT_ID_SIZE: number;
|
|
60
|
+
readonly KEY_SIZE_BYTES: number;
|
|
61
|
+
readonly FLAG_IS_LAST: number;
|
|
62
|
+
readonly FLAG_HAS_CHECKSUM: number;
|
|
63
|
+
readonly MAX_RECIPIENTS: number;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Get multi-recipient constants for a specific recipient ID size.
|
|
67
|
+
* This allows the format to adapt to different ID providers.
|
|
68
|
+
*
|
|
69
|
+
* @param recipientIdSize - The byte length of recipient IDs (from ID provider)
|
|
70
|
+
* @returns Frozen constants object for the multi-recipient format
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* // For ObjectID (12 bytes)
|
|
75
|
+
* const constants = getMultiRecipientConstants(12);
|
|
76
|
+
*
|
|
77
|
+
* // For GUID (16 bytes)
|
|
78
|
+
* const constants = getMultiRecipientConstants(16);
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare function getMultiRecipientConstants(recipientIdSize: number): IMultiRecipientConstants;
|
|
82
|
+
/**
|
|
83
|
+
* Default multi-recipient constants using ObjectID size (12 bytes).
|
|
84
|
+
*
|
|
85
|
+
* @deprecated Use getMultiRecipientConstants(config.idProvider.byteLength) instead
|
|
86
|
+
* for dynamic ID size support. This constant is provided for backward compatibility only.
|
|
87
|
+
*/
|
|
88
|
+
export declare const MULTI_RECIPIENT_CONSTANTS: IMultiRecipientConstants;
|
|
65
89
|
//# sourceMappingURL=multi-recipient-chunk.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-recipient-chunk.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/multi-recipient-chunk.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,
|
|
1
|
+
{"version":3,"file":"multi-recipient-chunk.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/multi-recipient-chunk.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,EAAE,EAAE,UAAU,CAAC;IACf,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,YAAY,EAAE,UAAU,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,IAAI,EAAE,UAAU,CAAC;IACjB,qCAAqC;IACrC,MAAM,EAAE,OAAO,CAAC;IAChB,2BAA2B;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,MAAM,GACtB,wBAAwB,CAiB1B;AAED;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,0BAAiC,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Multi-recipient encrypted chunk format
|
|
4
3
|
*
|
|
@@ -7,19 +6,42 @@
|
|
|
7
6
|
* - Recipient headers (variable): encrypted symmetric keys for each recipient
|
|
8
7
|
* - Encrypted data (variable): data encrypted with symmetric key
|
|
9
8
|
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.MULTI_RECIPIENT_CONSTANTS = void 0;
|
|
12
9
|
/**
|
|
13
|
-
*
|
|
10
|
+
* Get multi-recipient constants for a specific recipient ID size.
|
|
11
|
+
* This allows the format to adapt to different ID providers.
|
|
12
|
+
*
|
|
13
|
+
* @param recipientIdSize - The byte length of recipient IDs (from ID provider)
|
|
14
|
+
* @returns Frozen constants object for the multi-recipient format
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* // For ObjectID (12 bytes)
|
|
19
|
+
* const constants = getMultiRecipientConstants(12);
|
|
20
|
+
*
|
|
21
|
+
* // For GUID (16 bytes)
|
|
22
|
+
* const constants = getMultiRecipientConstants(16);
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export function getMultiRecipientConstants(recipientIdSize) {
|
|
26
|
+
if (!Number.isInteger(recipientIdSize) || recipientIdSize < 1 || recipientIdSize > 255) {
|
|
27
|
+
throw new Error(`Invalid recipientIdSize: ${recipientIdSize}. Must be an integer between 1 and 255.`);
|
|
28
|
+
}
|
|
29
|
+
return Object.freeze({
|
|
30
|
+
MAGIC: 0x4D524543, // "MREC"
|
|
31
|
+
VERSION: 0x0001,
|
|
32
|
+
HEADER_SIZE: 32,
|
|
33
|
+
RECIPIENT_ID_SIZE: recipientIdSize,
|
|
34
|
+
KEY_SIZE_BYTES: 2,
|
|
35
|
+
FLAG_IS_LAST: 0x01,
|
|
36
|
+
FLAG_HAS_CHECKSUM: 0x02,
|
|
37
|
+
MAX_RECIPIENTS: 65535,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Default multi-recipient constants using ObjectID size (12 bytes).
|
|
42
|
+
*
|
|
43
|
+
* @deprecated Use getMultiRecipientConstants(config.idProvider.byteLength) instead
|
|
44
|
+
* for dynamic ID size support. This constant is provided for backward compatibility only.
|
|
14
45
|
*/
|
|
15
|
-
|
|
16
|
-
MAGIC: 0x4D524543, // "MREC"
|
|
17
|
-
VERSION: 0x0001,
|
|
18
|
-
HEADER_SIZE: 32,
|
|
19
|
-
RECIPIENT_ID_SIZE: 32,
|
|
20
|
-
KEY_SIZE_BYTES: 2,
|
|
21
|
-
FLAG_IS_LAST: 0x01,
|
|
22
|
-
FLAG_HAS_CHECKSUM: 0x02,
|
|
23
|
-
MAX_RECIPIENTS: 65535,
|
|
24
|
-
};
|
|
46
|
+
export const MULTI_RECIPIENT_CONSTANTS = getMultiRecipientConstants(12);
|
|
25
47
|
//# sourceMappingURL=multi-recipient-chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-recipient-chunk.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/multi-recipient-chunk.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"multi-recipient-chunk.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/multi-recipient-chunk.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA8DH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,0BAA0B,CACxC,eAAuB;IAEvB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,eAAe,GAAG,CAAC,IAAI,eAAe,GAAG,GAAG,EAAE,CAAC;QACvF,MAAM,IAAI,KAAK,CACb,4BAA4B,eAAe,yCAAyC,CACrF,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,UAAU,EAAE,SAAS;QAC5B,OAAO,EAAE,MAAM;QACf,WAAW,EAAE,EAAE;QACf,iBAAiB,EAAE,eAAe;QAClC,cAAc,EAAE,CAAC;QACjB,YAAY,EAAE,IAAI;QAClB,iBAAiB,EAAE,IAAI;QACvB,cAAc,EAAE,KAAK;KACtB,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,0BAA0B,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_STREAM_CONFIG = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Default streaming configuration
|
|
6
3
|
*/
|
|
7
|
-
|
|
4
|
+
export const DEFAULT_STREAM_CONFIG = {
|
|
8
5
|
chunkSize: 1024 * 1024, // 1MB
|
|
9
6
|
includeChecksums: false,
|
|
10
7
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-config.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/stream-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stream-config.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/stream-config.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAkB;IAClD,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM;IAC9B,gBAAgB,EAAE,KAAK;CACxB,CAAC"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.STREAM_HEADER_CONSTANTS = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Constants for stream header format
|
|
6
3
|
*/
|
|
7
|
-
|
|
4
|
+
export const STREAM_HEADER_CONSTANTS = {
|
|
8
5
|
MAGIC: 0x45435354, // "ECST"
|
|
9
6
|
VERSION: 0x0001,
|
|
10
7
|
HEADER_SIZE: 128,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-header.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/stream-header.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stream-header.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/stream-header.ts"],"names":[],"mappings":"AAsBA;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,KAAK,EAAE,UAAU,EAAE,SAAS;IAC5B,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,GAAG;CACR,CAAC"}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Service Container for dependency injection
|
|
4
3
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const ecies_string_key_1 = require("../enumerations/ecies-string-key");
|
|
10
|
-
var CryptoServiceKey;
|
|
4
|
+
import { Constants } from '../constants';
|
|
5
|
+
import { getEciesI18nEngine, EciesComponentId } from '../i18n-setup';
|
|
6
|
+
import { EciesStringKey } from '../enumerations/ecies-string-key';
|
|
7
|
+
export var CryptoServiceKey;
|
|
11
8
|
(function (CryptoServiceKey) {
|
|
12
9
|
CryptoServiceKey["ECIES"] = "ecies";
|
|
13
10
|
CryptoServiceKey["PBKDF2"] = "pbkdf2";
|
|
@@ -15,8 +12,8 @@ var CryptoServiceKey;
|
|
|
15
12
|
CryptoServiceKey["PASSWORD_LOGIN"] = "password-login";
|
|
16
13
|
CryptoServiceKey["FILE"] = "file";
|
|
17
14
|
CryptoServiceKey["XOR"] = "xor";
|
|
18
|
-
})(CryptoServiceKey || (
|
|
19
|
-
class CryptoContainer {
|
|
15
|
+
})(CryptoServiceKey || (CryptoServiceKey = {}));
|
|
16
|
+
export class CryptoContainer {
|
|
20
17
|
services = new Map();
|
|
21
18
|
config;
|
|
22
19
|
i18n;
|
|
@@ -25,13 +22,13 @@ class CryptoContainer {
|
|
|
25
22
|
this.i18n = i18n;
|
|
26
23
|
this.initServices();
|
|
27
24
|
}
|
|
28
|
-
static create(config =
|
|
29
|
-
return new CryptoContainer(config, i18n ||
|
|
25
|
+
static create(config = Constants, i18n) {
|
|
26
|
+
return new CryptoContainer(config, i18n || getEciesI18nEngine());
|
|
30
27
|
}
|
|
31
28
|
get(key) {
|
|
32
29
|
const service = this.services.get(key);
|
|
33
30
|
if (!service) {
|
|
34
|
-
throw new Error(this.i18n.translate(
|
|
31
|
+
throw new Error(this.i18n.translate(EciesComponentId, EciesStringKey.Error_Container_ServiceNotFoundTemplate, { service: key }));
|
|
35
32
|
}
|
|
36
33
|
return service;
|
|
37
34
|
}
|
|
@@ -46,5 +43,4 @@ class CryptoContainer {
|
|
|
46
43
|
return this.i18n;
|
|
47
44
|
}
|
|
48
45
|
}
|
|
49
|
-
exports.CryptoContainer = CryptoContainer;
|
|
50
46
|
//# sourceMappingURL=crypto-container.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-container.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/lib/crypto-container.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"crypto-container.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/lib/crypto-container.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAElE,MAAM,CAAN,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,qCAAiB,CAAA;IACjB,uCAAmB,CAAA;IACnB,qDAAiC,CAAA;IACjC,iCAAa,CAAA;IACb,+BAAW,CAAA;AACb,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,QAO3B;AAED,MAAM,OAAO,eAAe;IAClB,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;IAChD,MAAM,CAAa;IACnB,IAAI,CAAa;IAEzB,YAAoB,MAAkB,EAAE,IAAgB;QACtD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,SAAqB,SAAS,EAAE,IAAiB;QAC7D,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,IAAI,IAAI,kBAAkB,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,GAAG,CAAI,GAAqB;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,cAAc,CAAC,uCAAuC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACnI,CAAC;QACD,OAAO,OAAY,CAAC;IACtB,CAAC;IAEO,YAAY;QAClB,gEAAgE;QAChE,wDAAwD;IAC1D,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF"}
|