@digitaldefiance/ecies-lib 1.1.24 → 1.1.25
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 +5 -4
- package/src/constants.d.ts +46 -0
- package/src/constants.d.ts.map +1 -0
- package/src/constants.js +358 -0
- package/src/constants.js.map +1 -0
- package/src/email-string.d.ts +42 -0
- package/src/email-string.d.ts.map +1 -0
- package/src/email-string.js +73 -0
- package/src/email-string.js.map +1 -0
- package/src/enumerations/ecies-encryption-type.d.ts +15 -0
- package/src/enumerations/ecies-encryption-type.d.ts.map +1 -0
- package/src/enumerations/ecies-encryption-type.js +71 -0
- package/src/enumerations/ecies-encryption-type.js.map +1 -0
- package/src/enumerations/ecies-error-type.d.ts +32 -0
- package/src/enumerations/ecies-error-type.d.ts.map +1 -0
- package/src/enumerations/ecies-error-type.js +36 -0
- package/src/enumerations/ecies-error-type.js.map +1 -0
- package/src/enumerations/ecies-string-key.d.ts +96 -0
- package/src/enumerations/ecies-string-key.d.ts.map +1 -0
- package/src/enumerations/ecies-string-key.js +105 -0
- package/src/enumerations/ecies-string-key.js.map +1 -0
- 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 +31 -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 +11 -0
- package/src/enumerations/guid-error-type.js.map +1 -0
- package/src/enumerations/{index.ts → index.d.ts} +1 -0
- package/src/enumerations/index.d.ts.map +1 -0
- package/src/enumerations/index.js +18 -0
- package/src/enumerations/index.js.map +1 -0
- package/src/enumerations/invalid-email-type.d.ts +6 -0
- package/src/enumerations/invalid-email-type.d.ts.map +1 -0
- package/src/enumerations/invalid-email-type.js +10 -0
- package/src/enumerations/invalid-email-type.js.map +1 -0
- package/src/enumerations/length-encoding-type.d.ts +7 -0
- package/src/enumerations/length-encoding-type.d.ts.map +1 -0
- package/src/enumerations/length-encoding-type.js +11 -0
- package/src/enumerations/length-encoding-type.js.map +1 -0
- package/src/enumerations/length-error-type.d.ts +6 -0
- package/src/enumerations/length-error-type.d.ts.map +1 -0
- package/src/enumerations/length-error-type.js +10 -0
- package/src/enumerations/length-error-type.js.map +1 -0
- package/src/enumerations/member-error-type.d.ts +87 -0
- package/src/enumerations/member-error-type.d.ts.map +1 -0
- package/src/enumerations/member-error-type.js +91 -0
- package/src/enumerations/member-error-type.js.map +1 -0
- package/src/enumerations/{member-type.ts → member-type.d.ts} +6 -7
- package/src/enumerations/member-type.d.ts.map +1 -0
- package/src/enumerations/member-type.js +19 -0
- package/src/enumerations/member-type.js.map +1 -0
- package/src/enumerations/password-login-error-type.d.ts +5 -0
- package/src/enumerations/password-login-error-type.d.ts.map +1 -0
- package/src/enumerations/password-login-error-type.js +9 -0
- package/src/enumerations/password-login-error-type.js.map +1 -0
- package/src/enumerations/pbkdf2-error-type.d.ts +6 -0
- package/src/enumerations/pbkdf2-error-type.d.ts.map +1 -0
- package/src/enumerations/pbkdf2-error-type.js +10 -0
- package/src/enumerations/pbkdf2-error-type.js.map +1 -0
- package/src/enumerations/pbkdf2-profile.d.ts +6 -0
- package/src/enumerations/pbkdf2-profile.d.ts.map +1 -0
- package/src/enumerations/pbkdf2-profile.js +10 -0
- package/src/enumerations/pbkdf2-profile.js.map +1 -0
- package/src/enumerations/secure-storage-error-type.d.ts +6 -0
- package/src/enumerations/secure-storage-error-type.d.ts.map +1 -0
- package/src/enumerations/secure-storage-error-type.js +10 -0
- package/src/enumerations/secure-storage-error-type.js.map +1 -0
- package/src/errors/disposed.d.ts +4 -0
- package/src/errors/disposed.d.ts.map +1 -0
- package/src/errors/disposed.js +20 -0
- package/src/errors/disposed.js.map +1 -0
- package/src/errors/ecies.d.ts +7 -0
- package/src/errors/ecies.d.ts.map +1 -0
- package/src/errors/ecies.js +15 -0
- package/src/errors/ecies.js.map +1 -0
- package/src/errors/guid.d.ts +15 -0
- package/src/errors/guid.d.ts.map +1 -0
- package/src/errors/guid.js +26 -0
- package/src/errors/guid.js.map +1 -0
- package/src/errors/{index.ts → index.d.ts} +1 -0
- package/src/errors/index.d.ts.map +1 -0
- package/src/errors/index.js +12 -0
- package/src/errors/index.js.map +1 -0
- package/src/errors/invalid-email.d.ts +7 -0
- package/src/errors/invalid-email.d.ts.map +1 -0
- package/src/errors/invalid-email.js +14 -0
- package/src/errors/invalid-email.js.map +1 -0
- package/src/errors/length.d.ts +7 -0
- package/src/errors/length.d.ts.map +1 -0
- package/src/errors/length.js +14 -0
- package/src/errors/length.js.map +1 -0
- package/src/errors/member.d.ts +7 -0
- package/src/errors/member.d.ts.map +1 -0
- package/src/errors/member.js +14 -0
- package/src/errors/member.js.map +1 -0
- package/src/errors/pbkdf2.d.ts +7 -0
- package/src/errors/pbkdf2.d.ts.map +1 -0
- package/src/errors/pbkdf2.js +14 -0
- package/src/errors/pbkdf2.js.map +1 -0
- package/src/errors/secure-storage.d.ts +7 -0
- package/src/errors/secure-storage.d.ts.map +1 -0
- package/src/errors/secure-storage.js +15 -0
- package/src/errors/secure-storage.js.map +1 -0
- package/src/errors/simple-ecies.d.ts +6 -0
- package/src/errors/simple-ecies.d.ts.map +1 -0
- package/src/errors/simple-ecies.js +15 -0
- package/src/errors/simple-ecies.js.map +1 -0
- package/src/errors/simple-test-error.d.ts +4 -0
- package/src/errors/simple-test-error.d.ts.map +1 -0
- package/src/errors/simple-test-error.js +11 -0
- package/src/errors/simple-test-error.js.map +1 -0
- package/src/guid.d.ts +153 -0
- package/src/guid.d.ts.map +1 -0
- package/src/guid.js +615 -0
- package/src/guid.js.map +1 -0
- package/src/i18n-setup.d.ts +24 -0
- package/src/i18n-setup.d.ts.map +1 -0
- package/src/i18n-setup.js +837 -0
- package/src/i18n-setup.js.map +1 -0
- package/src/{index.ts → index.d.ts} +1 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.js +19 -0
- package/src/index.js.map +1 -0
- package/src/interfaces/checksum-config.d.ts +5 -0
- package/src/interfaces/checksum-config.d.ts.map +1 -0
- package/src/interfaces/checksum-config.js +3 -0
- package/src/interfaces/checksum-config.js.map +1 -0
- package/src/interfaces/checksum-consts.d.ts +11 -0
- package/src/interfaces/checksum-consts.d.ts.map +1 -0
- package/src/interfaces/checksum-consts.js +3 -0
- package/src/interfaces/checksum-consts.js.map +1 -0
- package/src/interfaces/constants.d.ts +45 -0
- package/src/interfaces/constants.d.ts.map +1 -0
- package/src/interfaces/constants.js +3 -0
- package/src/interfaces/constants.js.map +1 -0
- package/src/interfaces/ecies-config.d.ts +9 -0
- package/src/interfaces/ecies-config.d.ts.map +1 -0
- package/src/interfaces/ecies-config.js +3 -0
- package/src/interfaces/ecies-config.js.map +1 -0
- package/src/interfaces/ecies-consts.d.ts +58 -0
- package/src/interfaces/ecies-consts.d.ts.map +1 -0
- package/src/interfaces/ecies-consts.js +3 -0
- package/src/interfaces/ecies-consts.js.map +1 -0
- package/src/interfaces/ecies-file-service.d.ts +7 -0
- package/src/interfaces/ecies-file-service.d.ts.map +1 -0
- package/src/interfaces/ecies-file-service.js +3 -0
- package/src/interfaces/ecies-file-service.js.map +1 -0
- package/src/interfaces/guid.d.ts +45 -0
- package/src/interfaces/guid.d.ts.map +1 -0
- package/src/interfaces/guid.js +3 -0
- package/src/interfaces/guid.js.map +1 -0
- package/src/interfaces/{index.ts → index.d.ts} +1 -0
- package/src/interfaces/index.d.ts.map +1 -0
- package/src/interfaces/index.js +17 -0
- package/src/interfaces/index.js.map +1 -0
- package/src/interfaces/library-error.d.ts +23 -0
- package/src/interfaces/library-error.d.ts.map +1 -0
- package/src/interfaces/library-error.js +3 -0
- package/src/interfaces/library-error.js.map +1 -0
- package/src/interfaces/member-operational.d.ts +40 -0
- package/src/interfaces/member-operational.d.ts.map +1 -0
- package/src/interfaces/member-operational.js +3 -0
- package/src/interfaces/member-operational.js.map +1 -0
- package/src/interfaces/{member-storage.ts → member-storage.d.ts} +10 -11
- package/src/interfaces/member-storage.d.ts.map +1 -0
- package/src/interfaces/member-storage.js +3 -0
- package/src/interfaces/member-storage.js.map +1 -0
- package/src/interfaces/{member-with-mnemonic.ts → member-with-mnemonic.d.ts} +3 -3
- package/src/interfaces/member-with-mnemonic.d.ts.map +1 -0
- package/src/interfaces/member-with-mnemonic.js +3 -0
- package/src/interfaces/member-with-mnemonic.js.map +1 -0
- package/src/interfaces/pbkdf2-config.d.ts +7 -0
- package/src/interfaces/pbkdf2-config.d.ts.map +1 -0
- package/src/interfaces/pbkdf2-config.js +3 -0
- package/src/interfaces/pbkdf2-config.js.map +1 -0
- package/src/interfaces/pbkdf2-consts.d.ts +9 -0
- package/src/interfaces/pbkdf2-consts.d.ts.map +1 -0
- package/src/interfaces/pbkdf2-consts.js +3 -0
- package/src/interfaces/pbkdf2-consts.js.map +1 -0
- package/src/interfaces/pbkdf2-result.d.ts +6 -0
- package/src/interfaces/pbkdf2-result.d.ts.map +1 -0
- package/src/interfaces/pbkdf2-result.js +3 -0
- package/src/interfaces/pbkdf2-result.js.map +1 -0
- package/src/member.d.ts +66 -0
- package/src/member.d.ts.map +1 -0
- package/src/member.js +269 -0
- package/src/member.js.map +1 -0
- package/src/{pbkdf2-profiles.ts → pbkdf2-profiles.d.ts} +2 -2
- package/src/pbkdf2-profiles.d.ts.map +1 -0
- package/src/pbkdf2-profiles.js +3 -0
- package/src/pbkdf2-profiles.js.map +1 -0
- package/src/phone-number.d.ts +6 -0
- package/src/phone-number.d.ts.map +1 -0
- package/src/phone-number.js +22 -0
- package/src/phone-number.js.map +1 -0
- package/src/regexes.d.ts +7 -0
- package/src/regexes.d.ts.map +1 -0
- package/src/regexes.js +10 -0
- package/src/regexes.js.map +1 -0
- package/src/secure-buffer.d.ts +38 -0
- package/src/secure-buffer.d.ts.map +1 -0
- package/src/secure-buffer.js +168 -0
- package/src/secure-buffer.js.map +1 -0
- package/src/secure-string.d.ts +39 -0
- package/src/secure-string.d.ts.map +1 -0
- package/src/secure-string.js +195 -0
- package/src/secure-string.js.map +1 -0
- package/src/services/aes-gcm.d.ts +57 -0
- package/src/services/aes-gcm.d.ts.map +1 -0
- package/src/services/aes-gcm.js +111 -0
- package/src/services/aes-gcm.js.map +1 -0
- package/src/services/ecies/crypto-core.d.ts +51 -0
- package/src/services/ecies/crypto-core.d.ts.map +1 -0
- package/src/services/ecies/crypto-core.js +139 -0
- package/src/services/ecies/crypto-core.js.map +1 -0
- package/src/services/ecies/example.d.ts +25 -0
- package/src/services/ecies/example.d.ts.map +1 -0
- package/src/services/ecies/example.js +128 -0
- package/src/services/ecies/example.js.map +1 -0
- package/src/services/ecies/file.d.ts +18 -0
- package/src/services/ecies/file.d.ts.map +1 -0
- package/src/services/ecies/file.js +110 -0
- package/src/services/ecies/file.js.map +1 -0
- package/src/services/ecies/{index.ts → index.d.ts} +1 -3
- package/src/services/ecies/index.d.ts.map +1 -0
- package/src/services/ecies/index.js +44 -0
- package/src/services/ecies/index.js.map +1 -0
- package/src/services/ecies/integration.d.ts +59 -0
- package/src/services/ecies/integration.d.ts.map +1 -0
- package/src/services/ecies/integration.js +172 -0
- package/src/services/ecies/integration.js.map +1 -0
- package/src/services/ecies/interfaces.d.ts +51 -0
- package/src/services/ecies/interfaces.d.ts.map +1 -0
- package/src/services/ecies/interfaces.js +6 -0
- package/src/services/ecies/interfaces.js.map +1 -0
- package/src/services/ecies/manual-test.d.ts +29 -0
- package/src/services/ecies/manual-test.d.ts.map +1 -0
- package/src/services/ecies/manual-test.js +171 -0
- package/src/services/ecies/manual-test.js.map +1 -0
- package/src/services/ecies/multi-recipient.d.ts +52 -0
- package/src/services/ecies/multi-recipient.d.ts.map +1 -0
- package/src/services/ecies/multi-recipient.js +243 -0
- package/src/services/ecies/multi-recipient.js.map +1 -0
- package/src/services/ecies/service.d.ts +104 -0
- package/src/services/ecies/service.d.ts.map +1 -0
- package/src/services/ecies/service.js +192 -0
- package/src/services/ecies/service.js.map +1 -0
- package/src/services/ecies/signature.d.ts +27 -0
- package/src/services/ecies/signature.d.ts.map +1 -0
- package/src/services/ecies/signature.js +76 -0
- package/src/services/ecies/signature.js.map +1 -0
- package/src/services/ecies/single-recipient.d.ts +46 -0
- package/src/services/ecies/single-recipient.d.ts.map +1 -0
- package/src/services/ecies/single-recipient.js +212 -0
- package/src/services/ecies/single-recipient.js.map +1 -0
- package/src/services/{index.ts → index.d.ts} +1 -0
- package/src/services/index.d.ts.map +1 -0
- package/src/services/index.js +9 -0
- package/src/services/index.js.map +1 -0
- package/src/services/password-login.d.ts +49 -0
- package/src/services/password-login.d.ts.map +1 -0
- package/src/services/password-login.js +121 -0
- package/src/services/password-login.js.map +1 -0
- package/src/services/pbkdf2.d.ts +56 -0
- package/src/services/pbkdf2.d.ts.map +1 -0
- package/src/services/pbkdf2.js +114 -0
- package/src/services/pbkdf2.js.map +1 -0
- package/src/services/xor.d.ts +37 -0
- package/src/services/xor.d.ts.map +1 -0
- package/src/services/xor.js +67 -0
- package/src/services/xor.js.map +1 -0
- package/src/types/deep-partial.d.ts +4 -0
- package/src/types/deep-partial.d.ts.map +1 -0
- package/src/types/deep-partial.js +3 -0
- package/src/types/deep-partial.js.map +1 -0
- package/src/{types.ts → types.d.ts} +4 -10
- package/src/types.d.ts.map +1 -0
- package/src/types.js +3 -0
- package/src/types.js.map +1 -0
- package/src/utils.d.ts +68 -0
- package/src/utils.d.ts.map +1 -0
- package/src/utils.js +288 -0
- package/src/utils.js.map +1 -0
- package/LICENSE +0 -21
- package/src/constants.ts +0 -474
- package/src/email-string.ts +0 -83
- package/src/enumerations/ecies-encryption-type.ts +0 -102
- package/src/enumerations/ecies-error-type.ts +0 -31
- package/src/enumerations/ecies-string-key.ts +0 -108
- package/src/enumerations/guid-brand-type.ts +0 -26
- package/src/enumerations/guid-error-type.ts +0 -6
- package/src/enumerations/invalid-email-type.ts +0 -5
- package/src/enumerations/length-encoding-type.ts +0 -6
- package/src/enumerations/length-error-type.ts +0 -5
- package/src/enumerations/member-error-type.ts +0 -106
- package/src/enumerations/password-login-error-type.ts +0 -4
- package/src/enumerations/pbkdf2-error-type.ts +0 -5
- package/src/enumerations/pbkdf2-profile.ts +0 -5
- package/src/enumerations/secure-storage-error-type.ts +0 -5
- package/src/errors/disposed.ts +0 -15
- package/src/errors/ecies.ts +0 -34
- package/src/errors/guid.ts +0 -34
- package/src/errors/invalid-email.ts +0 -11
- package/src/errors/length.ts +0 -11
- package/src/errors/member.ts +0 -12
- package/src/errors/pbkdf2.ts +0 -12
- package/src/errors/secure-storage.ts +0 -13
- package/src/errors/simple-ecies.ts +0 -18
- package/src/errors/simple-test-error.ts +0 -6
- package/src/guid.ts +0 -800
- package/src/i18n-setup.ts +0 -1312
- package/src/interfaces/checksum-config.ts +0 -4
- package/src/interfaces/checksum-consts.ts +0 -13
- package/src/interfaces/constants.ts +0 -48
- package/src/interfaces/ecies-config.ts +0 -8
- package/src/interfaces/ecies-consts.ts +0 -70
- package/src/interfaces/ecies-file-service.ts +0 -6
- package/src/interfaces/guid.ts +0 -53
- package/src/interfaces/library-error.ts +0 -23
- package/src/interfaces/member-operational.ts +0 -54
- package/src/interfaces/pbkdf2-config.ts +0 -6
- package/src/interfaces/pbkdf2-consts.ts +0 -10
- package/src/interfaces/pbkdf2-result.ts +0 -5
- package/src/member.ts +0 -429
- package/src/phone-number.ts +0 -18
- package/src/regexes.ts +0 -10
- package/src/secure-buffer.ts +0 -183
- package/src/secure-string.ts +0 -229
- package/src/services/aes-gcm.ts +0 -177
- package/src/services/ecies/README.md +0 -147
- package/src/services/ecies/crypto-core.ts +0 -180
- package/src/services/ecies/example.ts +0 -185
- package/src/services/ecies/file.ts +0 -167
- package/src/services/ecies/integration.ts +0 -241
- package/src/services/ecies/interfaces.ts +0 -59
- package/src/services/ecies/manual-test.ts +0 -219
- package/src/services/ecies/multi-recipient.ts +0 -394
- package/src/services/ecies/service.ts +0 -317
- package/src/services/ecies/signature.ts +0 -93
- package/src/services/ecies/single-recipient.ts +0 -340
- package/src/services/password-login.ts +0 -228
- package/src/services/pbkdf2.ts +0 -172
- package/src/services/xor.ts +0 -65
- package/src/types/deep-partial.ts +0 -11
- package/src/utils.ts +0 -331
package/README.md
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digitaldefiance/ecies-lib",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.25",
|
|
4
4
|
"description": "Digital Defiance ECIES Library",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"types": "src/index.d.ts",
|
|
@@ -31,12 +31,13 @@
|
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"packageManager": "yarn@4.10.3",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@digitaldefiance/i18n-lib": "1.3.
|
|
34
|
+
"@digitaldefiance/i18n-lib": "1.3.14",
|
|
35
35
|
"@ethereumjs/wallet": "^10.0.0",
|
|
36
36
|
"@noble/curves": "^2.0.1",
|
|
37
37
|
"@noble/hashes": "^2.0.1",
|
|
38
38
|
"@scure/bip32": "^2.0.0",
|
|
39
39
|
"bson": "^6.10.4",
|
|
40
40
|
"ts-brand": "^0.2.0"
|
|
41
|
-
}
|
|
42
|
-
|
|
41
|
+
},
|
|
42
|
+
"type": "commonjs"
|
|
43
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { IChecksumConsts } from './interfaces';
|
|
2
|
+
import { IConstants } from './interfaces/constants';
|
|
3
|
+
import { DeepPartial } from './types/deep-partial';
|
|
4
|
+
import { IECIESConstants } from './interfaces/ecies-consts';
|
|
5
|
+
import { IPBkdf2Consts } from './interfaces/pbkdf2-consts';
|
|
6
|
+
import { Pbkdf2Profiles } from './pbkdf2-profiles';
|
|
7
|
+
export declare const UINT8_SIZE: number;
|
|
8
|
+
export declare const UINT16_SIZE: number;
|
|
9
|
+
export declare const UINT16_MAX: number;
|
|
10
|
+
export declare const UINT32_SIZE: number;
|
|
11
|
+
export declare const UINT32_MAX: number;
|
|
12
|
+
export declare const UINT64_SIZE: number;
|
|
13
|
+
export declare const UINT64_MAX: bigint;
|
|
14
|
+
export declare const GUID_SIZE: number;
|
|
15
|
+
/**
|
|
16
|
+
* Constants for checksum operations
|
|
17
|
+
* These values are critical for data integrity and MUST NOT be changed
|
|
18
|
+
* in an already established system as it will break all existing checksums.
|
|
19
|
+
*/
|
|
20
|
+
export declare const CHECKSUM: IChecksumConsts;
|
|
21
|
+
export declare const PBKDF2: IPBkdf2Consts;
|
|
22
|
+
export declare const PBKDF2_PROFILES: Pbkdf2Profiles;
|
|
23
|
+
export declare const ECIES: IECIESConstants;
|
|
24
|
+
export declare const Constants: IConstants;
|
|
25
|
+
export type ConfigurationKey = string | symbol;
|
|
26
|
+
export declare function createRuntimeConfiguration(overrides?: DeepPartial<IConstants>, base?: IConstants): IConstants;
|
|
27
|
+
export declare class ConstantsRegistry {
|
|
28
|
+
static readonly DEFAULT_KEY: ConfigurationKey;
|
|
29
|
+
static listKeys(): ConfigurationKey[];
|
|
30
|
+
static has(key: ConfigurationKey): boolean;
|
|
31
|
+
static get(key?: ConfigurationKey): IConstants;
|
|
32
|
+
static create(overrides?: DeepPartial<IConstants>, baseKey?: ConfigurationKey): IConstants;
|
|
33
|
+
static register(key: ConfigurationKey, configOrOverrides?: DeepPartial<IConstants> | IConstants, options?: {
|
|
34
|
+
baseKey?: ConfigurationKey;
|
|
35
|
+
}): IConstants;
|
|
36
|
+
static unregister(key: ConfigurationKey): boolean;
|
|
37
|
+
static clear(): void;
|
|
38
|
+
}
|
|
39
|
+
export declare function getRuntimeConfiguration(key?: ConfigurationKey): IConstants;
|
|
40
|
+
export declare function registerRuntimeConfiguration(key: ConfigurationKey, configOrOverrides?: DeepPartial<IConstants> | IConstants, options?: {
|
|
41
|
+
baseKey?: ConfigurationKey;
|
|
42
|
+
}): IConstants;
|
|
43
|
+
export declare function unregisterRuntimeConfiguration(key: ConfigurationKey): boolean;
|
|
44
|
+
export declare function clearRuntimeConfigurations(): void;
|
|
45
|
+
export { PASSWORD_REGEX, MNEMONIC_REGEX } from './regexes';
|
|
46
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/constants.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,eAAO,MAAM,UAAU,EAAE,MAAmB,CAAC;AAC7C,eAAO,MAAM,WAAW,EAAE,MAAmB,CAAC;AAC9C,eAAO,MAAM,UAAU,EAAE,MAAuB,CAAC;AACjD,eAAO,MAAM,WAAW,EAAE,MAAmB,CAAC;AAC9C,eAAO,MAAM,UAAU,EAAE,MAA4B,CAAC;AACtD,eAAO,MAAM,WAAW,EAAE,MAAmB,CAAC;AAC9C,eAAO,MAAM,UAAU,EAAE,MAAuC,CAAC;AACjE,eAAO,MAAM,SAAS,EAAE,MAAoB,CAAC;AAW7C;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,eAYZ,CAAC;AAEZ,eAAO,MAAM,MAAM,EAAE,aAQV,CAAC;AAEZ,eAAO,MAAM,eAAe,EAAE,cAmBnB,CAAC;AAyBZ,eAAO,MAAM,KAAK,EAAE,eAoElB,CAAC;AAEH,eAAO,MAAM,SAAS,EAAE,UAoCb,CAAC;AAEZ,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,CAAC;AAuK/C,wBAAgB,0BAA0B,CACxC,SAAS,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,EACnC,IAAI,GAAE,UAAsB,GAC3B,UAAU,CAKZ;AAED,qBAAa,iBAAiB;IAC5B,gBAAuB,WAAW,mBAA6B;WAEjD,QAAQ,IAAI,gBAAgB,EAAE;WAI9B,GAAG,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO;WAInC,GAAG,CAAC,GAAG,GAAE,gBAA4C,GAAG,UAAU;WAOlE,MAAM,CAClB,SAAS,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,EACnC,OAAO,GAAE,gBAA4C,GACpD,UAAU;WAKC,QAAQ,CACpB,GAAG,EAAE,gBAAgB,EACrB,iBAAiB,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,UAAU,EACxD,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,gBAAgB,CAAA;KAAE,GACvC,UAAU;WAiBC,UAAU,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO;WAO1C,KAAK,IAAI,IAAI;CAI5B;AAED,wBAAgB,uBAAuB,CACrC,GAAG,GAAE,gBAA4C,GAChD,UAAU,CAEZ;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,gBAAgB,EACrB,iBAAiB,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,UAAU,EACxD,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAAE,GACvC,UAAU,CAEZ;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAET;AAED,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAED,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
|
package/src/constants.js
ADDED
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MNEMONIC_REGEX = exports.PASSWORD_REGEX = exports.ConstantsRegistry = exports.Constants = exports.ECIES = exports.PBKDF2_PROFILES = exports.PBKDF2 = exports.CHECKSUM = exports.GUID_SIZE = exports.UINT64_MAX = exports.UINT64_SIZE = exports.UINT32_MAX = exports.UINT32_SIZE = exports.UINT16_MAX = exports.UINT16_SIZE = exports.UINT8_SIZE = void 0;
|
|
4
|
+
exports.createRuntimeConfiguration = createRuntimeConfiguration;
|
|
5
|
+
exports.getRuntimeConfiguration = getRuntimeConfiguration;
|
|
6
|
+
exports.registerRuntimeConfiguration = registerRuntimeConfiguration;
|
|
7
|
+
exports.unregisterRuntimeConfiguration = unregisterRuntimeConfiguration;
|
|
8
|
+
exports.clearRuntimeConfigurations = clearRuntimeConfigurations;
|
|
9
|
+
const bson_1 = require("bson");
|
|
10
|
+
const enumerations_1 = require("./enumerations");
|
|
11
|
+
const pbkdf2_profile_1 = require("./enumerations/pbkdf2-profile");
|
|
12
|
+
const ecies_1 = require("./errors/ecies");
|
|
13
|
+
const i18n_setup_1 = require("./i18n-setup");
|
|
14
|
+
const regexes_1 = require("./regexes");
|
|
15
|
+
exports.UINT8_SIZE = 1;
|
|
16
|
+
exports.UINT16_SIZE = 2;
|
|
17
|
+
exports.UINT16_MAX = 65535;
|
|
18
|
+
exports.UINT32_SIZE = 4;
|
|
19
|
+
exports.UINT32_MAX = 4294967295;
|
|
20
|
+
exports.UINT64_SIZE = 8;
|
|
21
|
+
exports.UINT64_MAX = 18446744073709551615n;
|
|
22
|
+
exports.GUID_SIZE = 16;
|
|
23
|
+
const objectIdLength = new bson_1.ObjectId().toHexString().length / 2;
|
|
24
|
+
if (objectIdLength !== 12) {
|
|
25
|
+
console.warn('ObjectID length may have changed, breaking encryption', objectIdLength);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Constants for checksum operations
|
|
29
|
+
* These values are critical for data integrity and MUST NOT be changed
|
|
30
|
+
* in an already established system as it will break all existing checksums.
|
|
31
|
+
*/
|
|
32
|
+
exports.CHECKSUM = Object.freeze({
|
|
33
|
+
/** Default hash bits for SHA3 */
|
|
34
|
+
SHA3_DEFAULT_HASH_BITS: 512,
|
|
35
|
+
/** Length of a SHA3 checksum buffer in bytes */
|
|
36
|
+
SHA3_BUFFER_LENGTH: 64,
|
|
37
|
+
/** algorithm to use for checksum */
|
|
38
|
+
ALGORITHM: 'sha3-512',
|
|
39
|
+
/** encoding to use for checksum */
|
|
40
|
+
ENCODING: 'hex',
|
|
41
|
+
});
|
|
42
|
+
exports.PBKDF2 = Object.freeze({
|
|
43
|
+
ALGORITHM: 'SHA-256',
|
|
44
|
+
SALT_BYTES: 32,
|
|
45
|
+
/**
|
|
46
|
+
* Number of pbkdf2 iterations per second when hashing a password.
|
|
47
|
+
* This is the high-security default for user login operations.
|
|
48
|
+
*/
|
|
49
|
+
ITERATIONS_PER_SECOND: 1304000,
|
|
50
|
+
});
|
|
51
|
+
exports.PBKDF2_PROFILES = Object.freeze({
|
|
52
|
+
[pbkdf2_profile_1.Pbkdf2ProfileEnum.BROWSER_PASSWORD]: Object.freeze({
|
|
53
|
+
hashBytes: 32,
|
|
54
|
+
saltBytes: 64,
|
|
55
|
+
iterations: 2000000,
|
|
56
|
+
algorithm: 'SHA-512',
|
|
57
|
+
}),
|
|
58
|
+
[pbkdf2_profile_1.Pbkdf2ProfileEnum.HIGH_SECURITY]: Object.freeze({
|
|
59
|
+
hashBytes: 64,
|
|
60
|
+
saltBytes: 32,
|
|
61
|
+
iterations: 5000000,
|
|
62
|
+
algorithm: 'SHA-256',
|
|
63
|
+
}),
|
|
64
|
+
[pbkdf2_profile_1.Pbkdf2ProfileEnum.TEST_FAST]: Object.freeze({
|
|
65
|
+
hashBytes: 32,
|
|
66
|
+
saltBytes: 64,
|
|
67
|
+
iterations: 1000,
|
|
68
|
+
algorithm: 'SHA-512',
|
|
69
|
+
}),
|
|
70
|
+
});
|
|
71
|
+
const ECIES_SYMMETRIC_KEY_SIZE = 32;
|
|
72
|
+
const ECIES_PUBLIC_KEY_LENGTH = 65;
|
|
73
|
+
const ECIES_RAW_PUBLIC_KEY_LENGTH = 64;
|
|
74
|
+
const ECIES_IV_SIZE = 16;
|
|
75
|
+
const ECIES_AUTH_TAG_SIZE = 16;
|
|
76
|
+
const ECIES_MULTIPLE_RECIPIENT_ID_SIZE = 16;
|
|
77
|
+
// Define the expected value for SIMPLE.FIXED_OVERHEAD_SIZE
|
|
78
|
+
const expectedSimpleOverhead = exports.UINT8_SIZE + ECIES_PUBLIC_KEY_LENGTH + ECIES_IV_SIZE + ECIES_AUTH_TAG_SIZE;
|
|
79
|
+
// Define the expected value for MULTIPLE.FIXED_OVERHEAD_SIZE
|
|
80
|
+
// Includes: type (1) + IV (16) + auth tag (16) = 33 (no CRC, AES-GCM provides authentication)
|
|
81
|
+
const expectedMultipleOverhead = exports.UINT8_SIZE + ECIES_IV_SIZE + ECIES_AUTH_TAG_SIZE;
|
|
82
|
+
// Update ENCRYPTED_KEY_SIZE to match Simple encryption (no CRC)
|
|
83
|
+
const expectedMultipleEncryptedKeySize = ECIES_PUBLIC_KEY_LENGTH +
|
|
84
|
+
ECIES_IV_SIZE +
|
|
85
|
+
ECIES_AUTH_TAG_SIZE +
|
|
86
|
+
ECIES_SYMMETRIC_KEY_SIZE;
|
|
87
|
+
exports.ECIES = Object.freeze({
|
|
88
|
+
/** The elliptic curve to use for all ECDSA operations */
|
|
89
|
+
CURVE_NAME: 'secp256k1',
|
|
90
|
+
/** The primary key derivation path for HD wallets */
|
|
91
|
+
PRIMARY_KEY_DERIVATION_PATH: "m/44'/60'/0'/0/0",
|
|
92
|
+
SYMMETRIC_ALGORITHM_CONFIGURATION: 'aes-256-gcm',
|
|
93
|
+
/** Length of ECDSA signatures in bytes */
|
|
94
|
+
SIGNATURE_SIZE: 64,
|
|
95
|
+
/** Length of raw public keys in bytes (without 0x04 prefix) */
|
|
96
|
+
RAW_PUBLIC_KEY_LENGTH: ECIES_RAW_PUBLIC_KEY_LENGTH,
|
|
97
|
+
/** Length of public keys in bytes (with 0x04 prefix) */
|
|
98
|
+
PUBLIC_KEY_LENGTH: ECIES_PUBLIC_KEY_LENGTH,
|
|
99
|
+
PUBLIC_KEY_MAGIC: 0x04,
|
|
100
|
+
/** Mnemonic strength in bits. This will produce a 32-bit key for ECDSA */
|
|
101
|
+
MNEMONIC_STRENGTH: 256,
|
|
102
|
+
/** Symmetric encryption algorithm configuration */
|
|
103
|
+
SYMMETRIC: Object.freeze({
|
|
104
|
+
ALGORITHM: 'aes',
|
|
105
|
+
MODE: 'gcm',
|
|
106
|
+
KEY_BITS: 256,
|
|
107
|
+
KEY_SIZE: ECIES_SYMMETRIC_KEY_SIZE, // KEY_BITS / 8
|
|
108
|
+
}),
|
|
109
|
+
IV_SIZE: ECIES_IV_SIZE,
|
|
110
|
+
AUTH_TAG_SIZE: ECIES_AUTH_TAG_SIZE,
|
|
111
|
+
MAX_RAW_DATA_SIZE: 9007199254740991, // 2^53 - 1 (max safe integer for JS)
|
|
112
|
+
/**
|
|
113
|
+
* Message encrypts without data length or crc
|
|
114
|
+
*/
|
|
115
|
+
SIMPLE: Object.freeze({
|
|
116
|
+
FIXED_OVERHEAD_SIZE: expectedSimpleOverhead, // type (1) + public key (65) + IV (16) + auth tag (16)
|
|
117
|
+
DATA_LENGTH_SIZE: 0,
|
|
118
|
+
}),
|
|
119
|
+
/**
|
|
120
|
+
* Message encrypts with data length but no CRC (AES-GCM provides authentication)
|
|
121
|
+
*/
|
|
122
|
+
SINGLE: Object.freeze({
|
|
123
|
+
FIXED_OVERHEAD_SIZE: 106, // type (1) + public key (65) + IV (16) + auth tag (16) + data length (8)
|
|
124
|
+
DATA_LENGTH_SIZE: 8,
|
|
125
|
+
}),
|
|
126
|
+
/**
|
|
127
|
+
* Message encrypts for multiple recipients
|
|
128
|
+
*/
|
|
129
|
+
MULTIPLE: Object.freeze({
|
|
130
|
+
FIXED_OVERHEAD_SIZE: expectedMultipleOverhead, // type (1) + IV (16) + auth tag (16), no CRC
|
|
131
|
+
ENCRYPTED_KEY_SIZE: expectedMultipleEncryptedKeySize, // 129
|
|
132
|
+
MAX_RECIPIENTS: 65535,
|
|
133
|
+
RECIPIENT_ID_SIZE: ECIES_MULTIPLE_RECIPIENT_ID_SIZE,
|
|
134
|
+
RECIPIENT_COUNT_SIZE: 2,
|
|
135
|
+
DATA_LENGTH_SIZE: 8,
|
|
136
|
+
}),
|
|
137
|
+
ENCRYPTION_TYPE: Object.freeze({
|
|
138
|
+
SIMPLE: 33,
|
|
139
|
+
SINGLE: 66,
|
|
140
|
+
MULTIPLE: 99,
|
|
141
|
+
}),
|
|
142
|
+
});
|
|
143
|
+
exports.Constants = Object.freeze({
|
|
144
|
+
UINT8_SIZE: exports.UINT8_SIZE,
|
|
145
|
+
UINT16_SIZE: exports.UINT16_SIZE,
|
|
146
|
+
UINT16_MAX: exports.UINT16_MAX,
|
|
147
|
+
UINT32_SIZE: exports.UINT32_SIZE,
|
|
148
|
+
UINT32_MAX: exports.UINT32_MAX,
|
|
149
|
+
UINT64_SIZE: exports.UINT64_SIZE,
|
|
150
|
+
UINT64_MAX: exports.UINT64_MAX,
|
|
151
|
+
HEX_RADIX: 16,
|
|
152
|
+
GUID_SIZE: exports.GUID_SIZE,
|
|
153
|
+
OBJECT_ID_LENGTH: objectIdLength,
|
|
154
|
+
CHECKSUM: exports.CHECKSUM,
|
|
155
|
+
ECIES: exports.ECIES,
|
|
156
|
+
PBKDF2: exports.PBKDF2,
|
|
157
|
+
PBKDF2_PROFILES: exports.PBKDF2_PROFILES,
|
|
158
|
+
/**
|
|
159
|
+
* Number of rounds for bcrypt hashing. Higher values increase security but also consume more CPU resources.
|
|
160
|
+
*/
|
|
161
|
+
BcryptRounds: 10,
|
|
162
|
+
/**
|
|
163
|
+
* Minimum password length
|
|
164
|
+
*/
|
|
165
|
+
PasswordMinLength: 8,
|
|
166
|
+
/**
|
|
167
|
+
* The regular expression for valid passwords.
|
|
168
|
+
*/
|
|
169
|
+
PasswordRegex: regexes_1.PASSWORD_REGEX,
|
|
170
|
+
/**
|
|
171
|
+
* The regular expression for valid mnemonic phrases.
|
|
172
|
+
* BIP39 - supports 12, 15, 18, 21, or 24 word mnemonics
|
|
173
|
+
*/
|
|
174
|
+
MnemonicRegex: regexes_1.MNEMONIC_REGEX,
|
|
175
|
+
/**
|
|
176
|
+
* Matches a 64-character hexadecimal string (SHA-256).
|
|
177
|
+
*/
|
|
178
|
+
HmacRegex: /^[a-f0-9]{64}$/,
|
|
179
|
+
});
|
|
180
|
+
const DEFAULT_CONFIGURATION_KEY = Symbol.for('digitaldefiance.ecies.constants.default');
|
|
181
|
+
function isPlainObject(value) {
|
|
182
|
+
if (value === null) {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
if (typeof value !== 'object') {
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
if (Array.isArray(value)) {
|
|
189
|
+
return false;
|
|
190
|
+
}
|
|
191
|
+
if (value instanceof RegExp || value instanceof Date) {
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
return Object.getPrototypeOf(value) === Object.prototype;
|
|
195
|
+
}
|
|
196
|
+
function deepClone(input) {
|
|
197
|
+
if (input === null) {
|
|
198
|
+
return input;
|
|
199
|
+
}
|
|
200
|
+
if (Array.isArray(input)) {
|
|
201
|
+
return input.map((item) => deepClone(item));
|
|
202
|
+
}
|
|
203
|
+
if (input instanceof RegExp) {
|
|
204
|
+
return new RegExp(input.source, input.flags);
|
|
205
|
+
}
|
|
206
|
+
if (input instanceof Date) {
|
|
207
|
+
return new Date(input.getTime());
|
|
208
|
+
}
|
|
209
|
+
if (isPlainObject(input)) {
|
|
210
|
+
const result = {};
|
|
211
|
+
for (const [key, value] of Object.entries(input)) {
|
|
212
|
+
result[key] = deepClone(value);
|
|
213
|
+
}
|
|
214
|
+
return result;
|
|
215
|
+
}
|
|
216
|
+
return input;
|
|
217
|
+
}
|
|
218
|
+
function applyOverrides(target, overrides) {
|
|
219
|
+
if (!overrides) {
|
|
220
|
+
return target;
|
|
221
|
+
}
|
|
222
|
+
for (const [key, overrideValue] of Object.entries(overrides)) {
|
|
223
|
+
const typedKey = key;
|
|
224
|
+
if (overrideValue === undefined) {
|
|
225
|
+
continue;
|
|
226
|
+
}
|
|
227
|
+
const currentValue = target[typedKey];
|
|
228
|
+
if (isPlainObject(currentValue) && isPlainObject(overrideValue)) {
|
|
229
|
+
target[typedKey] = applyOverrides(currentValue, overrideValue);
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
target[typedKey] = deepClone(overrideValue);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return target;
|
|
236
|
+
}
|
|
237
|
+
function deepFreeze(value) {
|
|
238
|
+
if (value === null || typeof value !== 'object') {
|
|
239
|
+
return value;
|
|
240
|
+
}
|
|
241
|
+
if (Object.isFrozen(value)) {
|
|
242
|
+
return value;
|
|
243
|
+
}
|
|
244
|
+
Object.freeze(value);
|
|
245
|
+
for (const property of Object.getOwnPropertyNames(value)) {
|
|
246
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
247
|
+
const nestedValue = value[property];
|
|
248
|
+
deepFreeze(nestedValue);
|
|
249
|
+
}
|
|
250
|
+
return value;
|
|
251
|
+
}
|
|
252
|
+
function computeMultipleEncryptedKeySize(ecies) {
|
|
253
|
+
return (ecies.PUBLIC_KEY_LENGTH +
|
|
254
|
+
ecies.IV_SIZE +
|
|
255
|
+
ecies.AUTH_TAG_SIZE +
|
|
256
|
+
ecies.SYMMETRIC.KEY_SIZE);
|
|
257
|
+
}
|
|
258
|
+
function validateConstants(config) {
|
|
259
|
+
const checksum = config.CHECKSUM;
|
|
260
|
+
const ecies = config.ECIES;
|
|
261
|
+
if (checksum.SHA3_BUFFER_LENGTH !== checksum.SHA3_DEFAULT_HASH_BITS / 8 ||
|
|
262
|
+
checksum.SHA3_BUFFER_LENGTH !== checksum.SHA3_DEFAULT_HASH_BITS / 8) {
|
|
263
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
264
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidChecksumConstants));
|
|
265
|
+
}
|
|
266
|
+
const expectedEncryptedKeySize = computeMultipleEncryptedKeySize(ecies);
|
|
267
|
+
if (ecies.MULTIPLE.ENCRYPTED_KEY_SIZE !== expectedEncryptedKeySize) {
|
|
268
|
+
throw new ecies_1.ECIESError(enumerations_1.ECIESErrorTypeEnum.InvalidECIESMultipleEncryptedKeySize, (0, i18n_setup_1.getEciesI18nEngine)());
|
|
269
|
+
}
|
|
270
|
+
if (ecies.PUBLIC_KEY_LENGTH !== ecies.RAW_PUBLIC_KEY_LENGTH + 1) {
|
|
271
|
+
throw new ecies_1.ECIESError(enumerations_1.ECIESErrorTypeEnum.InvalidECIESPublicKeyLength, (0, i18n_setup_1.getEciesI18nEngine)());
|
|
272
|
+
}
|
|
273
|
+
if (ecies.MULTIPLE.RECIPIENT_COUNT_SIZE !== exports.UINT16_SIZE) {
|
|
274
|
+
throw new ecies_1.ECIESError(enumerations_1.ECIESErrorTypeEnum.InvalidECIESMultipleRecipientCountSize, (0, i18n_setup_1.getEciesI18nEngine)());
|
|
275
|
+
}
|
|
276
|
+
if (ecies.MULTIPLE.DATA_LENGTH_SIZE !== exports.UINT64_SIZE) {
|
|
277
|
+
throw new ecies_1.ECIESError(enumerations_1.ECIESErrorTypeEnum.InvalidECIESMultipleDataLengthSize, (0, i18n_setup_1.getEciesI18nEngine)());
|
|
278
|
+
}
|
|
279
|
+
if (ecies.MULTIPLE.RECIPIENT_ID_SIZE !== exports.GUID_SIZE) {
|
|
280
|
+
throw new ecies_1.ECIESError(enumerations_1.ECIESErrorTypeEnum.InvalidECIESMultipleRecipientIdSize, (0, i18n_setup_1.getEciesI18nEngine)());
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
validateConstants(exports.Constants);
|
|
284
|
+
const configurationRegistry = new Map();
|
|
285
|
+
configurationRegistry.set(DEFAULT_CONFIGURATION_KEY, exports.Constants);
|
|
286
|
+
function isFullConstantsConfig(value) {
|
|
287
|
+
if (!isPlainObject(value)) {
|
|
288
|
+
return false;
|
|
289
|
+
}
|
|
290
|
+
const candidate = value;
|
|
291
|
+
return (candidate.CHECKSUM !== undefined &&
|
|
292
|
+
candidate.ECIES !== undefined &&
|
|
293
|
+
candidate.PBKDF2 !== undefined &&
|
|
294
|
+
candidate.PBKDF2_PROFILES !== undefined);
|
|
295
|
+
}
|
|
296
|
+
function createRuntimeConfiguration(overrides, base = exports.Constants) {
|
|
297
|
+
const merged = deepClone(base);
|
|
298
|
+
applyOverrides(merged, overrides);
|
|
299
|
+
validateConstants(merged);
|
|
300
|
+
return deepFreeze(merged);
|
|
301
|
+
}
|
|
302
|
+
class ConstantsRegistry {
|
|
303
|
+
static DEFAULT_KEY = DEFAULT_CONFIGURATION_KEY;
|
|
304
|
+
static listKeys() {
|
|
305
|
+
return Array.from(configurationRegistry.keys());
|
|
306
|
+
}
|
|
307
|
+
static has(key) {
|
|
308
|
+
return configurationRegistry.has(key);
|
|
309
|
+
}
|
|
310
|
+
static get(key = DEFAULT_CONFIGURATION_KEY) {
|
|
311
|
+
return (configurationRegistry.get(key) ??
|
|
312
|
+
configurationRegistry.get(DEFAULT_CONFIGURATION_KEY));
|
|
313
|
+
}
|
|
314
|
+
static create(overrides, baseKey = DEFAULT_CONFIGURATION_KEY) {
|
|
315
|
+
const baseConfig = ConstantsRegistry.get(baseKey);
|
|
316
|
+
return createRuntimeConfiguration(overrides, baseConfig);
|
|
317
|
+
}
|
|
318
|
+
static register(key, configOrOverrides, options) {
|
|
319
|
+
if (key === DEFAULT_CONFIGURATION_KEY) {
|
|
320
|
+
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
321
|
+
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_CannotOverwriteDefaultConfiguration));
|
|
322
|
+
}
|
|
323
|
+
const baseKey = options?.baseKey ?? DEFAULT_CONFIGURATION_KEY;
|
|
324
|
+
const baseConfig = ConstantsRegistry.get(baseKey);
|
|
325
|
+
const configuration = isFullConstantsConfig(configOrOverrides)
|
|
326
|
+
? createRuntimeConfiguration(undefined, configOrOverrides)
|
|
327
|
+
: createRuntimeConfiguration(configOrOverrides, baseConfig);
|
|
328
|
+
configurationRegistry.set(key, configuration);
|
|
329
|
+
return configuration;
|
|
330
|
+
}
|
|
331
|
+
static unregister(key) {
|
|
332
|
+
if (key === DEFAULT_CONFIGURATION_KEY) {
|
|
333
|
+
return false;
|
|
334
|
+
}
|
|
335
|
+
return configurationRegistry.delete(key);
|
|
336
|
+
}
|
|
337
|
+
static clear() {
|
|
338
|
+
configurationRegistry.clear();
|
|
339
|
+
configurationRegistry.set(DEFAULT_CONFIGURATION_KEY, exports.Constants);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
exports.ConstantsRegistry = ConstantsRegistry;
|
|
343
|
+
function getRuntimeConfiguration(key = DEFAULT_CONFIGURATION_KEY) {
|
|
344
|
+
return ConstantsRegistry.get(key);
|
|
345
|
+
}
|
|
346
|
+
function registerRuntimeConfiguration(key, configOrOverrides, options) {
|
|
347
|
+
return ConstantsRegistry.register(key, configOrOverrides, options);
|
|
348
|
+
}
|
|
349
|
+
function unregisterRuntimeConfiguration(key) {
|
|
350
|
+
return ConstantsRegistry.unregister(key);
|
|
351
|
+
}
|
|
352
|
+
function clearRuntimeConfigurations() {
|
|
353
|
+
ConstantsRegistry.clear();
|
|
354
|
+
}
|
|
355
|
+
var regexes_2 = require("./regexes");
|
|
356
|
+
Object.defineProperty(exports, "PASSWORD_REGEX", { enumerable: true, get: function () { return regexes_2.PASSWORD_REGEX; } });
|
|
357
|
+
Object.defineProperty(exports, "MNEMONIC_REGEX", { enumerable: true, get: function () { return regexes_2.MNEMONIC_REGEX; } });
|
|
358
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EmailString represents a validated email address.
|
|
3
|
+
* It ensures that the email is not empty, does not have leading or trailing spaces,
|
|
4
|
+
* and is a valid email format.
|
|
5
|
+
*/
|
|
6
|
+
export declare class EmailString {
|
|
7
|
+
readonly email: string;
|
|
8
|
+
/**
|
|
9
|
+
* Creates an instance of EmailString.
|
|
10
|
+
* @param email - The email address to validate and store.
|
|
11
|
+
* @throws Will throw an error if the email is invalid.
|
|
12
|
+
*/
|
|
13
|
+
constructor(email: string);
|
|
14
|
+
/**
|
|
15
|
+
* Returns the email address as a string.
|
|
16
|
+
* @returns The email address.
|
|
17
|
+
*/
|
|
18
|
+
toString(): string;
|
|
19
|
+
/**
|
|
20
|
+
* Checks if this email address is equal to another email address.
|
|
21
|
+
* @param other - The other email address to compare.
|
|
22
|
+
* @returns True if the email addresses are equal, false otherwise.
|
|
23
|
+
*/
|
|
24
|
+
equals(other: EmailString): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Converts the email address to a JSON string.
|
|
27
|
+
* @returns The email address as a JSON string.
|
|
28
|
+
*/
|
|
29
|
+
toJson(): string;
|
|
30
|
+
/**
|
|
31
|
+
* Creates an EmailString instance from a JSON string.
|
|
32
|
+
* @param email - The JSON string representing the email address.
|
|
33
|
+
* @returns The EmailString instance.
|
|
34
|
+
*/
|
|
35
|
+
static fromJson(email: string): EmailString;
|
|
36
|
+
/**
|
|
37
|
+
* Gets the length of the email address.
|
|
38
|
+
* @returns The length of the email address.
|
|
39
|
+
*/
|
|
40
|
+
get length(): number;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=email-string.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-string.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/email-string.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,qBAAa,WAAW;IACtB,SAAgB,KAAK,EAAE,MAAM,CAAC;IAE9B;;;;OAIG;gBACS,KAAK,EAAE,MAAM;IAuBzB;;;OAGG;IACI,QAAQ,IAAI,MAAM;IAIzB;;;;OAIG;IACI,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAI1C;;;OAGG;IACI,MAAM,IAAI,MAAM;IAIvB;;;;OAIG;WACW,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAIlD;;;OAGG;IACH,IAAW,MAAM,IAAI,MAAM,CAE1B;CACF"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmailString = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const validator_1 = tslib_1.__importDefault(require("validator"));
|
|
6
|
+
const invalid_email_type_1 = require("./enumerations/invalid-email-type");
|
|
7
|
+
const invalid_email_1 = require("./errors/invalid-email");
|
|
8
|
+
const i18n_setup_1 = require("./i18n-setup");
|
|
9
|
+
/**
|
|
10
|
+
* EmailString represents a validated email address.
|
|
11
|
+
* It ensures that the email is not empty, does not have leading or trailing spaces,
|
|
12
|
+
* and is a valid email format.
|
|
13
|
+
*/
|
|
14
|
+
class EmailString {
|
|
15
|
+
email;
|
|
16
|
+
/**
|
|
17
|
+
* Creates an instance of EmailString.
|
|
18
|
+
* @param email - The email address to validate and store.
|
|
19
|
+
* @throws Will throw an error if the email is invalid.
|
|
20
|
+
*/
|
|
21
|
+
constructor(email) {
|
|
22
|
+
const trimmedEmail = email.trim();
|
|
23
|
+
if (trimmedEmail.length == 0) {
|
|
24
|
+
throw new invalid_email_1.InvalidEmailError(invalid_email_type_1.InvalidEmailErrorType.Missing, (0, i18n_setup_1.getEciesI18nEngine)());
|
|
25
|
+
}
|
|
26
|
+
if (trimmedEmail.length != email.length) {
|
|
27
|
+
throw new invalid_email_1.InvalidEmailError(invalid_email_type_1.InvalidEmailErrorType.Whitespace, (0, i18n_setup_1.getEciesI18nEngine)());
|
|
28
|
+
}
|
|
29
|
+
if (!validator_1.default.isEmail(trimmedEmail)) {
|
|
30
|
+
throw new invalid_email_1.InvalidEmailError(invalid_email_type_1.InvalidEmailErrorType.Invalid, (0, i18n_setup_1.getEciesI18nEngine)());
|
|
31
|
+
}
|
|
32
|
+
this.email = trimmedEmail;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Returns the email address as a string.
|
|
36
|
+
* @returns The email address.
|
|
37
|
+
*/
|
|
38
|
+
toString() {
|
|
39
|
+
return this.email;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Checks if this email address is equal to another email address.
|
|
43
|
+
* @param other - The other email address to compare.
|
|
44
|
+
* @returns True if the email addresses are equal, false otherwise.
|
|
45
|
+
*/
|
|
46
|
+
equals(other) {
|
|
47
|
+
return this.email === other.email;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Converts the email address to a JSON string.
|
|
51
|
+
* @returns The email address as a JSON string.
|
|
52
|
+
*/
|
|
53
|
+
toJson() {
|
|
54
|
+
return JSON.stringify(this.email);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Creates an EmailString instance from a JSON string.
|
|
58
|
+
* @param email - The JSON string representing the email address.
|
|
59
|
+
* @returns The EmailString instance.
|
|
60
|
+
*/
|
|
61
|
+
static fromJson(email) {
|
|
62
|
+
return new EmailString(JSON.parse(email));
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Gets the length of the email address.
|
|
66
|
+
* @returns The length of the email address.
|
|
67
|
+
*/
|
|
68
|
+
get length() {
|
|
69
|
+
return this.email.length;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.EmailString = EmailString;
|
|
73
|
+
//# sourceMappingURL=email-string.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-string.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/email-string.ts"],"names":[],"mappings":";;;;AAAA,kEAAkC;AAClC,0EAA0E;AAC1E,0DAA2D;AAC3D,6CAAkD;AAElD;;;;GAIG;AACH,MAAa,WAAW;IACN,KAAK,CAAS;IAE9B;;;;OAIG;IACH,YAAY,KAAa;QACvB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,iCAAiB,CACzB,0CAAqB,CAAC,OAAO,EAC7B,IAAA,+BAAkB,GAAS,CAC5B,CAAC;QACJ,CAAC;QACD,IAAI,YAAY,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,IAAI,iCAAiB,CACzB,0CAAqB,CAAC,UAAU,EAChC,IAAA,+BAAkB,GAAS,CAC5B,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,mBAAS,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,iCAAiB,CACzB,0CAAqB,CAAC,OAAO,EAC7B,IAAA,+BAAkB,GAAS,CAC5B,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACI,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAkB;QAC9B,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC;IACpC,CAAC;IAED;;;OAGG;IACI,MAAM;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,QAAQ,CAAC,KAAa;QAClC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;CACF;AAxED,kCAwEC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type EciesEncryptionType = 'simple' | 'single' | 'multiple';
|
|
2
|
+
export declare enum EciesEncryptionTypeEnum {
|
|
3
|
+
Simple = 33,
|
|
4
|
+
Single = 66,
|
|
5
|
+
Multiple = 99
|
|
6
|
+
}
|
|
7
|
+
export declare const EciesEncryptionTypeMap: Record<EciesEncryptionType, EciesEncryptionTypeEnum>;
|
|
8
|
+
export declare const EciesEncryptionTypeStringMap: Record<EciesEncryptionType, string>;
|
|
9
|
+
export declare const EciesEncryptionTypeEnumTypeMap: Record<EciesEncryptionTypeEnum, EciesEncryptionType>;
|
|
10
|
+
export declare const EciesEncryptionTypeEnumStringMap: Record<EciesEncryptionTypeEnum, string>;
|
|
11
|
+
export declare function encryptionTypeToString(type: EciesEncryptionType | EciesEncryptionTypeEnum): string;
|
|
12
|
+
export declare function encryptionTypeEnumToType(type: EciesEncryptionTypeEnum): EciesEncryptionType;
|
|
13
|
+
export declare function validateEciesEncryptionTypeEnum(type: EciesEncryptionTypeEnum): boolean;
|
|
14
|
+
export declare function ensureEciesEncryptionTypeEnum(type: EciesEncryptionTypeEnum): EciesEncryptionTypeEnum;
|
|
15
|
+
//# sourceMappingURL=ecies-encryption-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ecies-encryption-type.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/enumerations/ecies-encryption-type.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEnE,oBAAY,uBAAuB;IACjC,MAAM,KAAK;IACX,MAAM,KAAK;IACX,QAAQ,KAAK;CACd;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,mBAAmB,EACnB,uBAAuB,CAKxB,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAK1E,CAAC;AAEJ,eAAO,MAAM,8BAA8B,EAAE,MAAM,CACjD,uBAAuB,EACvB,mBAAmB,CAKpB,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,MAAM,CACnD,uBAAuB,EACvB,MAAM,CAKP,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,mBAAmB,GAAG,uBAAuB,GAClD,MAAM,CAsBR;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,uBAAuB,GAC5B,mBAAmB,CASrB;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAET;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,uBAAuB,GAC5B,uBAAuB,CAQzB"}
|