@digitaldefiance/ecies-lib 1.1.23 → 1.1.24
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 +13 -33
- package/src/constants.ts +474 -0
- package/src/email-string.ts +83 -0
- package/src/enumerations/ecies-encryption-type.ts +102 -0
- package/src/enumerations/ecies-error-type.ts +31 -0
- package/src/enumerations/ecies-string-key.ts +108 -0
- package/src/enumerations/guid-brand-type.ts +26 -0
- package/src/enumerations/guid-error-type.ts +6 -0
- package/{dist/enumerations/index.d.ts → src/enumerations/index.ts} +0 -1
- package/src/enumerations/invalid-email-type.ts +5 -0
- package/src/enumerations/length-encoding-type.ts +6 -0
- package/src/enumerations/length-error-type.ts +5 -0
- package/src/enumerations/member-error-type.ts +106 -0
- package/{dist/enumerations/member-type.d.ts → src/enumerations/member-type.ts} +7 -6
- package/src/enumerations/password-login-error-type.ts +4 -0
- package/src/enumerations/pbkdf2-error-type.ts +5 -0
- package/src/enumerations/pbkdf2-profile.ts +5 -0
- package/src/enumerations/secure-storage-error-type.ts +5 -0
- package/src/errors/disposed.ts +15 -0
- package/src/errors/ecies.ts +34 -0
- package/src/errors/guid.ts +34 -0
- package/{dist/errors/index.d.ts → src/errors/index.ts} +0 -1
- package/src/errors/invalid-email.ts +11 -0
- package/src/errors/length.ts +11 -0
- package/src/errors/member.ts +12 -0
- package/src/errors/pbkdf2.ts +12 -0
- package/src/errors/secure-storage.ts +13 -0
- package/src/errors/simple-ecies.ts +18 -0
- package/src/errors/simple-test-error.ts +6 -0
- package/src/guid.ts +800 -0
- package/src/i18n-setup.ts +1312 -0
- package/{dist/index.d.ts → src/index.ts} +0 -1
- package/src/interfaces/checksum-config.ts +4 -0
- package/src/interfaces/checksum-consts.ts +13 -0
- package/src/interfaces/constants.ts +48 -0
- package/src/interfaces/ecies-config.ts +8 -0
- package/src/interfaces/ecies-consts.ts +70 -0
- package/src/interfaces/ecies-file-service.ts +6 -0
- package/src/interfaces/guid.ts +53 -0
- package/{dist/interfaces/index.d.ts → src/interfaces/index.ts} +0 -1
- package/src/interfaces/library-error.ts +23 -0
- package/src/interfaces/member-operational.ts +54 -0
- package/{dist/interfaces/member-storage.d.ts → src/interfaces/member-storage.ts} +11 -10
- package/{dist/interfaces/member-with-mnemonic.d.ts → src/interfaces/member-with-mnemonic.ts} +3 -3
- package/src/interfaces/pbkdf2-config.ts +6 -0
- package/src/interfaces/pbkdf2-consts.ts +10 -0
- package/src/interfaces/pbkdf2-result.ts +5 -0
- package/src/member.ts +429 -0
- package/{dist/pbkdf2-profiles.d.ts → src/pbkdf2-profiles.ts} +2 -2
- package/src/phone-number.ts +18 -0
- package/src/regexes.ts +10 -0
- package/src/secure-buffer.ts +183 -0
- package/src/secure-string.ts +229 -0
- package/src/services/aes-gcm.ts +177 -0
- package/src/services/ecies/README.md +147 -0
- package/src/services/ecies/crypto-core.ts +180 -0
- package/src/services/ecies/example.ts +185 -0
- package/src/services/ecies/file.ts +167 -0
- package/{dist/services/ecies/index.d.ts → src/services/ecies/index.ts} +3 -1
- package/src/services/ecies/integration.ts +241 -0
- package/src/services/ecies/interfaces.ts +59 -0
- package/src/services/ecies/manual-test.ts +219 -0
- package/src/services/ecies/multi-recipient.ts +394 -0
- package/src/services/ecies/service.ts +317 -0
- package/src/services/ecies/signature.ts +93 -0
- package/src/services/ecies/single-recipient.ts +340 -0
- package/{dist/services/index.d.ts → src/services/index.ts} +0 -1
- package/src/services/password-login.ts +228 -0
- package/src/services/pbkdf2.ts +172 -0
- package/src/services/xor.ts +65 -0
- package/src/types/deep-partial.ts +11 -0
- package/{dist/types.d.ts → src/types.ts} +10 -4
- package/src/utils.ts +331 -0
- package/dist/constants.d.ts +0 -46
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -358
- package/dist/constants.js.map +0 -1
- package/dist/email-string.d.ts +0 -42
- package/dist/email-string.d.ts.map +0 -1
- package/dist/email-string.js +0 -75
- package/dist/email-string.js.map +0 -1
- package/dist/enumerations/ecies-encryption-type.d.ts +0 -15
- package/dist/enumerations/ecies-encryption-type.d.ts.map +0 -1
- package/dist/enumerations/ecies-encryption-type.js +0 -71
- package/dist/enumerations/ecies-encryption-type.js.map +0 -1
- package/dist/enumerations/ecies-error-type.d.ts +0 -32
- package/dist/enumerations/ecies-error-type.d.ts.map +0 -1
- package/dist/enumerations/ecies-error-type.js +0 -36
- package/dist/enumerations/ecies-error-type.js.map +0 -1
- package/dist/enumerations/ecies-string-key.d.ts +0 -96
- package/dist/enumerations/ecies-string-key.d.ts.map +0 -1
- package/dist/enumerations/ecies-string-key.js +0 -105
- package/dist/enumerations/ecies-string-key.js.map +0 -1
- package/dist/enumerations/guid-brand-type.d.ts +0 -27
- package/dist/enumerations/guid-brand-type.d.ts.map +0 -1
- package/dist/enumerations/guid-brand-type.js +0 -31
- package/dist/enumerations/guid-brand-type.js.map +0 -1
- package/dist/enumerations/guid-error-type.d.ts +0 -7
- package/dist/enumerations/guid-error-type.d.ts.map +0 -1
- package/dist/enumerations/guid-error-type.js +0 -11
- package/dist/enumerations/guid-error-type.js.map +0 -1
- package/dist/enumerations/index.d.ts.map +0 -1
- package/dist/enumerations/index.js +0 -31
- package/dist/enumerations/index.js.map +0 -1
- package/dist/enumerations/invalid-email-type.d.ts +0 -6
- package/dist/enumerations/invalid-email-type.d.ts.map +0 -1
- package/dist/enumerations/invalid-email-type.js +0 -10
- package/dist/enumerations/invalid-email-type.js.map +0 -1
- package/dist/enumerations/length-encoding-type.d.ts +0 -7
- package/dist/enumerations/length-encoding-type.d.ts.map +0 -1
- package/dist/enumerations/length-encoding-type.js +0 -11
- package/dist/enumerations/length-encoding-type.js.map +0 -1
- package/dist/enumerations/length-error-type.d.ts +0 -6
- package/dist/enumerations/length-error-type.d.ts.map +0 -1
- package/dist/enumerations/length-error-type.js +0 -10
- package/dist/enumerations/length-error-type.js.map +0 -1
- package/dist/enumerations/member-error-type.d.ts +0 -87
- package/dist/enumerations/member-error-type.d.ts.map +0 -1
- package/dist/enumerations/member-error-type.js +0 -91
- package/dist/enumerations/member-error-type.js.map +0 -1
- package/dist/enumerations/member-type.d.ts.map +0 -1
- package/dist/enumerations/member-type.js +0 -19
- package/dist/enumerations/member-type.js.map +0 -1
- package/dist/enumerations/password-login-error-type.d.ts +0 -5
- package/dist/enumerations/password-login-error-type.d.ts.map +0 -1
- package/dist/enumerations/password-login-error-type.js +0 -9
- package/dist/enumerations/password-login-error-type.js.map +0 -1
- package/dist/enumerations/pbkdf2-error-type.d.ts +0 -6
- package/dist/enumerations/pbkdf2-error-type.d.ts.map +0 -1
- package/dist/enumerations/pbkdf2-error-type.js +0 -10
- package/dist/enumerations/pbkdf2-error-type.js.map +0 -1
- package/dist/enumerations/pbkdf2-profile.d.ts +0 -6
- package/dist/enumerations/pbkdf2-profile.d.ts.map +0 -1
- package/dist/enumerations/pbkdf2-profile.js +0 -10
- package/dist/enumerations/pbkdf2-profile.js.map +0 -1
- package/dist/enumerations/secure-storage-error-type.d.ts +0 -6
- package/dist/enumerations/secure-storage-error-type.d.ts.map +0 -1
- package/dist/enumerations/secure-storage-error-type.js +0 -10
- package/dist/enumerations/secure-storage-error-type.js.map +0 -1
- package/dist/errors/disposed.d.ts +0 -4
- package/dist/errors/disposed.d.ts.map +0 -1
- package/dist/errors/disposed.js +0 -20
- package/dist/errors/disposed.js.map +0 -1
- package/dist/errors/ecies.d.ts +0 -7
- package/dist/errors/ecies.d.ts.map +0 -1
- package/dist/errors/ecies.js +0 -15
- package/dist/errors/ecies.js.map +0 -1
- package/dist/errors/guid.d.ts +0 -15
- package/dist/errors/guid.d.ts.map +0 -1
- package/dist/errors/guid.js +0 -26
- package/dist/errors/guid.js.map +0 -1
- package/dist/errors/index.d.ts.map +0 -1
- package/dist/errors/index.js +0 -25
- package/dist/errors/index.js.map +0 -1
- package/dist/errors/invalid-email.d.ts +0 -7
- package/dist/errors/invalid-email.d.ts.map +0 -1
- package/dist/errors/invalid-email.js +0 -14
- package/dist/errors/invalid-email.js.map +0 -1
- package/dist/errors/length.d.ts +0 -7
- package/dist/errors/length.d.ts.map +0 -1
- package/dist/errors/length.js +0 -14
- package/dist/errors/length.js.map +0 -1
- package/dist/errors/member.d.ts +0 -7
- package/dist/errors/member.d.ts.map +0 -1
- package/dist/errors/member.js +0 -14
- package/dist/errors/member.js.map +0 -1
- package/dist/errors/pbkdf2.d.ts +0 -7
- package/dist/errors/pbkdf2.d.ts.map +0 -1
- package/dist/errors/pbkdf2.js +0 -14
- package/dist/errors/pbkdf2.js.map +0 -1
- package/dist/errors/secure-storage.d.ts +0 -7
- package/dist/errors/secure-storage.d.ts.map +0 -1
- package/dist/errors/secure-storage.js +0 -15
- package/dist/errors/secure-storage.js.map +0 -1
- package/dist/errors/simple-ecies.d.ts +0 -6
- package/dist/errors/simple-ecies.d.ts.map +0 -1
- package/dist/errors/simple-ecies.js +0 -15
- package/dist/errors/simple-ecies.js.map +0 -1
- package/dist/errors/simple-test-error.d.ts +0 -4
- package/dist/errors/simple-test-error.d.ts.map +0 -1
- package/dist/errors/simple-test-error.js +0 -11
- package/dist/errors/simple-test-error.js.map +0 -1
- package/dist/guid.d.ts +0 -153
- package/dist/guid.d.ts.map +0 -1
- package/dist/guid.js +0 -647
- package/dist/guid.js.map +0 -1
- package/dist/i18n-setup.d.ts +0 -24
- package/dist/i18n-setup.d.ts.map +0 -1
- package/dist/i18n-setup.js +0 -837
- package/dist/i18n-setup.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -32
- package/dist/index.js.map +0 -1
- package/dist/interfaces/checksum-config.d.ts +0 -5
- package/dist/interfaces/checksum-config.d.ts.map +0 -1
- package/dist/interfaces/checksum-config.js +0 -3
- package/dist/interfaces/checksum-config.js.map +0 -1
- package/dist/interfaces/checksum-consts.d.ts +0 -11
- package/dist/interfaces/checksum-consts.d.ts.map +0 -1
- package/dist/interfaces/checksum-consts.js +0 -3
- package/dist/interfaces/checksum-consts.js.map +0 -1
- package/dist/interfaces/constants.d.ts +0 -45
- package/dist/interfaces/constants.d.ts.map +0 -1
- package/dist/interfaces/constants.js +0 -3
- package/dist/interfaces/constants.js.map +0 -1
- package/dist/interfaces/ecies-config.d.ts +0 -9
- package/dist/interfaces/ecies-config.d.ts.map +0 -1
- package/dist/interfaces/ecies-config.js +0 -3
- package/dist/interfaces/ecies-config.js.map +0 -1
- package/dist/interfaces/ecies-consts.d.ts +0 -58
- package/dist/interfaces/ecies-consts.d.ts.map +0 -1
- package/dist/interfaces/ecies-consts.js +0 -3
- package/dist/interfaces/ecies-consts.js.map +0 -1
- package/dist/interfaces/ecies-file-service.d.ts +0 -7
- package/dist/interfaces/ecies-file-service.d.ts.map +0 -1
- package/dist/interfaces/ecies-file-service.js +0 -3
- package/dist/interfaces/ecies-file-service.js.map +0 -1
- package/dist/interfaces/guid.d.ts +0 -45
- package/dist/interfaces/guid.d.ts.map +0 -1
- package/dist/interfaces/guid.js +0 -3
- package/dist/interfaces/guid.js.map +0 -1
- package/dist/interfaces/index.d.ts.map +0 -1
- package/dist/interfaces/index.js +0 -30
- package/dist/interfaces/index.js.map +0 -1
- package/dist/interfaces/library-error.d.ts +0 -23
- package/dist/interfaces/library-error.d.ts.map +0 -1
- package/dist/interfaces/library-error.js +0 -3
- package/dist/interfaces/library-error.js.map +0 -1
- package/dist/interfaces/member-operational.d.ts +0 -40
- package/dist/interfaces/member-operational.d.ts.map +0 -1
- package/dist/interfaces/member-operational.js +0 -3
- package/dist/interfaces/member-operational.js.map +0 -1
- package/dist/interfaces/member-storage.d.ts.map +0 -1
- package/dist/interfaces/member-storage.js +0 -3
- package/dist/interfaces/member-storage.js.map +0 -1
- package/dist/interfaces/member-with-mnemonic.d.ts.map +0 -1
- package/dist/interfaces/member-with-mnemonic.js +0 -3
- package/dist/interfaces/member-with-mnemonic.js.map +0 -1
- package/dist/interfaces/pbkdf2-config.d.ts +0 -7
- package/dist/interfaces/pbkdf2-config.d.ts.map +0 -1
- package/dist/interfaces/pbkdf2-config.js +0 -3
- package/dist/interfaces/pbkdf2-config.js.map +0 -1
- package/dist/interfaces/pbkdf2-consts.d.ts +0 -9
- package/dist/interfaces/pbkdf2-consts.d.ts.map +0 -1
- package/dist/interfaces/pbkdf2-consts.js +0 -3
- package/dist/interfaces/pbkdf2-consts.js.map +0 -1
- package/dist/interfaces/pbkdf2-result.d.ts +0 -6
- package/dist/interfaces/pbkdf2-result.d.ts.map +0 -1
- package/dist/interfaces/pbkdf2-result.js +0 -3
- package/dist/interfaces/pbkdf2-result.js.map +0 -1
- package/dist/member.d.ts +0 -66
- package/dist/member.d.ts.map +0 -1
- package/dist/member.js +0 -271
- package/dist/member.js.map +0 -1
- package/dist/pbkdf2-profiles.d.ts.map +0 -1
- package/dist/pbkdf2-profiles.js +0 -3
- package/dist/pbkdf2-profiles.js.map +0 -1
- package/dist/phone-number.d.ts +0 -6
- package/dist/phone-number.d.ts.map +0 -1
- package/dist/phone-number.js +0 -22
- package/dist/phone-number.js.map +0 -1
- package/dist/regexes.d.ts +0 -7
- package/dist/regexes.d.ts.map +0 -1
- package/dist/regexes.js +0 -10
- package/dist/regexes.js.map +0 -1
- package/dist/secure-buffer.d.ts +0 -38
- package/dist/secure-buffer.d.ts.map +0 -1
- package/dist/secure-buffer.js +0 -168
- package/dist/secure-buffer.js.map +0 -1
- package/dist/secure-string.d.ts +0 -39
- package/dist/secure-string.d.ts.map +0 -1
- package/dist/secure-string.js +0 -195
- package/dist/secure-string.js.map +0 -1
- package/dist/services/aes-gcm.d.ts +0 -57
- package/dist/services/aes-gcm.d.ts.map +0 -1
- package/dist/services/aes-gcm.js +0 -111
- package/dist/services/aes-gcm.js.map +0 -1
- package/dist/services/ecies/crypto-core.d.ts +0 -51
- package/dist/services/ecies/crypto-core.d.ts.map +0 -1
- package/dist/services/ecies/crypto-core.js +0 -139
- package/dist/services/ecies/crypto-core.js.map +0 -1
- package/dist/services/ecies/example.d.ts +0 -25
- package/dist/services/ecies/example.d.ts.map +0 -1
- package/dist/services/ecies/example.js +0 -128
- package/dist/services/ecies/example.js.map +0 -1
- package/dist/services/ecies/file.d.ts +0 -18
- package/dist/services/ecies/file.d.ts.map +0 -1
- package/dist/services/ecies/file.js +0 -110
- package/dist/services/ecies/file.js.map +0 -1
- package/dist/services/ecies/index.d.ts.map +0 -1
- package/dist/services/ecies/index.js +0 -57
- package/dist/services/ecies/index.js.map +0 -1
- package/dist/services/ecies/integration.d.ts +0 -59
- package/dist/services/ecies/integration.d.ts.map +0 -1
- package/dist/services/ecies/integration.js +0 -172
- package/dist/services/ecies/integration.js.map +0 -1
- package/dist/services/ecies/interfaces.d.ts +0 -51
- package/dist/services/ecies/interfaces.d.ts.map +0 -1
- package/dist/services/ecies/interfaces.js +0 -6
- package/dist/services/ecies/interfaces.js.map +0 -1
- package/dist/services/ecies/manual-test.d.ts +0 -29
- package/dist/services/ecies/manual-test.d.ts.map +0 -1
- package/dist/services/ecies/manual-test.js +0 -171
- package/dist/services/ecies/manual-test.js.map +0 -1
- package/dist/services/ecies/multi-recipient.d.ts +0 -52
- package/dist/services/ecies/multi-recipient.d.ts.map +0 -1
- package/dist/services/ecies/multi-recipient.js +0 -243
- package/dist/services/ecies/multi-recipient.js.map +0 -1
- package/dist/services/ecies/service.d.ts +0 -104
- package/dist/services/ecies/service.d.ts.map +0 -1
- package/dist/services/ecies/service.js +0 -192
- package/dist/services/ecies/service.js.map +0 -1
- package/dist/services/ecies/signature.d.ts +0 -27
- package/dist/services/ecies/signature.d.ts.map +0 -1
- package/dist/services/ecies/signature.js +0 -76
- package/dist/services/ecies/signature.js.map +0 -1
- package/dist/services/ecies/single-recipient.d.ts +0 -46
- package/dist/services/ecies/single-recipient.d.ts.map +0 -1
- package/dist/services/ecies/single-recipient.js +0 -212
- package/dist/services/ecies/single-recipient.js.map +0 -1
- package/dist/services/index.d.ts.map +0 -1
- package/dist/services/index.js +0 -22
- package/dist/services/index.js.map +0 -1
- package/dist/services/password-login.d.ts +0 -49
- package/dist/services/password-login.d.ts.map +0 -1
- package/dist/services/password-login.js +0 -121
- package/dist/services/password-login.js.map +0 -1
- package/dist/services/pbkdf2.d.ts +0 -56
- package/dist/services/pbkdf2.d.ts.map +0 -1
- package/dist/services/pbkdf2.js +0 -114
- package/dist/services/pbkdf2.js.map +0 -1
- package/dist/services/xor.d.ts +0 -37
- package/dist/services/xor.d.ts.map +0 -1
- package/dist/services/xor.js +0 -67
- package/dist/services/xor.js.map +0 -1
- package/dist/types/deep-partial.d.ts +0 -4
- package/dist/types/deep-partial.d.ts.map +0 -1
- package/dist/types/deep-partial.js +0 -3
- package/dist/types/deep-partial.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
- package/dist/utils.d.ts +0 -68
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -288
- package/dist/utils.js.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface IChecksumConsts {
|
|
2
|
+
/** Default hash bits for SHA3 */
|
|
3
|
+
SHA3_DEFAULT_HASH_BITS: number;
|
|
4
|
+
|
|
5
|
+
/** Length of a SHA3 checksum buffer in bytes */
|
|
6
|
+
SHA3_BUFFER_LENGTH: number;
|
|
7
|
+
|
|
8
|
+
/** Algorithm name for checksums */
|
|
9
|
+
ALGORITHM: string;
|
|
10
|
+
|
|
11
|
+
/** Encoding for checksums */
|
|
12
|
+
ENCODING: 'hex' | 'base64';
|
|
13
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Pbkdf2Profiles } from '../pbkdf2-profiles';
|
|
2
|
+
import { IChecksumConsts } from './checksum-consts';
|
|
3
|
+
import { IECIESConstants } from './ecies-consts';
|
|
4
|
+
import { IPBkdf2Consts } from './pbkdf2-consts';
|
|
5
|
+
|
|
6
|
+
export interface IConstants {
|
|
7
|
+
UINT8_SIZE: number;
|
|
8
|
+
UINT16_SIZE: number;
|
|
9
|
+
UINT16_MAX: number;
|
|
10
|
+
UINT32_SIZE: number;
|
|
11
|
+
UINT32_MAX: number;
|
|
12
|
+
UINT64_SIZE: number;
|
|
13
|
+
UINT64_MAX: bigint;
|
|
14
|
+
HEX_RADIX: number;
|
|
15
|
+
GUID_SIZE: number;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The length of a raw object ID (not the hex string representation)
|
|
19
|
+
*/
|
|
20
|
+
OBJECT_ID_LENGTH: number;
|
|
21
|
+
|
|
22
|
+
CHECKSUM: IChecksumConsts;
|
|
23
|
+
ECIES: IECIESConstants;
|
|
24
|
+
PBKDF2: IPBkdf2Consts;
|
|
25
|
+
PBKDF2_PROFILES: Pbkdf2Profiles;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Number of rounds for bcrypt hashing. Higher values increase security but also consume more CPU resources.
|
|
29
|
+
*/
|
|
30
|
+
BcryptRounds: number;
|
|
31
|
+
/**
|
|
32
|
+
* Minimum password length
|
|
33
|
+
*/
|
|
34
|
+
PasswordMinLength: number;
|
|
35
|
+
/**
|
|
36
|
+
* The regular expression for valid passwords.
|
|
37
|
+
*/
|
|
38
|
+
PasswordRegex: RegExp;
|
|
39
|
+
/**
|
|
40
|
+
* The regular expression for valid mnemonic phrases.
|
|
41
|
+
* BIP39
|
|
42
|
+
*/
|
|
43
|
+
MnemonicRegex: RegExp;
|
|
44
|
+
/**
|
|
45
|
+
* The regular expression for valid HMAC keys.
|
|
46
|
+
*/
|
|
47
|
+
HmacRegex: RegExp;
|
|
48
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { CipherGCMTypes } from 'crypto';
|
|
2
|
+
export interface IECIESConstants {
|
|
3
|
+
/** The elliptic curve to use for all ECDSA operations */
|
|
4
|
+
CURVE_NAME: string;
|
|
5
|
+
|
|
6
|
+
/** The primary key derivation path for HD wallets */
|
|
7
|
+
PRIMARY_KEY_DERIVATION_PATH: string;
|
|
8
|
+
|
|
9
|
+
SYMMETRIC_ALGORITHM_CONFIGURATION: CipherGCMTypes;
|
|
10
|
+
|
|
11
|
+
/** Length of ECDSA signatures in bytes */
|
|
12
|
+
SIGNATURE_SIZE: number;
|
|
13
|
+
|
|
14
|
+
/** Length of raw public keys in bytes (without 0x04 prefix) */
|
|
15
|
+
RAW_PUBLIC_KEY_LENGTH: number;
|
|
16
|
+
|
|
17
|
+
/** Length of public keys in bytes (with 0x04 prefix) */
|
|
18
|
+
PUBLIC_KEY_LENGTH: number;
|
|
19
|
+
|
|
20
|
+
PUBLIC_KEY_MAGIC: number;
|
|
21
|
+
|
|
22
|
+
/** Mnemonic strength in bits. This will produce a 32-bit key for ECDSA */
|
|
23
|
+
MNEMONIC_STRENGTH: number;
|
|
24
|
+
|
|
25
|
+
/** Symmetric encryption algorithm configuration */
|
|
26
|
+
SYMMETRIC: {
|
|
27
|
+
ALGORITHM: string;
|
|
28
|
+
MODE: string;
|
|
29
|
+
KEY_BITS: number;
|
|
30
|
+
KEY_SIZE: number; // KEY_BITS / 8
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
IV_SIZE: number;
|
|
34
|
+
AUTH_TAG_SIZE: number;
|
|
35
|
+
MAX_RAW_DATA_SIZE: number; // 2^53 - 1 (max safe integer for JS)
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Message encrypts without data length or crc
|
|
39
|
+
*/
|
|
40
|
+
SIMPLE: {
|
|
41
|
+
FIXED_OVERHEAD_SIZE: number; // type (1) + public key (65) + IV (16) + auth tag (16)
|
|
42
|
+
DATA_LENGTH_SIZE: number;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Message encrypts like single but with data Length and crc
|
|
47
|
+
*/
|
|
48
|
+
SINGLE: {
|
|
49
|
+
FIXED_OVERHEAD_SIZE: number; // type (1) + public key (65) + IV (16) + auth tag (16) + data length (8) + crc16 (2)
|
|
50
|
+
DATA_LENGTH_SIZE: number;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Message encrypts for multiple recipients
|
|
55
|
+
*/
|
|
56
|
+
MULTIPLE: {
|
|
57
|
+
FIXED_OVERHEAD_SIZE: number;
|
|
58
|
+
ENCRYPTED_KEY_SIZE: number;
|
|
59
|
+
MAX_RECIPIENTS: number;
|
|
60
|
+
RECIPIENT_ID_SIZE: number;
|
|
61
|
+
RECIPIENT_COUNT_SIZE: number;
|
|
62
|
+
DATA_LENGTH_SIZE: number;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
ENCRYPTION_TYPE: {
|
|
66
|
+
SIMPLE: number;
|
|
67
|
+
SINGLE: number;
|
|
68
|
+
MULTIPLE: number;
|
|
69
|
+
};
|
|
70
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export interface IEciesFileService {
|
|
2
|
+
encryptFile(file: File, recipientPublicKey: Uint8Array): Promise<Uint8Array>;
|
|
3
|
+
decryptFile(encryptedData: Uint8Array): Promise<Uint8Array>;
|
|
4
|
+
downloadEncryptedFile(encryptedData: Uint8Array, filename: string): void;
|
|
5
|
+
downloadDecryptedFile(decryptedData: Uint8Array, filename: string): void;
|
|
6
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Base64Guid,
|
|
3
|
+
BigIntGuid,
|
|
4
|
+
// prettier-ignore
|
|
5
|
+
FullHexGuid,
|
|
6
|
+
RawGuidUint8Array,
|
|
7
|
+
ShortHexGuid,
|
|
8
|
+
} from '../types';
|
|
9
|
+
|
|
10
|
+
export interface IGuidV4 {
|
|
11
|
+
/**
|
|
12
|
+
* Returns the GUID as a raw buffer.
|
|
13
|
+
*/
|
|
14
|
+
get asRawGuidUint8Array(): RawGuidUint8Array;
|
|
15
|
+
/**
|
|
16
|
+
* Returns the GUID as a full hex string.
|
|
17
|
+
*/
|
|
18
|
+
get asFullHexGuid(): FullHexGuid;
|
|
19
|
+
/**
|
|
20
|
+
* Returns the GUID as a Uint8Array.
|
|
21
|
+
*/
|
|
22
|
+
get asUint8Array(): Uint8Array;
|
|
23
|
+
/**
|
|
24
|
+
* Returns the GUID as a short hex string.
|
|
25
|
+
*/
|
|
26
|
+
get asShortHexGuid(): ShortHexGuid;
|
|
27
|
+
/**
|
|
28
|
+
* Returns the GUID as a BigInt.
|
|
29
|
+
*/
|
|
30
|
+
get asBigIntGuid(): BigIntGuid;
|
|
31
|
+
/**
|
|
32
|
+
* Returns the GUID as a Base64 string.
|
|
33
|
+
*/
|
|
34
|
+
get asBase64Guid(): Base64Guid;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Returns the GUID as a base64 string
|
|
38
|
+
*/
|
|
39
|
+
serialize(): string;
|
|
40
|
+
/**
|
|
41
|
+
* Returns the GUID as a JSON string
|
|
42
|
+
*/
|
|
43
|
+
toJson(): string;
|
|
44
|
+
/**
|
|
45
|
+
* Returns the GUID as a Base64 string
|
|
46
|
+
*/
|
|
47
|
+
toString(): Base64Guid;
|
|
48
|
+
/**
|
|
49
|
+
* Compares this GUID to another GUID
|
|
50
|
+
* @param other The GUID to compare to
|
|
51
|
+
*/
|
|
52
|
+
equals(other: IGuidV4): boolean;
|
|
53
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standardized error interface for Digital Defiance libraries
|
|
3
|
+
* Ensures consistent error handling across the ecosystem
|
|
4
|
+
*/
|
|
5
|
+
export interface LibraryError extends Error {
|
|
6
|
+
/** The library that generated this error */
|
|
7
|
+
readonly library: string;
|
|
8
|
+
/** Unique error code for programmatic handling */
|
|
9
|
+
readonly errorCode: string;
|
|
10
|
+
/** HTTP-style status code */
|
|
11
|
+
readonly statusCode: number;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Interface for resources that can be disposed
|
|
16
|
+
* Ensures consistent memory management across libraries
|
|
17
|
+
*/
|
|
18
|
+
export interface DisposableResource {
|
|
19
|
+
/** Dispose of the resource and clean up memory */
|
|
20
|
+
dispose(): void;
|
|
21
|
+
/** Whether the resource has been disposed */
|
|
22
|
+
readonly isDisposed: boolean;
|
|
23
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Wallet } from '@ethereumjs/wallet';
|
|
2
|
+
import { EmailString } from '../email-string';
|
|
3
|
+
import MemberType from '../enumerations/member-type';
|
|
4
|
+
import { GuidV4 } from '../guid';
|
|
5
|
+
import { SecureBuffer } from '../secure-buffer';
|
|
6
|
+
import { SecureString } from '../secure-string';
|
|
7
|
+
import { SignatureUint8Array } from '../types';
|
|
8
|
+
import { IECIESConstants } from './ecies-consts';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Operational interface for member - defines getters and methods
|
|
12
|
+
*/
|
|
13
|
+
export interface IMemberOperational<
|
|
14
|
+
TID = GuidV4,
|
|
15
|
+
TData = Uint8Array,
|
|
16
|
+
TSignature = SignatureUint8Array,
|
|
17
|
+
> {
|
|
18
|
+
// Required getters
|
|
19
|
+
get id(): TID;
|
|
20
|
+
get type(): MemberType;
|
|
21
|
+
get name(): string;
|
|
22
|
+
get email(): EmailString;
|
|
23
|
+
get publicKey(): Uint8Array;
|
|
24
|
+
get creatorId(): TID;
|
|
25
|
+
get dateCreated(): Date;
|
|
26
|
+
get dateUpdated(): Date;
|
|
27
|
+
|
|
28
|
+
// Optional private data getters
|
|
29
|
+
get privateKey(): SecureBuffer | undefined;
|
|
30
|
+
get wallet(): Wallet | undefined;
|
|
31
|
+
|
|
32
|
+
// State getters
|
|
33
|
+
get hasPrivateKey(): boolean;
|
|
34
|
+
|
|
35
|
+
// Methods
|
|
36
|
+
sign(data: TData): TSignature;
|
|
37
|
+
verify(signature: TSignature, data: TData): boolean;
|
|
38
|
+
encryptData(data: string | TData): Promise<TData>;
|
|
39
|
+
decryptData(encryptedData: TData): Promise<TData>;
|
|
40
|
+
toJson(): string;
|
|
41
|
+
|
|
42
|
+
// Private key management
|
|
43
|
+
loadWallet(mnemonic: SecureString, eciesParams?: IECIESConstants): void;
|
|
44
|
+
unloadPrivateKey(): void;
|
|
45
|
+
unloadWallet(): void;
|
|
46
|
+
unloadWalletAndPrivateKey(): void;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Extended operational interface for test members
|
|
51
|
+
*/
|
|
52
|
+
export interface ITestMemberOperational extends IMemberOperational {
|
|
53
|
+
get mnemonic(): SecureString | undefined;
|
|
54
|
+
}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { MemberType } from '../enumerations/member-type';
|
|
2
|
+
|
|
2
3
|
/**
|
|
3
4
|
* Storage format for member data - all serializable types
|
|
4
5
|
*/
|
|
5
6
|
export interface IMemberStorageData {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
id: string;
|
|
8
|
+
type: MemberType;
|
|
9
|
+
name: string;
|
|
10
|
+
email: string;
|
|
11
|
+
publicKey: string; // base64
|
|
12
|
+
creatorId: string;
|
|
13
|
+
dateCreated: string; // ISO string
|
|
14
|
+
dateUpdated: string; // ISO string
|
|
14
15
|
}
|
|
16
|
+
|
|
15
17
|
/**
|
|
16
18
|
* Extended storage format for test member data
|
|
17
19
|
*/
|
|
18
20
|
export interface ITestMemberStorageData extends IMemberStorageData {
|
|
19
|
-
|
|
21
|
+
mnemonic?: string;
|
|
20
22
|
}
|
|
21
|
-
//# sourceMappingURL=member-storage.d.ts.map
|
package/{dist/interfaces/member-with-mnemonic.d.ts → src/interfaces/member-with-mnemonic.ts}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Member } from '../member';
|
|
2
2
|
import { SecureString } from '../secure-string';
|
|
3
|
+
|
|
3
4
|
export interface IMemberWithMnemonic {
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
member: Member;
|
|
6
|
+
mnemonic: SecureString;
|
|
6
7
|
}
|
|
7
|
-
//# sourceMappingURL=member-with-mnemonic.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface IPBkdf2Consts {
|
|
2
|
+
/** Hash algorithm (sha512) */
|
|
3
|
+
ALGORITHM: string;
|
|
4
|
+
|
|
5
|
+
/** Number of bytes in a salt. */
|
|
6
|
+
SALT_BYTES: number;
|
|
7
|
+
|
|
8
|
+
/** Expected number of pbkdf2 iterations per second when hashing a password. */
|
|
9
|
+
ITERATIONS_PER_SECOND: number;
|
|
10
|
+
}
|