@digitaldefiance/ecies-lib 4.4.2 → 4.4.4
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/LICENSE +21 -0
- package/package.json +9 -6
- package/src/builders/ecies-builder.ts +39 -0
- package/src/builders/{index.js → index.ts} +1 -1
- package/src/builders/member-builder.ts +155 -0
- package/src/constants.ts +609 -0
- package/src/core/errors/crypto-error.ts +78 -0
- package/src/core/{index.js → index.ts} +1 -1
- package/src/core/types/result.ts +19 -0
- package/src/email-string.ts +82 -0
- package/src/enumerations/disposed-error-type.ts +11 -0
- package/src/enumerations/ecies-cipher-suite.ts +4 -0
- package/src/enumerations/ecies-encryption-type.ts +41 -0
- package/src/enumerations/ecies-error-type.ts +43 -0
- package/src/enumerations/ecies-string-key.ts +205 -0
- package/src/enumerations/ecies-version.ts +3 -0
- package/src/enumerations/guid-brand-type.ts +26 -0
- package/src/enumerations/guid-error-type.ts +6 -0
- package/src/enumerations/id-provider-error-type.ts +50 -0
- package/src/enumerations/{index.js → 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/src/enumerations/{member-type.d.ts → 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 +36 -0
- package/src/errors/ecies.ts +153 -0
- package/src/errors/guid.ts +130 -0
- package/src/errors/id-provider.ts +40 -0
- package/src/errors/{index.d.ts → index.ts} +0 -1
- package/src/errors/invalid-email.ts +23 -0
- package/src/errors/length.ts +19 -0
- package/src/errors/member.ts +20 -0
- package/src/errors/pbkdf2.ts +20 -0
- package/src/errors/secure-storage.ts +17 -0
- package/src/errors/simple-ecies.ts +21 -0
- package/src/errors/simple-test-error.ts +6 -0
- package/src/i18n-setup.ts +130 -0
- package/src/{index.js → index.ts} +64 -7
- package/src/interfaces/checksum-config.ts +4 -0
- package/src/interfaces/checksum-consts.ts +13 -0
- package/src/interfaces/configuration-provenance.ts +54 -0
- package/src/interfaces/constants.ts +75 -0
- package/src/interfaces/ecies-config.ts +8 -0
- package/src/interfaces/ecies-consts.ts +74 -0
- package/src/interfaces/ecies-file-service.ts +6 -0
- package/src/interfaces/encrypted-chunk.ts +64 -0
- package/src/interfaces/encryption-state.ts +19 -0
- package/src/interfaces/frontend-member-operational.ts +77 -0
- package/src/interfaces/guid.ts +86 -0
- package/src/interfaces/id-provider.ts +152 -0
- package/src/interfaces/{index.d.ts → index.ts} +0 -1
- package/src/interfaces/invariant.ts +60 -0
- package/src/interfaces/library-error.ts +23 -0
- package/src/interfaces/{member-storage.d.ts → member-storage.ts} +11 -10
- package/src/interfaces/{member-with-mnemonic.d.ts → member-with-mnemonic.ts} +3 -3
- package/src/interfaces/member.ts +84 -0
- package/src/interfaces/multi-recipient-chunk.ts +61 -0
- 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/interfaces/stream-config.ts +17 -0
- package/src/interfaces/stream-header.ts +34 -0
- package/src/interfaces/stream-progress.ts +31 -0
- package/src/lib/configuration-provenance-utils.ts +26 -0
- package/src/lib/crypto-container.ts +64 -0
- package/src/lib/guid.ts +1097 -0
- package/src/lib/id-providers/custom-provider.ts +109 -0
- package/src/lib/id-providers/guidv4-provider.ts +141 -0
- package/src/lib/id-providers/{index.d.ts → index.ts} +6 -5
- package/src/lib/id-providers/objectid-provider.ts +125 -0
- package/src/lib/id-providers/uuid-provider.ts +133 -0
- package/src/lib/{index.js → index.ts} +2 -2
- package/src/lib/invariant-validator.ts +133 -0
- package/src/lib/invariants/encryption-algorithm-consistency.ts +73 -0
- package/src/lib/invariants/{index.js → index.ts} +0 -1
- package/src/lib/invariants/pbkdf2-profiles-validity.ts +78 -0
- package/src/lib/invariants/recipient-id-consistency.ts +46 -0
- package/src/lib/multi-recipient-chunk-utils.ts +63 -0
- package/src/member.ts +495 -0
- package/src/{pbkdf2-profiles.d.ts → pbkdf2-profiles.ts} +2 -2
- package/src/phone-number.ts +18 -0
- package/src/regexes.ts +10 -0
- package/src/secure-buffer.ts +226 -0
- package/src/secure-string.ts +244 -0
- package/src/services/aes-gcm.ts +220 -0
- package/src/services/chunk-processor.ts +188 -0
- package/src/services/ecies/README.md +147 -0
- package/src/services/ecies/crypto-core.ts +292 -0
- package/src/services/ecies/example.ts +185 -0
- package/src/services/ecies/file.ts +167 -0
- package/src/services/ecies/{index.js → index.ts} +2 -1
- package/src/services/ecies/integration.ts +241 -0
- package/src/services/ecies/interfaces.ts +62 -0
- package/src/services/ecies/manual-test.ts +219 -0
- package/src/services/ecies/multi-recipient.ts +545 -0
- package/src/services/ecies/service.ts +370 -0
- package/src/services/ecies/signature.ts +93 -0
- package/src/services/ecies/single-recipient.ts +476 -0
- package/src/services/encryption-stream.ts +435 -0
- package/src/services/{index.js → index.ts} +0 -1
- package/src/services/multi-recipient-processor.ts +377 -0
- package/src/services/password-login.ts +226 -0
- package/src/services/pbkdf2.ts +169 -0
- package/src/services/progress-tracker.ts +128 -0
- package/src/services/resumable-encryption.ts +135 -0
- package/src/services/xor.ts +65 -0
- package/src/test-mocks/index.ts +1 -0
- package/src/test-mocks/mock-frontend-member.ts +276 -0
- package/src/{testing.js → testing.ts} +0 -1
- package/src/translations/{de.js → de.ts} +112 -56
- package/src/translations/{en-US.js → en-US.ts} +116 -58
- package/src/translations/{es.js → es.ts} +134 -67
- package/src/translations/{fr.js → fr.ts} +129 -64
- package/src/translations/{ja.js → ja.ts} +111 -55
- package/src/translations/{uk.js → uk.ts} +132 -67
- package/src/translations/{zh-cn.js → zh-cn.ts} +60 -29
- package/src/types/deep-partial.ts +11 -0
- package/src/{types.d.ts → types.ts} +15 -7
- package/src/utils/encryption-type-utils.ts +76 -0
- package/src/utils.ts +329 -0
- package/src/builders/ecies-builder.d.ts +0 -18
- package/src/builders/ecies-builder.d.ts.map +0 -1
- package/src/builders/ecies-builder.js +0 -30
- package/src/builders/ecies-builder.js.map +0 -1
- package/src/builders/index.d.ts +0 -6
- package/src/builders/index.d.ts.map +0 -1
- package/src/builders/index.js.map +0 -1
- package/src/builders/member-builder.d.ts +0 -51
- package/src/builders/member-builder.d.ts.map +0 -1
- package/src/builders/member-builder.js +0 -97
- package/src/builders/member-builder.js.map +0 -1
- package/src/constants.d.ts +0 -60
- package/src/constants.d.ts.map +0 -1
- package/src/constants.js +0 -446
- package/src/constants.js.map +0 -1
- package/src/core/errors/crypto-error.d.ts +0 -34
- package/src/core/errors/crypto-error.d.ts.map +0 -1
- package/src/core/errors/crypto-error.js +0 -56
- package/src/core/errors/crypto-error.js.map +0 -1
- package/src/core/index.d.ts +0 -6
- package/src/core/index.d.ts.map +0 -1
- package/src/core/index.js.map +0 -1
- package/src/core/types/result.d.ts +0 -16
- package/src/core/types/result.d.ts.map +0 -1
- package/src/core/types/result.js +0 -12
- package/src/core/types/result.js.map +0 -1
- package/src/email-string.d.ts +0 -42
- package/src/email-string.d.ts.map +0 -1
- package/src/email-string.js +0 -67
- package/src/email-string.js.map +0 -1
- package/src/enumerations/disposed-error-type.d.ts +0 -12
- package/src/enumerations/disposed-error-type.d.ts.map +0 -1
- package/src/enumerations/disposed-error-type.js +0 -13
- package/src/enumerations/disposed-error-type.js.map +0 -1
- package/src/enumerations/ecies-cipher-suite.d.ts +0 -4
- package/src/enumerations/ecies-cipher-suite.d.ts.map +0 -1
- package/src/enumerations/ecies-cipher-suite.js +0 -6
- package/src/enumerations/ecies-cipher-suite.js.map +0 -1
- package/src/enumerations/ecies-encryption-type.d.ts +0 -11
- package/src/enumerations/ecies-encryption-type.d.ts.map +0 -1
- package/src/enumerations/ecies-encryption-type.js +0 -27
- package/src/enumerations/ecies-encryption-type.js.map +0 -1
- package/src/enumerations/ecies-error-type.d.ts +0 -44
- package/src/enumerations/ecies-error-type.d.ts.map +0 -1
- package/src/enumerations/ecies-error-type.js +0 -45
- package/src/enumerations/ecies-error-type.js.map +0 -1
- package/src/enumerations/ecies-string-key.d.ts +0 -192
- package/src/enumerations/ecies-string-key.d.ts.map +0 -1
- package/src/enumerations/ecies-string-key.js +0 -199
- package/src/enumerations/ecies-string-key.js.map +0 -1
- package/src/enumerations/ecies-version.d.ts +0 -4
- package/src/enumerations/ecies-version.d.ts.map +0 -1
- package/src/enumerations/ecies-version.js +0 -5
- package/src/enumerations/ecies-version.js.map +0 -1
- package/src/enumerations/guid-brand-type.d.ts +0 -27
- package/src/enumerations/guid-brand-type.d.ts.map +0 -1
- package/src/enumerations/guid-brand-type.js +0 -28
- package/src/enumerations/guid-brand-type.js.map +0 -1
- package/src/enumerations/guid-error-type.d.ts +0 -7
- package/src/enumerations/guid-error-type.d.ts.map +0 -1
- package/src/enumerations/guid-error-type.js +0 -8
- package/src/enumerations/guid-error-type.js.map +0 -1
- package/src/enumerations/id-provider-error-type.d.ts +0 -43
- package/src/enumerations/id-provider-error-type.d.ts.map +0 -1
- package/src/enumerations/id-provider-error-type.js +0 -44
- package/src/enumerations/id-provider-error-type.js.map +0 -1
- package/src/enumerations/index.d.ts +0 -18
- package/src/enumerations/index.d.ts.map +0 -1
- package/src/enumerations/index.js.map +0 -1
- package/src/enumerations/invalid-email-type.d.ts +0 -6
- package/src/enumerations/invalid-email-type.d.ts.map +0 -1
- package/src/enumerations/invalid-email-type.js +0 -7
- package/src/enumerations/invalid-email-type.js.map +0 -1
- package/src/enumerations/length-encoding-type.d.ts +0 -7
- package/src/enumerations/length-encoding-type.d.ts.map +0 -1
- package/src/enumerations/length-encoding-type.js +0 -8
- package/src/enumerations/length-encoding-type.js.map +0 -1
- package/src/enumerations/length-error-type.d.ts +0 -6
- package/src/enumerations/length-error-type.d.ts.map +0 -1
- package/src/enumerations/length-error-type.js +0 -7
- package/src/enumerations/length-error-type.js.map +0 -1
- package/src/enumerations/member-error-type.d.ts +0 -87
- package/src/enumerations/member-error-type.d.ts.map +0 -1
- package/src/enumerations/member-error-type.js +0 -88
- package/src/enumerations/member-error-type.js.map +0 -1
- package/src/enumerations/member-type.d.ts.map +0 -1
- package/src/enumerations/member-type.js +0 -16
- package/src/enumerations/member-type.js.map +0 -1
- package/src/enumerations/password-login-error-type.d.ts +0 -5
- package/src/enumerations/password-login-error-type.d.ts.map +0 -1
- package/src/enumerations/password-login-error-type.js +0 -6
- package/src/enumerations/password-login-error-type.js.map +0 -1
- package/src/enumerations/pbkdf2-error-type.d.ts +0 -6
- package/src/enumerations/pbkdf2-error-type.d.ts.map +0 -1
- package/src/enumerations/pbkdf2-error-type.js +0 -7
- package/src/enumerations/pbkdf2-error-type.js.map +0 -1
- package/src/enumerations/pbkdf2-profile.d.ts +0 -6
- package/src/enumerations/pbkdf2-profile.d.ts.map +0 -1
- package/src/enumerations/pbkdf2-profile.js +0 -7
- package/src/enumerations/pbkdf2-profile.js.map +0 -1
- package/src/enumerations/secure-storage-error-type.d.ts +0 -6
- package/src/enumerations/secure-storage-error-type.d.ts.map +0 -1
- package/src/enumerations/secure-storage-error-type.js +0 -7
- package/src/enumerations/secure-storage-error-type.js.map +0 -1
- package/src/errors/disposed.d.ts +0 -22
- package/src/errors/disposed.d.ts.map +0 -1
- package/src/errors/disposed.js +0 -28
- package/src/errors/disposed.js.map +0 -1
- package/src/errors/ecies.d.ts +0 -52
- package/src/errors/ecies.d.ts.map +0 -1
- package/src/errors/ecies.js +0 -78
- package/src/errors/ecies.js.map +0 -1
- package/src/errors/guid.d.ts +0 -49
- package/src/errors/guid.d.ts.map +0 -1
- package/src/errors/guid.js +0 -96
- package/src/errors/guid.js.map +0 -1
- package/src/errors/id-provider.d.ts +0 -23
- package/src/errors/id-provider.d.ts.map +0 -1
- package/src/errors/id-provider.js +0 -29
- package/src/errors/id-provider.js.map +0 -1
- package/src/errors/index.d.ts.map +0 -1
- package/src/errors/index.js +0 -10
- package/src/errors/index.js.map +0 -1
- package/src/errors/invalid-email.d.ts +0 -8
- package/src/errors/invalid-email.d.ts.map +0 -1
- package/src/errors/invalid-email.js +0 -15
- package/src/errors/invalid-email.js.map +0 -1
- package/src/errors/length.d.ts +0 -7
- package/src/errors/length.d.ts.map +0 -1
- package/src/errors/length.js +0 -11
- package/src/errors/length.js.map +0 -1
- package/src/errors/member.d.ts +0 -7
- package/src/errors/member.d.ts.map +0 -1
- package/src/errors/member.js +0 -11
- package/src/errors/member.js.map +0 -1
- package/src/errors/pbkdf2.d.ts +0 -7
- package/src/errors/pbkdf2.d.ts.map +0 -1
- package/src/errors/pbkdf2.js +0 -11
- package/src/errors/pbkdf2.js.map +0 -1
- package/src/errors/secure-storage.d.ts +0 -7
- package/src/errors/secure-storage.d.ts.map +0 -1
- package/src/errors/secure-storage.js +0 -12
- package/src/errors/secure-storage.js.map +0 -1
- package/src/errors/simple-ecies.d.ts +0 -6
- package/src/errors/simple-ecies.d.ts.map +0 -1
- package/src/errors/simple-ecies.js +0 -12
- package/src/errors/simple-ecies.js.map +0 -1
- package/src/errors/simple-test-error.d.ts +0 -4
- package/src/errors/simple-test-error.d.ts.map +0 -1
- package/src/errors/simple-test-error.js +0 -7
- package/src/errors/simple-test-error.js.map +0 -1
- package/src/i18n-setup.d.ts +0 -32
- package/src/i18n-setup.d.ts.map +0 -1
- package/src/i18n-setup.js +0 -101
- package/src/i18n-setup.js.map +0 -1
- package/src/index.d.ts +0 -80
- package/src/index.d.ts.map +0 -1
- package/src/index.js.map +0 -1
- package/src/interfaces/checksum-config.d.ts +0 -5
- package/src/interfaces/checksum-config.d.ts.map +0 -1
- package/src/interfaces/checksum-config.js +0 -2
- package/src/interfaces/checksum-config.js.map +0 -1
- package/src/interfaces/checksum-consts.d.ts +0 -11
- package/src/interfaces/checksum-consts.d.ts.map +0 -1
- package/src/interfaces/checksum-consts.js +0 -2
- package/src/interfaces/checksum-consts.js.map +0 -1
- package/src/interfaces/configuration-provenance.d.ts +0 -43
- package/src/interfaces/configuration-provenance.d.ts.map +0 -1
- package/src/interfaces/configuration-provenance.js +0 -3
- package/src/interfaces/configuration-provenance.js.map +0 -1
- package/src/interfaces/constants.d.ts +0 -70
- package/src/interfaces/constants.d.ts.map +0 -1
- package/src/interfaces/constants.js +0 -2
- package/src/interfaces/constants.js.map +0 -1
- package/src/interfaces/ecies-config.d.ts +0 -9
- package/src/interfaces/ecies-config.d.ts.map +0 -1
- package/src/interfaces/ecies-config.js +0 -2
- package/src/interfaces/ecies-config.js.map +0 -1
- package/src/interfaces/ecies-consts.d.ts +0 -61
- package/src/interfaces/ecies-consts.d.ts.map +0 -1
- package/src/interfaces/ecies-consts.js +0 -2
- package/src/interfaces/ecies-consts.js.map +0 -1
- package/src/interfaces/ecies-file-service.d.ts +0 -7
- package/src/interfaces/ecies-file-service.d.ts.map +0 -1
- package/src/interfaces/ecies-file-service.js +0 -2
- package/src/interfaces/ecies-file-service.js.map +0 -1
- package/src/interfaces/encrypted-chunk.d.ts +0 -55
- package/src/interfaces/encrypted-chunk.d.ts.map +0 -1
- package/src/interfaces/encrypted-chunk.js +0 -12
- package/src/interfaces/encrypted-chunk.js.map +0 -1
- package/src/interfaces/encryption-state.d.ts +0 -18
- package/src/interfaces/encryption-state.d.ts.map +0 -1
- package/src/interfaces/encryption-state.js +0 -2
- package/src/interfaces/encryption-state.js.map +0 -1
- package/src/interfaces/frontend-member-operational.d.ts +0 -51
- package/src/interfaces/frontend-member-operational.d.ts.map +0 -1
- package/src/interfaces/frontend-member-operational.js +0 -2
- package/src/interfaces/frontend-member-operational.js.map +0 -1
- package/src/interfaces/guid.d.ts +0 -78
- package/src/interfaces/guid.d.ts.map +0 -1
- package/src/interfaces/guid.js +0 -2
- package/src/interfaces/guid.js.map +0 -1
- package/src/interfaces/id-provider.d.ts +0 -107
- package/src/interfaces/id-provider.d.ts.map +0 -1
- package/src/interfaces/id-provider.js +0 -52
- package/src/interfaces/id-provider.js.map +0 -1
- package/src/interfaces/index.d.ts.map +0 -1
- package/src/interfaces/index.js +0 -13
- package/src/interfaces/index.js.map +0 -1
- package/src/interfaces/invariant.d.ts +0 -46
- package/src/interfaces/invariant.d.ts.map +0 -1
- package/src/interfaces/invariant.js +0 -18
- package/src/interfaces/invariant.js.map +0 -1
- package/src/interfaces/library-error.d.ts +0 -23
- package/src/interfaces/library-error.d.ts.map +0 -1
- package/src/interfaces/library-error.js +0 -2
- package/src/interfaces/library-error.js.map +0 -1
- package/src/interfaces/member-storage.d.ts.map +0 -1
- package/src/interfaces/member-storage.js +0 -2
- package/src/interfaces/member-storage.js.map +0 -1
- package/src/interfaces/member-with-mnemonic.d.ts.map +0 -1
- package/src/interfaces/member-with-mnemonic.js +0 -2
- package/src/interfaces/member-with-mnemonic.js.map +0 -1
- package/src/interfaces/member.d.ts +0 -55
- package/src/interfaces/member.d.ts.map +0 -1
- package/src/interfaces/member.js +0 -2
- package/src/interfaces/member.js.map +0 -1
- package/src/interfaces/multi-recipient-chunk.d.ts +0 -54
- package/src/interfaces/multi-recipient-chunk.d.ts.map +0 -1
- package/src/interfaces/multi-recipient-chunk.js +0 -11
- package/src/interfaces/multi-recipient-chunk.js.map +0 -1
- package/src/interfaces/pbkdf2-config.d.ts +0 -7
- package/src/interfaces/pbkdf2-config.d.ts.map +0 -1
- package/src/interfaces/pbkdf2-config.js +0 -2
- package/src/interfaces/pbkdf2-config.js.map +0 -1
- package/src/interfaces/pbkdf2-consts.d.ts +0 -9
- package/src/interfaces/pbkdf2-consts.d.ts.map +0 -1
- package/src/interfaces/pbkdf2-consts.js +0 -2
- package/src/interfaces/pbkdf2-consts.js.map +0 -1
- package/src/interfaces/pbkdf2-result.d.ts +0 -6
- package/src/interfaces/pbkdf2-result.d.ts.map +0 -1
- package/src/interfaces/pbkdf2-result.js +0 -2
- package/src/interfaces/pbkdf2-result.js.map +0 -1
- package/src/interfaces/stream-config.d.ts +0 -14
- package/src/interfaces/stream-config.d.ts.map +0 -1
- package/src/interfaces/stream-config.js +0 -8
- package/src/interfaces/stream-config.js.map +0 -1
- package/src/interfaces/stream-header.d.ts +0 -29
- package/src/interfaces/stream-header.d.ts.map +0 -1
- package/src/interfaces/stream-header.js +0 -9
- package/src/interfaces/stream-header.js.map +0 -1
- package/src/interfaces/stream-progress.d.ts +0 -33
- package/src/interfaces/stream-progress.d.ts.map +0 -1
- package/src/interfaces/stream-progress.js +0 -2
- package/src/interfaces/stream-progress.js.map +0 -1
- package/src/lib/configuration-provenance-utils.d.ts +0 -11
- package/src/lib/configuration-provenance-utils.d.ts.map +0 -1
- package/src/lib/configuration-provenance-utils.js +0 -23
- package/src/lib/configuration-provenance-utils.js.map +0 -1
- package/src/lib/crypto-container.d.ts +0 -25
- package/src/lib/crypto-container.d.ts.map +0 -1
- package/src/lib/crypto-container.js +0 -46
- package/src/lib/crypto-container.js.map +0 -1
- package/src/lib/guid.d.ts +0 -344
- package/src/lib/guid.d.ts.map +0 -1
- package/src/lib/guid.js +0 -914
- package/src/lib/guid.js.map +0 -1
- package/src/lib/id-providers/custom-provider.d.ts +0 -46
- package/src/lib/id-providers/custom-provider.d.ts.map +0 -1
- package/src/lib/id-providers/custom-provider.js +0 -85
- package/src/lib/id-providers/custom-provider.js.map +0 -1
- package/src/lib/id-providers/guidv4-provider.d.ts +0 -56
- package/src/lib/id-providers/guidv4-provider.d.ts.map +0 -1
- package/src/lib/id-providers/guidv4-provider.js +0 -122
- package/src/lib/id-providers/guidv4-provider.js.map +0 -1
- package/src/lib/id-providers/index.d.ts.map +0 -1
- package/src/lib/id-providers/index.js +0 -29
- package/src/lib/id-providers/index.js.map +0 -1
- package/src/lib/id-providers/objectid-provider.d.ts +0 -43
- package/src/lib/id-providers/objectid-provider.d.ts.map +0 -1
- package/src/lib/id-providers/objectid-provider.js +0 -104
- package/src/lib/id-providers/objectid-provider.js.map +0 -1
- package/src/lib/id-providers/uuid-provider.d.ts +0 -52
- package/src/lib/id-providers/uuid-provider.d.ts.map +0 -1
- package/src/lib/id-providers/uuid-provider.js +0 -110
- package/src/lib/id-providers/uuid-provider.js.map +0 -1
- package/src/lib/index.d.ts +0 -6
- package/src/lib/index.d.ts.map +0 -1
- package/src/lib/index.js.map +0 -1
- package/src/lib/invariant-validator.d.ts +0 -59
- package/src/lib/invariant-validator.d.ts.map +0 -1
- package/src/lib/invariant-validator.js +0 -97
- package/src/lib/invariant-validator.js.map +0 -1
- package/src/lib/invariants/encryption-algorithm-consistency.d.ts +0 -17
- package/src/lib/invariants/encryption-algorithm-consistency.d.ts.map +0 -1
- package/src/lib/invariants/encryption-algorithm-consistency.js +0 -49
- package/src/lib/invariants/encryption-algorithm-consistency.js.map +0 -1
- package/src/lib/invariants/index.d.ts +0 -4
- package/src/lib/invariants/index.d.ts.map +0 -1
- package/src/lib/invariants/index.js.map +0 -1
- package/src/lib/invariants/pbkdf2-profiles-validity.d.ts +0 -16
- package/src/lib/invariants/pbkdf2-profiles-validity.d.ts.map +0 -1
- package/src/lib/invariants/pbkdf2-profiles-validity.js +0 -58
- package/src/lib/invariants/pbkdf2-profiles-validity.js.map +0 -1
- package/src/lib/invariants/recipient-id-consistency.d.ts +0 -18
- package/src/lib/invariants/recipient-id-consistency.d.ts.map +0 -1
- package/src/lib/invariants/recipient-id-consistency.js +0 -31
- package/src/lib/invariants/recipient-id-consistency.js.map +0 -1
- package/src/lib/multi-recipient-chunk-utils.d.ts +0 -38
- package/src/lib/multi-recipient-chunk-utils.d.ts.map +0 -1
- package/src/lib/multi-recipient-chunk-utils.js +0 -41
- package/src/lib/multi-recipient-chunk-utils.js.map +0 -1
- package/src/member.d.ts +0 -92
- package/src/member.d.ts.map +0 -1
- package/src/member.js +0 -322
- package/src/member.js.map +0 -1
- package/src/pbkdf2-profiles.d.ts.map +0 -1
- package/src/pbkdf2-profiles.js +0 -2
- package/src/pbkdf2-profiles.js.map +0 -1
- package/src/phone-number.d.ts +0 -6
- package/src/phone-number.d.ts.map +0 -1
- package/src/phone-number.js +0 -18
- package/src/phone-number.js.map +0 -1
- package/src/regexes.d.ts +0 -7
- package/src/regexes.d.ts.map +0 -1
- package/src/regexes.js +0 -7
- package/src/regexes.js.map +0 -1
- package/src/secure-buffer.d.ts +0 -61
- package/src/secure-buffer.d.ts.map +0 -1
- package/src/secure-buffer.js +0 -201
- package/src/secure-buffer.js.map +0 -1
- package/src/secure-string.d.ts +0 -46
- package/src/secure-string.d.ts.map +0 -1
- package/src/secure-string.js +0 -206
- package/src/secure-string.js.map +0 -1
- package/src/services/aes-gcm.d.ts +0 -57
- package/src/services/aes-gcm.d.ts.map +0 -1
- package/src/services/aes-gcm.js +0 -142
- package/src/services/aes-gcm.js.map +0 -1
- package/src/services/chunk-processor.d.ts +0 -31
- package/src/services/chunk-processor.d.ts.map +0 -1
- package/src/services/chunk-processor.js +0 -145
- package/src/services/chunk-processor.js.map +0 -1
- package/src/services/ecies/crypto-core.d.ts +0 -72
- package/src/services/ecies/crypto-core.d.ts.map +0 -1
- package/src/services/ecies/crypto-core.js +0 -205
- package/src/services/ecies/crypto-core.js.map +0 -1
- package/src/services/ecies/example.d.ts +0 -25
- package/src/services/ecies/example.d.ts.map +0 -1
- package/src/services/ecies/example.js +0 -121
- package/src/services/ecies/example.js.map +0 -1
- package/src/services/ecies/file.d.ts +0 -18
- package/src/services/ecies/file.d.ts.map +0 -1
- package/src/services/ecies/file.js +0 -106
- package/src/services/ecies/file.js.map +0 -1
- package/src/services/ecies/index.d.ts +0 -38
- package/src/services/ecies/index.d.ts.map +0 -1
- package/src/services/ecies/index.js.map +0 -1
- package/src/services/ecies/integration.d.ts +0 -59
- package/src/services/ecies/integration.d.ts.map +0 -1
- package/src/services/ecies/integration.js +0 -167
- package/src/services/ecies/integration.js.map +0 -1
- package/src/services/ecies/interfaces.d.ts +0 -54
- package/src/services/ecies/interfaces.d.ts.map +0 -1
- package/src/services/ecies/interfaces.js +0 -5
- package/src/services/ecies/interfaces.js.map +0 -1
- package/src/services/ecies/manual-test.d.ts +0 -29
- package/src/services/ecies/manual-test.d.ts.map +0 -1
- package/src/services/ecies/manual-test.js +0 -163
- package/src/services/ecies/manual-test.js.map +0 -1
- package/src/services/ecies/multi-recipient.d.ts +0 -56
- package/src/services/ecies/multi-recipient.d.ts.map +0 -1
- package/src/services/ecies/multi-recipient.js +0 -344
- package/src/services/ecies/multi-recipient.js.map +0 -1
- package/src/services/ecies/service.d.ts +0 -120
- package/src/services/ecies/service.d.ts.map +0 -1
- package/src/services/ecies/service.js +0 -210
- package/src/services/ecies/service.js.map +0 -1
- package/src/services/ecies/signature.d.ts +0 -27
- package/src/services/ecies/signature.d.ts.map +0 -1
- package/src/services/ecies/signature.js +0 -72
- package/src/services/ecies/signature.js.map +0 -1
- package/src/services/ecies/single-recipient.d.ts +0 -46
- package/src/services/ecies/single-recipient.d.ts.map +0 -1
- package/src/services/ecies/single-recipient.js +0 -322
- package/src/services/ecies/single-recipient.js.map +0 -1
- package/src/services/encryption-stream.d.ts +0 -71
- package/src/services/encryption-stream.d.ts.map +0 -1
- package/src/services/encryption-stream.js +0 -295
- package/src/services/encryption-stream.js.map +0 -1
- package/src/services/index.d.ts +0 -11
- package/src/services/index.d.ts.map +0 -1
- package/src/services/index.js.map +0 -1
- package/src/services/multi-recipient-processor.d.ts +0 -35
- package/src/services/multi-recipient-processor.d.ts.map +0 -1
- package/src/services/multi-recipient-processor.js +0 -289
- package/src/services/multi-recipient-processor.js.map +0 -1
- package/src/services/password-login.d.ts +0 -47
- package/src/services/password-login.d.ts.map +0 -1
- package/src/services/password-login.js +0 -115
- package/src/services/password-login.js.map +0 -1
- package/src/services/pbkdf2.d.ts +0 -54
- package/src/services/pbkdf2.d.ts.map +0 -1
- package/src/services/pbkdf2.js +0 -108
- package/src/services/pbkdf2.js.map +0 -1
- package/src/services/progress-tracker.d.ts +0 -23
- package/src/services/progress-tracker.d.ts.map +0 -1
- package/src/services/progress-tracker.js +0 -103
- package/src/services/progress-tracker.js.map +0 -1
- package/src/services/resumable-encryption.d.ts +0 -19
- package/src/services/resumable-encryption.d.ts.map +0 -1
- package/src/services/resumable-encryption.js +0 -105
- package/src/services/resumable-encryption.js.map +0 -1
- package/src/services/xor.d.ts +0 -37
- package/src/services/xor.d.ts.map +0 -1
- package/src/services/xor.js +0 -63
- package/src/services/xor.js.map +0 -1
- package/src/test-mocks/index.d.ts +0 -2
- package/src/test-mocks/index.d.ts.map +0 -1
- package/src/test-mocks/index.js +0 -2
- package/src/test-mocks/index.js.map +0 -1
- package/src/test-mocks/mock-frontend-member.d.ts +0 -85
- package/src/test-mocks/mock-frontend-member.d.ts.map +0 -1
- package/src/test-mocks/mock-frontend-member.js +0 -190
- package/src/test-mocks/mock-frontend-member.js.map +0 -1
- package/src/testing.d.ts +0 -2
- package/src/testing.d.ts.map +0 -1
- package/src/testing.js.map +0 -1
- package/src/translations/de.d.ts +0 -4
- package/src/translations/de.d.ts.map +0 -1
- package/src/translations/de.js.map +0 -1
- package/src/translations/en-US.d.ts +0 -4
- package/src/translations/en-US.d.ts.map +0 -1
- package/src/translations/en-US.js.map +0 -1
- package/src/translations/es.d.ts +0 -4
- package/src/translations/es.d.ts.map +0 -1
- package/src/translations/es.js.map +0 -1
- package/src/translations/fr.d.ts +0 -4
- package/src/translations/fr.d.ts.map +0 -1
- package/src/translations/fr.js.map +0 -1
- package/src/translations/ja.d.ts +0 -4
- package/src/translations/ja.d.ts.map +0 -1
- package/src/translations/ja.js.map +0 -1
- package/src/translations/uk.d.ts +0 -4
- package/src/translations/uk.d.ts.map +0 -1
- package/src/translations/uk.js.map +0 -1
- package/src/translations/zh-cn.d.ts +0 -4
- package/src/translations/zh-cn.d.ts.map +0 -1
- package/src/translations/zh-cn.js.map +0 -1
- package/src/types/deep-partial.d.ts +0 -4
- package/src/types/deep-partial.d.ts.map +0 -1
- package/src/types/deep-partial.js +0 -2
- package/src/types/deep-partial.js.map +0 -1
- package/src/types.d.ts.map +0 -1
- package/src/types.js +0 -2
- package/src/types.js.map +0 -1
- package/src/utils/encryption-type-utils.d.ts +0 -29
- package/src/utils/encryption-type-utils.d.ts.map +0 -1
- package/src/utils/encryption-type-utils.js +0 -61
- package/src/utils/encryption-type-utils.js.map +0 -1
- package/src/utils.d.ts +0 -68
- package/src/utils.d.ts.map +0 -1
- package/src/utils.js +0 -273
- package/src/utils.js.map +0 -1
|
@@ -8,26 +8,44 @@
|
|
|
8
8
|
* - Result pattern
|
|
9
9
|
* - i18n 2.0 integration
|
|
10
10
|
*/
|
|
11
|
+
|
|
11
12
|
// Core v2 exports
|
|
12
13
|
export * from './builders';
|
|
13
14
|
export * from './core';
|
|
14
15
|
export * from './lib';
|
|
16
|
+
|
|
15
17
|
// i18n v2
|
|
16
|
-
export {
|
|
18
|
+
export {
|
|
19
|
+
EciesComponentId,
|
|
20
|
+
EciesI18nEngineKey,
|
|
21
|
+
getEciesI18nEngine,
|
|
22
|
+
getEciesTranslation,
|
|
23
|
+
resetEciesI18nEngine,
|
|
24
|
+
safeEciesTranslation,
|
|
25
|
+
} from './i18n-setup';
|
|
26
|
+
|
|
17
27
|
// Re-export existing types and enums (unchanged)
|
|
18
28
|
export { EciesStringKey } from './enumerations/ecies-string-key';
|
|
19
29
|
export { MemberType } from './enumerations/member-type';
|
|
20
30
|
export { Pbkdf2ProfileEnum } from './enumerations/pbkdf2-profile';
|
|
31
|
+
|
|
21
32
|
// Re-export value objects (unchanged)
|
|
22
33
|
export { EmailString } from './email-string';
|
|
23
34
|
export { SecureBuffer } from './secure-buffer';
|
|
24
35
|
export { SecureString } from './secure-string';
|
|
36
|
+
|
|
25
37
|
// Re-export constants (unchanged)
|
|
26
38
|
export { Constants, ConstantsRegistry } from './constants';
|
|
39
|
+
export type { IConstants } from './interfaces';
|
|
27
40
|
// Also export specific interfaces, types, and enums that are needed
|
|
28
41
|
export { ECIES, OBJECT_ID_LENGTH, UINT32_MAX, UINT64_SIZE } from './constants';
|
|
29
42
|
export { EciesCipherSuiteEnum } from './enumerations/ecies-cipher-suite';
|
|
30
|
-
export {
|
|
43
|
+
export {
|
|
44
|
+
EciesEncryptionTypeEnum,
|
|
45
|
+
EciesEncryptionTypeMap,
|
|
46
|
+
type EciesEncryptionType,
|
|
47
|
+
} from './enumerations/ecies-encryption-type';
|
|
48
|
+
|
|
31
49
|
// Export utility functions from utils module (moved from enumerations for circular dependency fix)
|
|
32
50
|
export { ECIESErrorTypeEnum } from './enumerations/ecies-error-type';
|
|
33
51
|
export { EciesVersionEnum } from './enumerations/ecies-version';
|
|
@@ -36,21 +54,55 @@ export { LengthEncodingType } from './enumerations/length-encoding-type';
|
|
|
36
54
|
export { MemberErrorType } from './enumerations/member-error-type';
|
|
37
55
|
export { Pbkdf2ErrorType } from './enumerations/pbkdf2-error-type';
|
|
38
56
|
export { ECIESError } from './errors/ecies';
|
|
39
|
-
export {
|
|
40
|
-
|
|
57
|
+
export type {
|
|
58
|
+
IECIESConfig,
|
|
59
|
+
IECIESConstants,
|
|
60
|
+
IMemberStorageData,
|
|
61
|
+
IPBkdf2Consts,
|
|
62
|
+
IPbkdf2Config,
|
|
63
|
+
} from './interfaces';
|
|
64
|
+
export type { HexString } from './types';
|
|
65
|
+
export {
|
|
66
|
+
getLengthEncodingTypeForLength,
|
|
67
|
+
getLengthEncodingTypeFromValue,
|
|
68
|
+
getLengthForLengthType,
|
|
69
|
+
} from './utils';
|
|
70
|
+
export {
|
|
71
|
+
encryptionTypeEnumToType,
|
|
72
|
+
encryptionTypeToString,
|
|
73
|
+
ensureEciesEncryptionTypeEnum,
|
|
74
|
+
validateEciesEncryptionTypeEnum,
|
|
75
|
+
} from './utils/encryption-type-utils';
|
|
76
|
+
|
|
41
77
|
// ID Provider system
|
|
42
78
|
export { BaseIdProvider } from './interfaces/id-provider';
|
|
79
|
+
export type { IIdProvider } from './interfaces/id-provider';
|
|
43
80
|
export * from './lib/id-providers';
|
|
44
81
|
export { ObjectIdProvider } from './lib/id-providers/objectid-provider';
|
|
82
|
+
|
|
45
83
|
// Invariant validation system
|
|
46
84
|
export { BaseInvariant } from './interfaces/invariant';
|
|
85
|
+
export type { IInvariant } from './interfaces/invariant';
|
|
47
86
|
export { InvariantValidator } from './lib/invariant-validator';
|
|
48
87
|
export * from './lib/invariants';
|
|
88
|
+
|
|
49
89
|
// Configuration helpers
|
|
50
|
-
export {
|
|
51
|
-
|
|
90
|
+
export {
|
|
91
|
+
clearRuntimeConfigurations,
|
|
92
|
+
createRuntimeConfiguration,
|
|
93
|
+
getRuntimeConfiguration,
|
|
94
|
+
registerRuntimeConfiguration,
|
|
95
|
+
unregisterRuntimeConfiguration,
|
|
96
|
+
} from './constants';
|
|
97
|
+
export {
|
|
98
|
+
calculateConfigChecksum,
|
|
99
|
+
captureCreationStack,
|
|
100
|
+
} from './interfaces/configuration-provenance';
|
|
101
|
+
export type { IConfigurationProvenance } from './interfaces/configuration-provenance';
|
|
102
|
+
|
|
52
103
|
// Note: Existing services will be re-exported once migrated to v2
|
|
53
104
|
// For now, import from main index.ts for backward compatibility
|
|
105
|
+
|
|
54
106
|
export * from './constants';
|
|
55
107
|
export * from './email-string';
|
|
56
108
|
export * from './enumerations';
|
|
@@ -59,6 +111,7 @@ export * from './i18n-setup';
|
|
|
59
111
|
export * from './interfaces';
|
|
60
112
|
export * from './interfaces/encrypted-chunk';
|
|
61
113
|
export { ENCRYPTION_STATE_VERSION } from './interfaces/encryption-state';
|
|
114
|
+
export type { IEncryptionState } from './interfaces/encryption-state';
|
|
62
115
|
export * from './interfaces/stream-config';
|
|
63
116
|
export * from './interfaces/stream-header';
|
|
64
117
|
export * from './interfaces/stream-progress';
|
|
@@ -73,11 +126,15 @@ export { ChunkProcessor } from './services/chunk-processor';
|
|
|
73
126
|
export { EciesCryptoCore } from './services/ecies/crypto-core';
|
|
74
127
|
export { ECIESService } from './services/ecies/service';
|
|
75
128
|
export { EncryptionStream } from './services/encryption-stream';
|
|
129
|
+
export type {
|
|
130
|
+
IDecryptStreamOptions,
|
|
131
|
+
IEncryptStreamOptions,
|
|
132
|
+
} from './services/encryption-stream';
|
|
76
133
|
export { PasswordLoginService } from './services/password-login';
|
|
77
134
|
export { Pbkdf2Service } from './services/pbkdf2';
|
|
78
135
|
export { ProgressTracker } from './services/progress-tracker';
|
|
79
136
|
export { ResumableEncryption } from './services/resumable-encryption';
|
|
137
|
+
export type { IResumableOptions } from './services/resumable-encryption';
|
|
80
138
|
export * from './types';
|
|
81
139
|
export * from './utils';
|
|
82
140
|
export { hexToUint8Array, uint8ArrayToHex } from './utils';
|
|
83
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -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,54 @@
|
|
|
1
|
+
import type { DeepPartial } from '../types/deep-partial';
|
|
2
|
+
import type { IConstants } from './constants';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Provenance information for a configuration.
|
|
6
|
+
* Tracks who created it, when, and what modifications were made.
|
|
7
|
+
*/
|
|
8
|
+
export interface IConfigurationProvenance {
|
|
9
|
+
/**
|
|
10
|
+
* The base configuration key this was derived from
|
|
11
|
+
*/
|
|
12
|
+
readonly baseConfigKey: string;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Overrides applied to the base configuration
|
|
16
|
+
*/
|
|
17
|
+
readonly overrides: DeepPartial<IConstants>;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* When this configuration was created
|
|
21
|
+
*/
|
|
22
|
+
readonly timestamp: Date;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Source of the configuration
|
|
26
|
+
* - 'default': The built-in Constants
|
|
27
|
+
* - 'runtime': Created via createRuntimeConfiguration
|
|
28
|
+
* - 'custom': User-provided full configuration
|
|
29
|
+
*/
|
|
30
|
+
readonly source: 'default' | 'runtime' | 'custom';
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* SHA-256 checksum of the final configuration
|
|
34
|
+
* Useful for verifying configuration hasn't been tampered with
|
|
35
|
+
*/
|
|
36
|
+
readonly checksum: string;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Optional description or notes about this configuration
|
|
40
|
+
*/
|
|
41
|
+
readonly description?: string;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Stack trace showing where the configuration was created
|
|
45
|
+
* Useful for debugging unexpected configurations
|
|
46
|
+
*/
|
|
47
|
+
readonly creationStack?: string;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Re-export utility functions from lib
|
|
51
|
+
export {
|
|
52
|
+
calculateConfigChecksum,
|
|
53
|
+
captureCreationStack,
|
|
54
|
+
} from '../lib/configuration-provenance-utils';
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { Pbkdf2Profiles } from '../pbkdf2-profiles';
|
|
2
|
+
import type { IChecksumConsts } from './checksum-consts';
|
|
3
|
+
import type { IECIESConstants } from './ecies-consts';
|
|
4
|
+
import type { IIdProvider } from './id-provider';
|
|
5
|
+
import type { IPBkdf2Consts } from './pbkdf2-consts';
|
|
6
|
+
|
|
7
|
+
export interface IConstants {
|
|
8
|
+
UINT8_SIZE: number;
|
|
9
|
+
UINT16_SIZE: number;
|
|
10
|
+
UINT16_MAX: number;
|
|
11
|
+
UINT32_SIZE: number;
|
|
12
|
+
UINT32_MAX: number;
|
|
13
|
+
UINT64_SIZE: number;
|
|
14
|
+
UINT64_MAX: bigint;
|
|
15
|
+
HEX_RADIX: number;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The length of user IDs in the system.
|
|
19
|
+
* This is dynamically determined by the configured ID provider.
|
|
20
|
+
* @deprecated Use idProvider.byteLength instead for direct access
|
|
21
|
+
*/
|
|
22
|
+
MEMBER_ID_LENGTH: number;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* The length of a raw object ID (not the hex string representation).
|
|
26
|
+
* Standard MongoDB ObjectID is 12 bytes.
|
|
27
|
+
* @deprecated Use idProvider.byteLength instead for direct access
|
|
28
|
+
*/
|
|
29
|
+
OBJECT_ID_LENGTH: number;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* ID provider for recipient identification in multi-recipient encryption.
|
|
33
|
+
* This determines the format and size of recipient IDs used throughout the system.
|
|
34
|
+
*
|
|
35
|
+
* Default: ObjectIdProvider (12 bytes, MongoDB compatible)
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* import { GuidV4Provider } from './lib/id-providers';
|
|
40
|
+
*
|
|
41
|
+
* // Use GUIDs instead of ObjectIDs
|
|
42
|
+
* const config = createRuntimeConfiguration({
|
|
43
|
+
* idProvider: new GuidV4Provider()
|
|
44
|
+
* });
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
idProvider: IIdProvider;
|
|
48
|
+
|
|
49
|
+
CHECKSUM: IChecksumConsts;
|
|
50
|
+
ECIES: IECIESConstants;
|
|
51
|
+
PBKDF2: IPBkdf2Consts;
|
|
52
|
+
PBKDF2_PROFILES: Pbkdf2Profiles;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Number of rounds for bcrypt hashing. Higher values increase security but also consume more CPU resources.
|
|
56
|
+
*/
|
|
57
|
+
BcryptRounds: number;
|
|
58
|
+
/**
|
|
59
|
+
* Minimum password length
|
|
60
|
+
*/
|
|
61
|
+
PasswordMinLength: number;
|
|
62
|
+
/**
|
|
63
|
+
* The regular expression for valid passwords.
|
|
64
|
+
*/
|
|
65
|
+
PasswordRegex: RegExp;
|
|
66
|
+
/**
|
|
67
|
+
* The regular expression for valid mnemonic phrases.
|
|
68
|
+
* BIP39
|
|
69
|
+
*/
|
|
70
|
+
MnemonicRegex: RegExp;
|
|
71
|
+
/**
|
|
72
|
+
* The regular expression for valid HMAC keys.
|
|
73
|
+
*/
|
|
74
|
+
MnemonicHmacRegex: RegExp;
|
|
75
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
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
|
+
VERSION_SIZE: number;
|
|
38
|
+
CIPHER_SUITE_SIZE: number;
|
|
39
|
+
ENCRYPTION_TYPE_SIZE: number;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Message encrypts without data length or crc
|
|
43
|
+
*/
|
|
44
|
+
SIMPLE: {
|
|
45
|
+
FIXED_OVERHEAD_SIZE: number; // type (1) + public key (65) + IV (16) + auth tag (16)
|
|
46
|
+
DATA_LENGTH_SIZE: number;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Message encrypts like single but with data Length and crc
|
|
51
|
+
*/
|
|
52
|
+
SINGLE: {
|
|
53
|
+
FIXED_OVERHEAD_SIZE: number; // type (1) + public key (65) + IV (16) + auth tag (16) + data length (8) + crc16 (2)
|
|
54
|
+
DATA_LENGTH_SIZE: number;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Message encrypts for multiple recipients
|
|
59
|
+
*/
|
|
60
|
+
MULTIPLE: {
|
|
61
|
+
FIXED_OVERHEAD_SIZE: number;
|
|
62
|
+
ENCRYPTED_KEY_SIZE: number;
|
|
63
|
+
MAX_RECIPIENTS: number;
|
|
64
|
+
RECIPIENT_ID_SIZE: number;
|
|
65
|
+
RECIPIENT_COUNT_SIZE: number;
|
|
66
|
+
DATA_LENGTH_SIZE: number;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
ENCRYPTION_TYPE: {
|
|
70
|
+
SIMPLE: number;
|
|
71
|
+
SINGLE: number;
|
|
72
|
+
MULTIPLE: number;
|
|
73
|
+
};
|
|
74
|
+
}
|
|
@@ -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,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metadata for an encrypted chunk
|
|
3
|
+
*/
|
|
4
|
+
export interface IChunkMetadata {
|
|
5
|
+
/** Original size before encryption */
|
|
6
|
+
originalSize: number;
|
|
7
|
+
/** Size after encryption */
|
|
8
|
+
encryptedSize: number;
|
|
9
|
+
/** Timestamp when chunk was encrypted */
|
|
10
|
+
timestamp: number;
|
|
11
|
+
/** Optional SHA-256 checksum of original data */
|
|
12
|
+
checksum?: Uint8Array;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Represents a single encrypted chunk in a stream
|
|
17
|
+
*/
|
|
18
|
+
export interface IEncryptedChunk {
|
|
19
|
+
/** Chunk sequence number (0-based) */
|
|
20
|
+
index: number;
|
|
21
|
+
/** Encrypted chunk data */
|
|
22
|
+
data: Uint8Array;
|
|
23
|
+
/** Whether this is the final chunk */
|
|
24
|
+
isLast: boolean;
|
|
25
|
+
/** Chunk metadata */
|
|
26
|
+
metadata?: IChunkMetadata;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Chunk header structure (32 bytes fixed)
|
|
31
|
+
*/
|
|
32
|
+
export interface IChunkHeader {
|
|
33
|
+
/** Magic bytes: 0x45434945 ("ECIE") */
|
|
34
|
+
magic: number;
|
|
35
|
+
/** Version: 0x0001 */
|
|
36
|
+
version: number;
|
|
37
|
+
/** Chunk index */
|
|
38
|
+
index: number;
|
|
39
|
+
/** Original size */
|
|
40
|
+
originalSize: number;
|
|
41
|
+
/** Encrypted size */
|
|
42
|
+
encryptedSize: number;
|
|
43
|
+
/** Flags (bit 0: isLast, bit 1: hasChecksum) */
|
|
44
|
+
flags: number;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Constants for chunk format
|
|
49
|
+
*/
|
|
50
|
+
export const CHUNK_CONSTANTS: {
|
|
51
|
+
readonly MAGIC: 0x45434945;
|
|
52
|
+
readonly VERSION: 0x0001;
|
|
53
|
+
readonly HEADER_SIZE: 32;
|
|
54
|
+
readonly FLAG_IS_LAST: 0x01;
|
|
55
|
+
readonly FLAG_HAS_CHECKSUM: 0x02;
|
|
56
|
+
readonly CHECKSUM_SIZE: 32;
|
|
57
|
+
} = {
|
|
58
|
+
MAGIC: 0x45434945, // "ECIE"
|
|
59
|
+
VERSION: 0x0001,
|
|
60
|
+
HEADER_SIZE: 32,
|
|
61
|
+
FLAG_IS_LAST: 0x01,
|
|
62
|
+
FLAG_HAS_CHECKSUM: 0x02,
|
|
63
|
+
CHECKSUM_SIZE: 32, // SHA-256
|
|
64
|
+
} as const;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { EciesEncryptionTypeEnum } from '../enumerations/ecies-encryption-type';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Serializable encryption state for resumption
|
|
5
|
+
*/
|
|
6
|
+
export interface IEncryptionState {
|
|
7
|
+
version: number;
|
|
8
|
+
chunkIndex: number;
|
|
9
|
+
bytesProcessed: number;
|
|
10
|
+
totalBytes?: number;
|
|
11
|
+
publicKey: string; // hex
|
|
12
|
+
encryptionType: EciesEncryptionTypeEnum;
|
|
13
|
+
chunkSize: number;
|
|
14
|
+
includeChecksums: boolean;
|
|
15
|
+
timestamp: number;
|
|
16
|
+
hmac?: string; // hex SHA-256 HMAC for integrity
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const ENCRYPTION_STATE_VERSION: number = 1;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { Wallet } from '@ethereumjs/wallet';
|
|
2
|
+
import type { EmailString } from '../email-string';
|
|
3
|
+
import type MemberType from '../enumerations/member-type';
|
|
4
|
+
import type { SecureBuffer } from '../secure-buffer';
|
|
5
|
+
import type { SecureString } from '../secure-string';
|
|
6
|
+
import type { SignatureUint8Array } from '../types';
|
|
7
|
+
import type { IECIESConstants } from './ecies-consts';
|
|
8
|
+
import type { IEncryptedChunk } from './encrypted-chunk';
|
|
9
|
+
import type { ProgressCallback } from './stream-progress';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Operational interface for member - defines getters and methods
|
|
13
|
+
*/
|
|
14
|
+
export interface IFrontendMemberOperational<
|
|
15
|
+
TID = Uint8Array,
|
|
16
|
+
TData = Uint8Array,
|
|
17
|
+
TSignature = SignatureUint8Array,
|
|
18
|
+
> {
|
|
19
|
+
// Required getters
|
|
20
|
+
get id(): TID;
|
|
21
|
+
get type(): MemberType;
|
|
22
|
+
get name(): string;
|
|
23
|
+
get email(): EmailString;
|
|
24
|
+
get publicKey(): Uint8Array;
|
|
25
|
+
get creatorId(): TID;
|
|
26
|
+
get dateCreated(): Date;
|
|
27
|
+
get dateUpdated(): Date;
|
|
28
|
+
|
|
29
|
+
// Optional private data getters
|
|
30
|
+
get privateKey(): SecureBuffer | undefined;
|
|
31
|
+
get wallet(): Wallet | undefined;
|
|
32
|
+
|
|
33
|
+
// State getters
|
|
34
|
+
get hasPrivateKey(): boolean;
|
|
35
|
+
|
|
36
|
+
// Methods
|
|
37
|
+
sign(data: TData): TSignature;
|
|
38
|
+
verify(signature: TSignature, data: TData): boolean;
|
|
39
|
+
encryptData(
|
|
40
|
+
data: string | TData,
|
|
41
|
+
recipientPublicKey?: Uint8Array,
|
|
42
|
+
): Promise<TData>;
|
|
43
|
+
decryptData(encryptedData: TData): Promise<TData>;
|
|
44
|
+
toJson(): string;
|
|
45
|
+
dispose(): void;
|
|
46
|
+
|
|
47
|
+
// Streaming methods
|
|
48
|
+
encryptDataStream(
|
|
49
|
+
source: AsyncIterable<Uint8Array> | ReadableStream<Uint8Array>,
|
|
50
|
+
options?: {
|
|
51
|
+
recipientPublicKey?: Uint8Array;
|
|
52
|
+
onProgress?: ProgressCallback;
|
|
53
|
+
signal?: AbortSignal;
|
|
54
|
+
},
|
|
55
|
+
): AsyncGenerator<IEncryptedChunk, void, unknown>;
|
|
56
|
+
|
|
57
|
+
decryptDataStream(
|
|
58
|
+
source: AsyncIterable<Uint8Array> | ReadableStream<Uint8Array>,
|
|
59
|
+
options?: {
|
|
60
|
+
onProgress?: ProgressCallback;
|
|
61
|
+
signal?: AbortSignal;
|
|
62
|
+
},
|
|
63
|
+
): AsyncGenerator<Uint8Array, void, unknown>;
|
|
64
|
+
|
|
65
|
+
// Private key management
|
|
66
|
+
loadWallet(mnemonic: SecureString, eciesParams?: IECIESConstants): void;
|
|
67
|
+
unloadPrivateKey(): void;
|
|
68
|
+
unloadWallet(): void;
|
|
69
|
+
unloadWalletAndPrivateKey(): void;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Extended operational interface for test members
|
|
74
|
+
*/
|
|
75
|
+
export interface ITestMemberOperational extends IFrontendMemberOperational {
|
|
76
|
+
get mnemonic(): SecureString | undefined;
|
|
77
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Base64Guid,
|
|
3
|
+
BigIntGuid,
|
|
4
|
+
// prettier-ignore
|
|
5
|
+
FullHexGuid,
|
|
6
|
+
RawGuidBuffer,
|
|
7
|
+
ShortHexGuid,
|
|
8
|
+
} from '../types';
|
|
9
|
+
|
|
10
|
+
export interface IGuidV4 {
|
|
11
|
+
/**
|
|
12
|
+
* Returns the GUID as a raw buffer.
|
|
13
|
+
*/
|
|
14
|
+
get asRawGuidBuffer(): RawGuidBuffer;
|
|
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 (can be null/undefined)
|
|
51
|
+
* @param constantTime Use constant-time comparison to prevent timing attacks
|
|
52
|
+
*/
|
|
53
|
+
equals(other: IGuidV4 | null | undefined, constantTime?: boolean): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Creates a new GuidV4 instance with the same value as this one.
|
|
56
|
+
* @returns A new GuidV4 instance with identical value
|
|
57
|
+
*/
|
|
58
|
+
clone(): IGuidV4;
|
|
59
|
+
/**
|
|
60
|
+
* Returns the hash code for this GUID based on its buffer content.
|
|
61
|
+
* Useful for using GUIDs as Map/Set keys.
|
|
62
|
+
* @returns A numeric hash code
|
|
63
|
+
*/
|
|
64
|
+
hashCode(): number;
|
|
65
|
+
/**
|
|
66
|
+
* Checks if this GUID is empty (all zeros).
|
|
67
|
+
* @returns True if the GUID is all zeros, false otherwise
|
|
68
|
+
*/
|
|
69
|
+
isEmpty(): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Extracts the RFC 4122 version from the GUID.
|
|
72
|
+
* @returns The version number (1-5) or undefined
|
|
73
|
+
*/
|
|
74
|
+
getVersion(): number | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* Validates that this GUID is a proper v4 GUID according to RFC 4122.
|
|
77
|
+
* @returns True if valid v4 GUID or boundary value, false otherwise
|
|
78
|
+
*/
|
|
79
|
+
isValidV4(): boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Compares two GUIDs for ordering.
|
|
82
|
+
* @param other The other GUID to compare to
|
|
83
|
+
* @returns -1 if this < other, 0 if equal, 1 if this > other
|
|
84
|
+
*/
|
|
85
|
+
compareTo(other: IGuidV4): number;
|
|
86
|
+
}
|