@digitaldefiance/ecies-lib 4.4.13 → 4.4.14
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/package.json +6 -4
- package/src/builders/ecies-builder.d.ts +18 -0
- package/src/builders/ecies-builder.d.ts.map +1 -0
- package/src/builders/ecies-builder.js +30 -0
- package/src/builders/ecies-builder.js.map +1 -0
- package/src/builders/index.d.ts +6 -0
- package/src/builders/index.d.ts.map +1 -0
- package/src/builders/{index.ts → index.js} +1 -1
- package/src/builders/index.js.map +1 -0
- package/src/builders/member-builder.d.ts +51 -0
- package/src/builders/member-builder.d.ts.map +1 -0
- package/src/builders/member-builder.js +97 -0
- package/src/builders/member-builder.js.map +1 -0
- package/src/constants.d.ts +60 -0
- package/src/constants.d.ts.map +1 -0
- package/src/constants.js +446 -0
- package/src/constants.js.map +1 -0
- package/src/core/errors/crypto-error.d.ts +34 -0
- package/src/core/errors/crypto-error.d.ts.map +1 -0
- package/src/core/errors/crypto-error.js +56 -0
- package/src/core/errors/crypto-error.js.map +1 -0
- package/src/core/index.d.ts +6 -0
- package/src/core/index.d.ts.map +1 -0
- package/src/core/{index.ts → index.js} +1 -1
- package/src/core/index.js.map +1 -0
- package/src/core/types/result.d.ts +16 -0
- package/src/core/types/result.d.ts.map +1 -0
- package/src/core/types/result.js +12 -0
- package/src/core/types/result.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 +67 -0
- package/src/email-string.js.map +1 -0
- package/src/enumerations/disposed-error-type.d.ts +12 -0
- package/src/enumerations/disposed-error-type.d.ts.map +1 -0
- package/src/enumerations/disposed-error-type.js +13 -0
- package/src/enumerations/disposed-error-type.js.map +1 -0
- package/src/enumerations/ecies-cipher-suite.d.ts +4 -0
- package/src/enumerations/ecies-cipher-suite.d.ts.map +1 -0
- package/src/enumerations/ecies-cipher-suite.js +6 -0
- package/src/enumerations/ecies-cipher-suite.js.map +1 -0
- package/src/enumerations/ecies-encryption-type.d.ts +11 -0
- package/src/enumerations/ecies-encryption-type.d.ts.map +1 -0
- package/src/enumerations/ecies-encryption-type.js +27 -0
- package/src/enumerations/ecies-encryption-type.js.map +1 -0
- package/src/enumerations/ecies-error-type.d.ts +44 -0
- package/src/enumerations/ecies-error-type.d.ts.map +1 -0
- package/src/enumerations/ecies-error-type.js +45 -0
- package/src/enumerations/ecies-error-type.js.map +1 -0
- package/src/enumerations/ecies-string-key.d.ts +192 -0
- package/src/enumerations/ecies-string-key.d.ts.map +1 -0
- package/src/enumerations/ecies-string-key.js +199 -0
- package/src/enumerations/ecies-string-key.js.map +1 -0
- package/src/enumerations/ecies-version.d.ts +4 -0
- package/src/enumerations/ecies-version.d.ts.map +1 -0
- package/src/enumerations/ecies-version.js +5 -0
- package/src/enumerations/ecies-version.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 +28 -0
- package/src/enumerations/guid-brand-type.js.map +1 -0
- package/src/enumerations/guid-error-type.d.ts +7 -0
- package/src/enumerations/guid-error-type.d.ts.map +1 -0
- package/src/enumerations/guid-error-type.js +8 -0
- package/src/enumerations/guid-error-type.js.map +1 -0
- package/src/enumerations/id-provider-error-type.d.ts +43 -0
- package/src/enumerations/id-provider-error-type.d.ts.map +1 -0
- package/src/enumerations/id-provider-error-type.js +44 -0
- package/src/enumerations/id-provider-error-type.js.map +1 -0
- package/src/enumerations/index.d.ts +18 -0
- package/src/enumerations/index.d.ts.map +1 -0
- package/src/enumerations/{index.ts → index.js} +1 -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 +7 -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 +8 -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 +7 -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 +88 -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 +16 -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 +6 -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 +7 -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 +7 -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 +7 -0
- package/src/enumerations/secure-storage-error-type.js.map +1 -0
- package/src/errors/disposed.d.ts +22 -0
- package/src/errors/disposed.d.ts.map +1 -0
- package/src/errors/disposed.js +28 -0
- package/src/errors/disposed.js.map +1 -0
- package/src/errors/ecies.d.ts +52 -0
- package/src/errors/ecies.d.ts.map +1 -0
- package/src/errors/ecies.js +78 -0
- package/src/errors/ecies.js.map +1 -0
- package/src/errors/guid.d.ts +49 -0
- package/src/errors/guid.d.ts.map +1 -0
- package/src/errors/guid.js +96 -0
- package/src/errors/guid.js.map +1 -0
- package/src/errors/id-provider.d.ts +23 -0
- package/src/errors/id-provider.d.ts.map +1 -0
- package/src/errors/id-provider.js +29 -0
- package/src/errors/id-provider.js.map +1 -0
- package/src/errors/{index.ts → index.d.ts} +1 -0
- package/src/errors/index.d.ts.map +1 -0
- package/src/errors/index.js +10 -0
- package/src/errors/index.js.map +1 -0
- package/src/errors/invalid-email.d.ts +8 -0
- package/src/errors/invalid-email.d.ts.map +1 -0
- package/src/errors/invalid-email.js +15 -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 +11 -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 +11 -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 +11 -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 +12 -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 +12 -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 +7 -0
- package/src/errors/simple-test-error.js.map +1 -0
- package/src/i18n-setup.d.ts +32 -0
- package/src/i18n-setup.d.ts.map +1 -0
- package/src/i18n-setup.js +101 -0
- package/src/i18n-setup.js.map +1 -0
- package/src/index.d.ts +80 -0
- package/src/index.d.ts.map +1 -0
- package/src/{index.ts → index.js} +7 -64
- 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 +2 -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 +2 -0
- package/src/interfaces/checksum-consts.js.map +1 -0
- package/src/interfaces/configuration-provenance.d.ts +43 -0
- package/src/interfaces/configuration-provenance.d.ts.map +1 -0
- package/src/interfaces/configuration-provenance.js +3 -0
- package/src/interfaces/configuration-provenance.js.map +1 -0
- package/src/interfaces/constants.d.ts +70 -0
- package/src/interfaces/constants.d.ts.map +1 -0
- package/src/interfaces/constants.js +2 -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 +2 -0
- package/src/interfaces/ecies-config.js.map +1 -0
- package/src/interfaces/ecies-consts.d.ts +61 -0
- package/src/interfaces/ecies-consts.d.ts.map +1 -0
- package/src/interfaces/ecies-consts.js +2 -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 +2 -0
- package/src/interfaces/ecies-file-service.js.map +1 -0
- package/src/interfaces/encrypted-chunk.d.ts +55 -0
- package/src/interfaces/encrypted-chunk.d.ts.map +1 -0
- package/src/interfaces/encrypted-chunk.js +12 -0
- package/src/interfaces/encrypted-chunk.js.map +1 -0
- package/src/interfaces/encryption-state.d.ts +18 -0
- package/src/interfaces/encryption-state.d.ts.map +1 -0
- package/src/interfaces/encryption-state.js +2 -0
- package/src/interfaces/encryption-state.js.map +1 -0
- package/src/interfaces/frontend-member-operational.d.ts +51 -0
- package/src/interfaces/frontend-member-operational.d.ts.map +1 -0
- package/src/interfaces/frontend-member-operational.js +2 -0
- package/src/interfaces/frontend-member-operational.js.map +1 -0
- package/src/interfaces/guid.d.ts +78 -0
- package/src/interfaces/guid.d.ts.map +1 -0
- package/src/interfaces/guid.js +2 -0
- package/src/interfaces/guid.js.map +1 -0
- package/src/interfaces/id-provider.d.ts +107 -0
- package/src/interfaces/id-provider.d.ts.map +1 -0
- package/src/interfaces/id-provider.js +52 -0
- package/src/interfaces/id-provider.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 +13 -0
- package/src/interfaces/index.js.map +1 -0
- package/src/interfaces/invariant.d.ts +46 -0
- package/src/interfaces/invariant.d.ts.map +1 -0
- package/src/interfaces/invariant.js +18 -0
- package/src/interfaces/invariant.js.map +1 -0
- package/src/interfaces/library-error.d.ts +23 -0
- package/src/interfaces/library-error.d.ts.map +1 -0
- package/src/interfaces/library-error.js +2 -0
- package/src/interfaces/library-error.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 +2 -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 +2 -0
- package/src/interfaces/member-with-mnemonic.js.map +1 -0
- package/src/interfaces/member.d.ts +55 -0
- package/src/interfaces/member.d.ts.map +1 -0
- package/src/interfaces/member.js +2 -0
- package/src/interfaces/member.js.map +1 -0
- package/src/interfaces/multi-recipient-chunk.d.ts +54 -0
- package/src/interfaces/multi-recipient-chunk.d.ts.map +1 -0
- package/src/interfaces/multi-recipient-chunk.js +11 -0
- package/src/interfaces/multi-recipient-chunk.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 +2 -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 +2 -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 +2 -0
- package/src/interfaces/pbkdf2-result.js.map +1 -0
- package/src/interfaces/stream-config.d.ts +14 -0
- package/src/interfaces/stream-config.d.ts.map +1 -0
- package/src/interfaces/stream-config.js +8 -0
- package/src/interfaces/stream-config.js.map +1 -0
- package/src/interfaces/stream-header.d.ts +29 -0
- package/src/interfaces/stream-header.d.ts.map +1 -0
- package/src/interfaces/stream-header.js +9 -0
- package/src/interfaces/stream-header.js.map +1 -0
- package/src/interfaces/stream-progress.d.ts +33 -0
- package/src/interfaces/stream-progress.d.ts.map +1 -0
- package/src/interfaces/stream-progress.js +2 -0
- package/src/interfaces/stream-progress.js.map +1 -0
- package/src/lib/configuration-provenance-utils.d.ts +11 -0
- package/src/lib/configuration-provenance-utils.d.ts.map +1 -0
- package/src/lib/configuration-provenance-utils.js +26 -0
- package/src/lib/configuration-provenance-utils.js.map +1 -0
- package/src/lib/crypto-container.d.ts +25 -0
- package/src/lib/crypto-container.d.ts.map +1 -0
- package/src/lib/crypto-container.js +46 -0
- package/src/lib/crypto-container.js.map +1 -0
- package/src/lib/guid.d.ts +344 -0
- package/src/lib/guid.d.ts.map +1 -0
- package/src/lib/guid.js +914 -0
- package/src/lib/guid.js.map +1 -0
- package/src/lib/id-providers/custom-provider.d.ts +46 -0
- package/src/lib/id-providers/custom-provider.d.ts.map +1 -0
- package/src/lib/id-providers/custom-provider.js +85 -0
- package/src/lib/id-providers/custom-provider.js.map +1 -0
- package/src/lib/id-providers/guidv4-provider.d.ts +56 -0
- package/src/lib/id-providers/guidv4-provider.d.ts.map +1 -0
- package/src/lib/id-providers/guidv4-provider.js +122 -0
- package/src/lib/id-providers/guidv4-provider.js.map +1 -0
- package/src/lib/id-providers/{index.ts → index.d.ts} +5 -6
- package/src/lib/id-providers/index.d.ts.map +1 -0
- package/src/lib/id-providers/index.js +29 -0
- package/src/lib/id-providers/index.js.map +1 -0
- package/src/lib/id-providers/objectid-provider.d.ts +43 -0
- package/src/lib/id-providers/objectid-provider.d.ts.map +1 -0
- package/src/lib/id-providers/objectid-provider.js +104 -0
- package/src/lib/id-providers/objectid-provider.js.map +1 -0
- package/src/lib/id-providers/uuid-provider.d.ts +52 -0
- package/src/lib/id-providers/uuid-provider.d.ts.map +1 -0
- package/src/lib/id-providers/uuid-provider.js +110 -0
- package/src/lib/id-providers/uuid-provider.js.map +1 -0
- package/src/lib/index.d.ts +6 -0
- package/src/lib/index.d.ts.map +1 -0
- package/src/lib/{index.ts → index.js} +2 -2
- package/src/lib/index.js.map +1 -0
- package/src/lib/invariant-validator.d.ts +59 -0
- package/src/lib/invariant-validator.d.ts.map +1 -0
- package/src/lib/invariant-validator.js +97 -0
- package/src/lib/invariant-validator.js.map +1 -0
- package/src/lib/invariants/encryption-algorithm-consistency.d.ts +17 -0
- package/src/lib/invariants/encryption-algorithm-consistency.d.ts.map +1 -0
- package/src/lib/invariants/encryption-algorithm-consistency.js +49 -0
- package/src/lib/invariants/encryption-algorithm-consistency.js.map +1 -0
- package/src/lib/invariants/index.d.ts +4 -0
- package/src/lib/invariants/index.d.ts.map +1 -0
- package/src/lib/invariants/{index.ts → index.js} +1 -0
- package/src/lib/invariants/index.js.map +1 -0
- package/src/lib/invariants/pbkdf2-profiles-validity.d.ts +16 -0
- package/src/lib/invariants/pbkdf2-profiles-validity.d.ts.map +1 -0
- package/src/lib/invariants/pbkdf2-profiles-validity.js +58 -0
- package/src/lib/invariants/pbkdf2-profiles-validity.js.map +1 -0
- package/src/lib/invariants/recipient-id-consistency.d.ts +18 -0
- package/src/lib/invariants/recipient-id-consistency.d.ts.map +1 -0
- package/src/lib/invariants/recipient-id-consistency.js +31 -0
- package/src/lib/invariants/recipient-id-consistency.js.map +1 -0
- package/src/lib/multi-recipient-chunk-utils.d.ts +38 -0
- package/src/lib/multi-recipient-chunk-utils.d.ts.map +1 -0
- package/src/lib/multi-recipient-chunk-utils.js +41 -0
- package/src/lib/multi-recipient-chunk-utils.js.map +1 -0
- package/src/member.d.ts +92 -0
- package/src/member.d.ts.map +1 -0
- package/src/member.js +322 -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 +2 -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 +18 -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 +7 -0
- package/src/regexes.js.map +1 -0
- package/src/secure-buffer.d.ts +61 -0
- package/src/secure-buffer.d.ts.map +1 -0
- package/src/secure-buffer.js +201 -0
- package/src/secure-buffer.js.map +1 -0
- package/src/secure-string.d.ts +46 -0
- package/src/secure-string.d.ts.map +1 -0
- package/src/secure-string.js +206 -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 +142 -0
- package/src/services/aes-gcm.js.map +1 -0
- package/src/services/chunk-processor.d.ts +31 -0
- package/src/services/chunk-processor.d.ts.map +1 -0
- package/src/services/chunk-processor.js +145 -0
- package/src/services/chunk-processor.js.map +1 -0
- package/src/services/ecies/crypto-core.d.ts +72 -0
- package/src/services/ecies/crypto-core.d.ts.map +1 -0
- package/src/services/ecies/crypto-core.js +205 -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 +121 -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 +106 -0
- package/src/services/ecies/file.js.map +1 -0
- package/src/services/ecies/index.d.ts +38 -0
- package/src/services/ecies/index.d.ts.map +1 -0
- package/src/services/ecies/{index.ts → index.js} +1 -2
- 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 +167 -0
- package/src/services/ecies/integration.js.map +1 -0
- package/src/services/ecies/interfaces.d.ts +54 -0
- package/src/services/ecies/interfaces.d.ts.map +1 -0
- package/src/services/ecies/interfaces.js +5 -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 +163 -0
- package/src/services/ecies/manual-test.js.map +1 -0
- package/src/services/ecies/multi-recipient.d.ts +56 -0
- package/src/services/ecies/multi-recipient.d.ts.map +1 -0
- package/src/services/ecies/multi-recipient.js +344 -0
- package/src/services/ecies/multi-recipient.js.map +1 -0
- package/src/services/ecies/service.d.ts +120 -0
- package/src/services/ecies/service.d.ts.map +1 -0
- package/src/services/ecies/service.js +210 -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 +72 -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 +322 -0
- package/src/services/ecies/single-recipient.js.map +1 -0
- package/src/services/encryption-stream.d.ts +71 -0
- package/src/services/encryption-stream.d.ts.map +1 -0
- package/src/services/encryption-stream.js +295 -0
- package/src/services/encryption-stream.js.map +1 -0
- package/src/services/index.d.ts +11 -0
- package/src/services/index.d.ts.map +1 -0
- package/src/services/{index.ts → index.js} +1 -0
- package/src/services/index.js.map +1 -0
- package/src/services/multi-recipient-processor.d.ts +35 -0
- package/src/services/multi-recipient-processor.d.ts.map +1 -0
- package/src/services/multi-recipient-processor.js +289 -0
- package/src/services/multi-recipient-processor.js.map +1 -0
- package/src/services/password-login.d.ts +47 -0
- package/src/services/password-login.d.ts.map +1 -0
- package/src/services/password-login.js +115 -0
- package/src/services/password-login.js.map +1 -0
- package/src/services/pbkdf2.d.ts +54 -0
- package/src/services/pbkdf2.d.ts.map +1 -0
- package/src/services/pbkdf2.js +108 -0
- package/src/services/pbkdf2.js.map +1 -0
- package/src/services/progress-tracker.d.ts +23 -0
- package/src/services/progress-tracker.d.ts.map +1 -0
- package/src/services/progress-tracker.js +103 -0
- package/src/services/progress-tracker.js.map +1 -0
- package/src/services/resumable-encryption.d.ts +19 -0
- package/src/services/resumable-encryption.d.ts.map +1 -0
- package/src/services/resumable-encryption.js +105 -0
- package/src/services/resumable-encryption.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 +63 -0
- package/src/services/xor.js.map +1 -0
- package/src/test-mocks/index.d.ts +2 -0
- package/src/test-mocks/index.d.ts.map +1 -0
- package/src/test-mocks/index.js +2 -0
- package/src/test-mocks/index.js.map +1 -0
- package/src/test-mocks/mock-frontend-member.d.ts +85 -0
- package/src/test-mocks/mock-frontend-member.d.ts.map +1 -0
- package/src/test-mocks/mock-frontend-member.js +190 -0
- package/src/test-mocks/mock-frontend-member.js.map +1 -0
- package/src/testing.d.ts +2 -0
- package/src/testing.d.ts.map +1 -0
- package/src/{testing.ts → testing.js} +1 -0
- package/src/testing.js.map +1 -0
- package/src/translations/de.d.ts +4 -0
- package/src/translations/de.d.ts.map +1 -0
- package/src/translations/{de.ts → de.js} +56 -112
- package/src/translations/de.js.map +1 -0
- package/src/translations/en-US.d.ts +4 -0
- package/src/translations/en-US.d.ts.map +1 -0
- package/src/translations/{en-US.ts → en-US.js} +58 -116
- package/src/translations/en-US.js.map +1 -0
- package/src/translations/es.d.ts +4 -0
- package/src/translations/es.d.ts.map +1 -0
- package/src/translations/{es.ts → es.js} +67 -134
- package/src/translations/es.js.map +1 -0
- package/src/translations/fr.d.ts +4 -0
- package/src/translations/fr.d.ts.map +1 -0
- package/src/translations/{fr.ts → fr.js} +64 -129
- package/src/translations/fr.js.map +1 -0
- package/src/translations/ja.d.ts +4 -0
- package/src/translations/ja.d.ts.map +1 -0
- package/src/translations/{ja.ts → ja.js} +55 -111
- package/src/translations/ja.js.map +1 -0
- package/src/translations/uk.d.ts +4 -0
- package/src/translations/uk.d.ts.map +1 -0
- package/src/translations/{uk.ts → uk.js} +67 -132
- package/src/translations/uk.js.map +1 -0
- package/src/translations/zh-cn.d.ts +4 -0
- package/src/translations/zh-cn.d.ts.map +1 -0
- package/src/translations/{zh-cn.ts → zh-cn.js} +29 -60
- package/src/translations/zh-cn.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 +2 -0
- package/src/types/deep-partial.js.map +1 -0
- package/src/{types.ts → types.d.ts} +7 -15
- package/src/types.d.ts.map +1 -0
- package/src/types.js +2 -0
- package/src/types.js.map +1 -0
- package/src/utils/encryption-type-utils.d.ts +29 -0
- package/src/utils/encryption-type-utils.d.ts.map +1 -0
- package/src/utils/encryption-type-utils.js +61 -0
- package/src/utils/encryption-type-utils.js.map +1 -0
- package/src/utils.d.ts +68 -0
- package/src/utils.d.ts.map +1 -0
- package/src/utils.js +273 -0
- package/src/utils.js.map +1 -0
- package/LICENSE +0 -21
- package/src/builders/ecies-builder.ts +0 -39
- package/src/builders/member-builder.ts +0 -155
- package/src/constants.ts +0 -609
- package/src/core/errors/crypto-error.ts +0 -78
- package/src/core/types/result.ts +0 -19
- package/src/email-string.ts +0 -82
- package/src/enumerations/disposed-error-type.ts +0 -11
- package/src/enumerations/ecies-cipher-suite.ts +0 -4
- package/src/enumerations/ecies-encryption-type.ts +0 -41
- package/src/enumerations/ecies-error-type.ts +0 -43
- package/src/enumerations/ecies-string-key.ts +0 -205
- package/src/enumerations/ecies-version.ts +0 -3
- package/src/enumerations/guid-brand-type.ts +0 -26
- package/src/enumerations/guid-error-type.ts +0 -6
- package/src/enumerations/id-provider-error-type.ts +0 -50
- 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 -36
- package/src/errors/ecies.ts +0 -153
- package/src/errors/guid.ts +0 -130
- package/src/errors/id-provider.ts +0 -40
- package/src/errors/invalid-email.ts +0 -23
- package/src/errors/length.ts +0 -19
- package/src/errors/member.ts +0 -20
- package/src/errors/pbkdf2.ts +0 -20
- package/src/errors/secure-storage.ts +0 -17
- package/src/errors/simple-ecies.ts +0 -21
- package/src/errors/simple-test-error.ts +0 -6
- package/src/i18n-setup.ts +0 -130
- package/src/interfaces/checksum-config.ts +0 -4
- package/src/interfaces/checksum-consts.ts +0 -13
- package/src/interfaces/configuration-provenance.ts +0 -54
- package/src/interfaces/constants.ts +0 -75
- package/src/interfaces/ecies-config.ts +0 -8
- package/src/interfaces/ecies-consts.ts +0 -76
- package/src/interfaces/ecies-file-service.ts +0 -6
- package/src/interfaces/encrypted-chunk.ts +0 -64
- package/src/interfaces/encryption-state.ts +0 -19
- package/src/interfaces/frontend-member-operational.ts +0 -77
- package/src/interfaces/guid.ts +0 -86
- package/src/interfaces/id-provider.ts +0 -152
- package/src/interfaces/invariant.ts +0 -60
- package/src/interfaces/library-error.ts +0 -23
- package/src/interfaces/member.ts +0 -84
- package/src/interfaces/multi-recipient-chunk.ts +0 -61
- 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/interfaces/stream-config.ts +0 -17
- package/src/interfaces/stream-header.ts +0 -34
- package/src/interfaces/stream-progress.ts +0 -31
- package/src/lib/configuration-provenance-utils.ts +0 -29
- package/src/lib/crypto-container.ts +0 -64
- package/src/lib/guid.ts +0 -1097
- package/src/lib/id-providers/custom-provider.ts +0 -109
- package/src/lib/id-providers/guidv4-provider.ts +0 -141
- package/src/lib/id-providers/objectid-provider.ts +0 -125
- package/src/lib/id-providers/uuid-provider.ts +0 -133
- package/src/lib/invariant-validator.ts +0 -133
- package/src/lib/invariants/encryption-algorithm-consistency.ts +0 -73
- package/src/lib/invariants/pbkdf2-profiles-validity.ts +0 -78
- package/src/lib/invariants/recipient-id-consistency.ts +0 -46
- package/src/lib/multi-recipient-chunk-utils.ts +0 -63
- package/src/member.ts +0 -495
- package/src/phone-number.ts +0 -18
- package/src/regexes.ts +0 -10
- package/src/secure-buffer.ts +0 -226
- package/src/secure-string.ts +0 -244
- package/src/services/aes-gcm.ts +0 -220
- package/src/services/chunk-processor.ts +0 -188
- package/src/services/ecies/README.md +0 -147
- package/src/services/ecies/crypto-core.ts +0 -292
- 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 -62
- package/src/services/ecies/manual-test.ts +0 -219
- package/src/services/ecies/multi-recipient.ts +0 -545
- package/src/services/ecies/service.ts +0 -370
- package/src/services/ecies/signature.ts +0 -93
- package/src/services/ecies/single-recipient.ts +0 -476
- package/src/services/encryption-stream.ts +0 -435
- package/src/services/multi-recipient-processor.ts +0 -377
- package/src/services/password-login.ts +0 -226
- package/src/services/pbkdf2.ts +0 -169
- package/src/services/progress-tracker.ts +0 -128
- package/src/services/resumable-encryption.ts +0 -135
- package/src/services/xor.ts +0 -65
- package/src/test-mocks/index.ts +0 -1
- package/src/test-mocks/mock-frontend-member.ts +0 -276
- package/src/types/deep-partial.ts +0 -11
- package/src/utils/encryption-type-utils.ts +0 -76
- package/src/utils.ts +0 -329
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { Constants } from '../constants';
|
|
2
|
+
import { Pbkdf2ErrorType } from '../enumerations/pbkdf2-error-type';
|
|
3
|
+
import { Pbkdf2Error } from '../errors/pbkdf2';
|
|
4
|
+
/**
|
|
5
|
+
* Service for handling PBKDF2 (Password-Based Key Derivation Function 2) operations.
|
|
6
|
+
* This service provides functionality for:
|
|
7
|
+
* - Generating secure key derivation configurations
|
|
8
|
+
* - Deriving cryptographic keys from passwords
|
|
9
|
+
* - Managing salt and iteration parameters
|
|
10
|
+
* - Both synchronous and asynchronous key derivation
|
|
11
|
+
*/
|
|
12
|
+
export class Pbkdf2Service {
|
|
13
|
+
profiles;
|
|
14
|
+
eciesConsts;
|
|
15
|
+
pbkdf2Consts;
|
|
16
|
+
constructor(profiles = Constants.PBKDF2_PROFILES, eciesParams = Constants.ECIES, pbkdf2Params = Constants.PBKDF2) {
|
|
17
|
+
this.profiles = profiles;
|
|
18
|
+
this.eciesConsts = eciesParams;
|
|
19
|
+
this.pbkdf2Consts = pbkdf2Params;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Get a predefined configuration profile for common use cases
|
|
23
|
+
* @param profile The name of the profile to use
|
|
24
|
+
* @returns Configuration object for the specified profile
|
|
25
|
+
*/
|
|
26
|
+
getProfileConfig(profile) {
|
|
27
|
+
const profileConfig = this.profiles[profile];
|
|
28
|
+
if (!profileConfig) {
|
|
29
|
+
throw new Pbkdf2Error(Pbkdf2ErrorType.InvalidProfile);
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
hashBytes: profileConfig.hashBytes,
|
|
33
|
+
saltBytes: profileConfig.saltBytes,
|
|
34
|
+
iterations: profileConfig.iterations,
|
|
35
|
+
algorithm: profileConfig.algorithm,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Generate an options object for pbkdf2
|
|
40
|
+
* @param iterations Optional number of iterations (defaults to Pbkdf2IterationsPerSecond)
|
|
41
|
+
* @param saltBytes Optional salt size in bytes (defaults to PBKDF2.SALT_BYTES)
|
|
42
|
+
* @param hashBytes Optional hash size in bytes (defaults to ECIES.SYMMETRIC.KEY_SIZE)
|
|
43
|
+
* @param algorithm Optional hash algorithm (defaults to PBKDF2.ALGORITHM)
|
|
44
|
+
* @returns Configuration object for PBKDF2
|
|
45
|
+
*/
|
|
46
|
+
getConfig(iterations, saltBytes, hashBytes, algorithm) {
|
|
47
|
+
// larger numbers mean better security, less
|
|
48
|
+
return {
|
|
49
|
+
// size of the generated hash
|
|
50
|
+
hashBytes: hashBytes ?? this.eciesConsts.SYMMETRIC.KEY_SIZE,
|
|
51
|
+
// larger salt means hashed passwords are more resistant to rainbow table, but
|
|
52
|
+
// you get diminishing returns pretty fast
|
|
53
|
+
saltBytes: saltBytes ?? this.pbkdf2Consts.SALT_BYTES,
|
|
54
|
+
// more iterations means an attacker has to take longer to brute force an
|
|
55
|
+
// individual password, so larger is better. however, larger also means longer
|
|
56
|
+
// to hash the password. tune so that hashing the password takes about a
|
|
57
|
+
// second
|
|
58
|
+
iterations: iterations ?? this.pbkdf2Consts.ITERATIONS_PER_SECOND,
|
|
59
|
+
// hash algorithm
|
|
60
|
+
algorithm: algorithm ?? this.pbkdf2Consts.ALGORITHM,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Given a password, use pbkdf2 to generate an appropriately sized key for AES encryption
|
|
65
|
+
* @param password The password to derive a key from
|
|
66
|
+
* @param salt Optional salt (will be randomly generated if not provided)
|
|
67
|
+
* @param iterations Optional number of iterations
|
|
68
|
+
* @param saltBytes Optional salt size in bytes
|
|
69
|
+
* @param keySize Optional key size in bytes
|
|
70
|
+
* @param algorithm Optional hash algorithm
|
|
71
|
+
* @returns Object containing the derived key, salt, and iteration count
|
|
72
|
+
*/
|
|
73
|
+
async deriveKeyFromPasswordAsync(password, salt, iterations, saltBytes, keySize, algorithm) {
|
|
74
|
+
const config = this.getConfig(iterations, saltBytes, keySize, algorithm);
|
|
75
|
+
const saltBytes_ = salt ?? crypto.getRandomValues(new Uint8Array(config.saltBytes));
|
|
76
|
+
if (saltBytes_.length !== config.saltBytes) {
|
|
77
|
+
throw new Pbkdf2Error(Pbkdf2ErrorType.InvalidSaltLength);
|
|
78
|
+
}
|
|
79
|
+
const keyMaterial = await crypto.subtle.importKey('raw', new Uint8Array(password), 'PBKDF2', false, ['deriveBits']);
|
|
80
|
+
const keyArray = await crypto.subtle.deriveBits({
|
|
81
|
+
name: 'PBKDF2',
|
|
82
|
+
salt: new Uint8Array(saltBytes_),
|
|
83
|
+
iterations: config.iterations,
|
|
84
|
+
hash: config.algorithm,
|
|
85
|
+
}, keyMaterial, config.hashBytes * 8);
|
|
86
|
+
const keyBytes = new Uint8Array(keyArray);
|
|
87
|
+
if (keyBytes.length !== config.hashBytes) {
|
|
88
|
+
throw new Pbkdf2Error(Pbkdf2ErrorType.InvalidHashLength);
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
salt: saltBytes_,
|
|
92
|
+
hash: keyBytes,
|
|
93
|
+
iterations: config.iterations,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Derive a key using a predefined configuration profile
|
|
98
|
+
* @param password The password to derive a key from
|
|
99
|
+
* @param profile The configuration profile to use
|
|
100
|
+
* @param salt Optional salt (will be randomly generated if not provided)
|
|
101
|
+
* @returns Object containing the derived key, salt, and iteration count
|
|
102
|
+
*/
|
|
103
|
+
async deriveKeyFromPasswordWithProfileAsync(password, profile, salt) {
|
|
104
|
+
const config = this.getProfileConfig(profile);
|
|
105
|
+
return await this.deriveKeyFromPasswordAsync(password, salt, config.iterations, config.saltBytes, config.hashBytes, config.algorithm);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=pbkdf2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbkdf2.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/services/pbkdf2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { IStreamProgress } from '../interfaces/stream-progress';
|
|
2
|
+
/**
|
|
3
|
+
* Tracks progress for streaming operations
|
|
4
|
+
*/
|
|
5
|
+
export declare class ProgressTracker {
|
|
6
|
+
private readonly totalBytes?;
|
|
7
|
+
private startTime;
|
|
8
|
+
private lastUpdateTime;
|
|
9
|
+
private bytesProcessed;
|
|
10
|
+
private chunksProcessed;
|
|
11
|
+
private recentThroughputs;
|
|
12
|
+
private readonly maxThroughputSamples;
|
|
13
|
+
constructor(totalBytes?: number | undefined);
|
|
14
|
+
/**
|
|
15
|
+
* Update progress with new chunk
|
|
16
|
+
*/
|
|
17
|
+
update(chunkBytes: number): IStreamProgress;
|
|
18
|
+
/**
|
|
19
|
+
* Get current progress without update
|
|
20
|
+
*/
|
|
21
|
+
getProgress(): IStreamProgress;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=progress-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-tracker.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/services/progress-tracker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE;;GAEG;AACH,qBAAa,eAAe;IAQd,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAPxC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAK;gBAEb,UAAU,CAAC,EAAE,MAAM,YAAA;IAKhD;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe;IAsE3C;;OAEG;IACH,WAAW,IAAI,eAAe;CA+B/B"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { EciesStringKey } from '../enumerations/ecies-string-key';
|
|
2
|
+
import { EciesComponentId, getEciesI18nEngine } from '../i18n-setup';
|
|
3
|
+
/**
|
|
4
|
+
* Tracks progress for streaming operations
|
|
5
|
+
*/
|
|
6
|
+
export class ProgressTracker {
|
|
7
|
+
totalBytes;
|
|
8
|
+
startTime;
|
|
9
|
+
lastUpdateTime;
|
|
10
|
+
bytesProcessed = 0;
|
|
11
|
+
chunksProcessed = 0;
|
|
12
|
+
recentThroughputs = [];
|
|
13
|
+
maxThroughputSamples = 5;
|
|
14
|
+
constructor(totalBytes) {
|
|
15
|
+
this.totalBytes = totalBytes;
|
|
16
|
+
this.startTime = Date.now();
|
|
17
|
+
this.lastUpdateTime = this.startTime;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Update progress with new chunk
|
|
21
|
+
*/
|
|
22
|
+
update(chunkBytes) {
|
|
23
|
+
// Validate input
|
|
24
|
+
if (chunkBytes < 0) {
|
|
25
|
+
const engine = getEciesI18nEngine();
|
|
26
|
+
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Progress_ChunkBytesCannotBeNegative));
|
|
27
|
+
}
|
|
28
|
+
this.bytesProcessed += chunkBytes;
|
|
29
|
+
this.chunksProcessed++;
|
|
30
|
+
const now = Date.now();
|
|
31
|
+
const elapsedTime = Math.max(0, now - this.startTime);
|
|
32
|
+
const timeSinceLastUpdate = Math.max(0, now - this.lastUpdateTime);
|
|
33
|
+
// Calculate instantaneous throughput (use elapsed time if same millisecond)
|
|
34
|
+
const timeWindow = timeSinceLastUpdate > 0 ? timeSinceLastUpdate : Math.max(1, elapsedTime);
|
|
35
|
+
if (chunkBytes > 0 && timeWindow > 0) {
|
|
36
|
+
const instantThroughput = (chunkBytes / timeWindow) * 1000;
|
|
37
|
+
// Guard against unrealistic throughput (>10GB/s)
|
|
38
|
+
if (isFinite(instantThroughput) &&
|
|
39
|
+
instantThroughput < 10 * 1024 * 1024 * 1024) {
|
|
40
|
+
this.recentThroughputs.push(instantThroughput);
|
|
41
|
+
if (this.recentThroughputs.length > this.maxThroughputSamples) {
|
|
42
|
+
this.recentThroughputs.shift();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
this.lastUpdateTime = now;
|
|
47
|
+
// Calculate average throughput
|
|
48
|
+
const throughput = this.recentThroughputs.length > 0
|
|
49
|
+
? this.recentThroughputs.reduce((a, b) => a + b, 0) /
|
|
50
|
+
this.recentThroughputs.length
|
|
51
|
+
: 0;
|
|
52
|
+
// Calculate ETA (guard against negative)
|
|
53
|
+
let estimatedTimeRemaining;
|
|
54
|
+
if (this.totalBytes &&
|
|
55
|
+
throughput > 0 &&
|
|
56
|
+
this.bytesProcessed < this.totalBytes) {
|
|
57
|
+
const remainingBytes = this.totalBytes - this.bytesProcessed;
|
|
58
|
+
estimatedTimeRemaining = Math.max(0, remainingBytes / throughput);
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
bytesProcessed: this.bytesProcessed,
|
|
62
|
+
totalBytes: this.totalBytes,
|
|
63
|
+
chunksProcessed: this.chunksProcessed,
|
|
64
|
+
percentComplete: this.totalBytes
|
|
65
|
+
? Math.min(100, (this.bytesProcessed / this.totalBytes) * 100)
|
|
66
|
+
: undefined,
|
|
67
|
+
throughputBytesPerSec: throughput,
|
|
68
|
+
estimatedTimeRemaining,
|
|
69
|
+
startTime: this.startTime,
|
|
70
|
+
elapsedTime,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Get current progress without update
|
|
75
|
+
*/
|
|
76
|
+
getProgress() {
|
|
77
|
+
const elapsedTime = Math.max(0, Date.now() - this.startTime);
|
|
78
|
+
const throughput = this.recentThroughputs.length > 0
|
|
79
|
+
? this.recentThroughputs.reduce((a, b) => a + b, 0) /
|
|
80
|
+
this.recentThroughputs.length
|
|
81
|
+
: 0;
|
|
82
|
+
let estimatedTimeRemaining;
|
|
83
|
+
if (this.totalBytes &&
|
|
84
|
+
throughput > 0 &&
|
|
85
|
+
this.bytesProcessed < this.totalBytes) {
|
|
86
|
+
const remainingBytes = this.totalBytes - this.bytesProcessed;
|
|
87
|
+
estimatedTimeRemaining = Math.max(0, remainingBytes / throughput);
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
bytesProcessed: this.bytesProcessed,
|
|
91
|
+
totalBytes: this.totalBytes,
|
|
92
|
+
chunksProcessed: this.chunksProcessed,
|
|
93
|
+
percentComplete: this.totalBytes
|
|
94
|
+
? Math.min(100, (this.bytesProcessed / this.totalBytes) * 100)
|
|
95
|
+
: undefined,
|
|
96
|
+
throughputBytesPerSec: throughput,
|
|
97
|
+
estimatedTimeRemaining,
|
|
98
|
+
startTime: this.startTime,
|
|
99
|
+
elapsedTime,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=progress-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-tracker.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/services/progress-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { IEncryptionState } from '../interfaces/encryption-state';
|
|
2
|
+
import { IEncryptedChunk } from '../interfaces/encrypted-chunk';
|
|
3
|
+
import { EncryptionStream } from './encryption-stream';
|
|
4
|
+
import { IEncryptStreamOptions } from './encryption-stream';
|
|
5
|
+
export interface IResumableOptions extends IEncryptStreamOptions {
|
|
6
|
+
autoSaveInterval?: number;
|
|
7
|
+
onStateSaved?: (state: IEncryptionState) => void | Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
export declare class ResumableEncryption {
|
|
10
|
+
private readonly stream;
|
|
11
|
+
private state;
|
|
12
|
+
constructor(stream: EncryptionStream, initialState?: IEncryptionState);
|
|
13
|
+
encrypt(source: AsyncIterable<Uint8Array>, publicKey: Uint8Array, options?: IResumableOptions): AsyncGenerator<IEncryptedChunk, void, unknown>;
|
|
14
|
+
saveState(): IEncryptionState;
|
|
15
|
+
private calculateStateHMAC;
|
|
16
|
+
static resume(stream: EncryptionStream, state: IEncryptionState): ResumableEncryption;
|
|
17
|
+
private validateState;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=resumable-encryption.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resumable-encryption.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/services/resumable-encryption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA4B,MAAM,gCAAgC,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAO5D,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB;IAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;AAED,qBAAa,mBAAmB;IAI5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHzB,OAAO,CAAC,KAAK,CAAiC;gBAG3B,MAAM,EAAE,gBAAgB,EACzC,YAAY,CAAC,EAAE,gBAAgB;IAQ1B,OAAO,CACZ,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,EACjC,SAAS,EAAE,UAAU,EACrB,OAAO,GAAE,iBAAsB,GAC9B,cAAc,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,CAAC;IAkDjD,SAAS,IAAI,gBAAgB;IAW7B,OAAO,CAAC,kBAAkB;IAW1B,MAAM,CAAC,MAAM,CACX,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,gBAAgB,GACtB,mBAAmB;IAItB,OAAO,CAAC,aAAa;CAuBtB"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { ENCRYPTION_STATE_VERSION } from '../interfaces/encryption-state';
|
|
2
|
+
import { uint8ArrayToHex } from '../utils';
|
|
3
|
+
import { EciesEncryptionTypeEnum } from '../enumerations/ecies-encryption-type';
|
|
4
|
+
import { getEciesI18nEngine, EciesComponentId } from '../i18n-setup';
|
|
5
|
+
import { EciesStringKey } from '../enumerations/ecies-string-key';
|
|
6
|
+
export class ResumableEncryption {
|
|
7
|
+
stream;
|
|
8
|
+
state = null;
|
|
9
|
+
constructor(stream, initialState) {
|
|
10
|
+
this.stream = stream;
|
|
11
|
+
if (initialState) {
|
|
12
|
+
this.validateState(initialState);
|
|
13
|
+
this.state = initialState;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
async *encrypt(source, publicKey, options = {}) {
|
|
17
|
+
const engine = getEciesI18nEngine();
|
|
18
|
+
const autoSaveInterval = options.autoSaveInterval ?? 10;
|
|
19
|
+
if (autoSaveInterval <= 0) {
|
|
20
|
+
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Resumable_AutoSaveIntervalMustBePositive));
|
|
21
|
+
}
|
|
22
|
+
const publicKeyHex = uint8ArrayToHex(publicKey);
|
|
23
|
+
if (this.state) {
|
|
24
|
+
if (this.state.publicKey !== publicKeyHex) {
|
|
25
|
+
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Resumable_PublicKeyMismatch));
|
|
26
|
+
}
|
|
27
|
+
if (this.state.chunkSize !== (options.chunkSize ?? 1024 * 1024)) {
|
|
28
|
+
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Resumable_ChunkSizeMismatch));
|
|
29
|
+
}
|
|
30
|
+
if (this.state.includeChecksums !== (options.includeChecksums ?? false)) {
|
|
31
|
+
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Resumable_IncludeChecksumsMismatch));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const startIndex = this.state?.chunkIndex ?? 0;
|
|
35
|
+
let chunkIndex = 0;
|
|
36
|
+
for await (const chunk of this.stream.encryptStream(source, publicKey, options)) {
|
|
37
|
+
if (chunkIndex < startIndex) {
|
|
38
|
+
chunkIndex++;
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
yield chunk;
|
|
42
|
+
this.state = {
|
|
43
|
+
version: ENCRYPTION_STATE_VERSION,
|
|
44
|
+
chunkIndex: chunk.index + 1,
|
|
45
|
+
bytesProcessed: (this.state?.bytesProcessed ?? 0) + (chunk.metadata?.originalSize ?? 0),
|
|
46
|
+
publicKey: publicKeyHex,
|
|
47
|
+
encryptionType: EciesEncryptionTypeEnum.Single,
|
|
48
|
+
chunkSize: options.chunkSize ?? 1024 * 1024,
|
|
49
|
+
includeChecksums: options.includeChecksums ?? false,
|
|
50
|
+
timestamp: Date.now(),
|
|
51
|
+
};
|
|
52
|
+
if (options.onStateSaved && (chunk.index + 1) % autoSaveInterval === 0) {
|
|
53
|
+
await options.onStateSaved({ ...this.state });
|
|
54
|
+
}
|
|
55
|
+
chunkIndex++;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
saveState() {
|
|
59
|
+
if (!this.state) {
|
|
60
|
+
const engine = getEciesI18nEngine();
|
|
61
|
+
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Resumable_NoStateToSave));
|
|
62
|
+
}
|
|
63
|
+
const state = { ...this.state };
|
|
64
|
+
// Add HMAC for integrity
|
|
65
|
+
state.hmac = this.calculateStateHMAC(state);
|
|
66
|
+
return state;
|
|
67
|
+
}
|
|
68
|
+
calculateStateHMAC(state) {
|
|
69
|
+
const data = `${state.version}|${state.chunkIndex}|${state.bytesProcessed}|${state.publicKey}|${state.chunkSize}|${state.includeChecksums}|${state.timestamp}`;
|
|
70
|
+
const hash = new Uint8Array(32);
|
|
71
|
+
// Simple hash for integrity check (not cryptographic HMAC)
|
|
72
|
+
const bytes = new TextEncoder().encode(data);
|
|
73
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
74
|
+
hash[i % 32] ^= bytes[i];
|
|
75
|
+
}
|
|
76
|
+
return uint8ArrayToHex(hash);
|
|
77
|
+
}
|
|
78
|
+
static resume(stream, state) {
|
|
79
|
+
return new ResumableEncryption(stream, state);
|
|
80
|
+
}
|
|
81
|
+
validateState(state) {
|
|
82
|
+
const engine = getEciesI18nEngine();
|
|
83
|
+
if (state.version !== ENCRYPTION_STATE_VERSION) {
|
|
84
|
+
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Resumable_UnsupportedStateVersionTemplate, { version: state.version }));
|
|
85
|
+
}
|
|
86
|
+
if (state.chunkIndex < 0) {
|
|
87
|
+
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Resumable_InvalidChunkIndex));
|
|
88
|
+
}
|
|
89
|
+
const age = Date.now() - state.timestamp;
|
|
90
|
+
if (age > 24 * 60 * 60 * 1000) {
|
|
91
|
+
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Resumable_StateTooOld));
|
|
92
|
+
}
|
|
93
|
+
if (!state.publicKey || state.publicKey.length === 0) {
|
|
94
|
+
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Resumable_InvalidPublicKeyInState));
|
|
95
|
+
}
|
|
96
|
+
// Verify HMAC if present
|
|
97
|
+
if (state.hmac) {
|
|
98
|
+
const expectedHMAC = this.calculateStateHMAC(state);
|
|
99
|
+
if (state.hmac !== expectedHMAC) {
|
|
100
|
+
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_Resumable_StateIntegrityCheckFailed));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=resumable-encryption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resumable-encryption.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/services/resumable-encryption.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A simple and fast XOR cipher for obfuscating data in memory for browser environments.
|
|
3
|
+
* This is not a substitute for strong cryptography but provides a lightweight way
|
|
4
|
+
* to prevent sensitive data from being stored in plaintext in memory.
|
|
5
|
+
*/
|
|
6
|
+
export declare class XorService {
|
|
7
|
+
/**
|
|
8
|
+
* Encrypts or decrypts data using a simple XOR cipher.
|
|
9
|
+
* The key is XORed with the data. The same function is used for
|
|
10
|
+
* both encryption and decryption.
|
|
11
|
+
*
|
|
12
|
+
* @param data The data to process.
|
|
13
|
+
* @param key The key to use for the XOR operation.
|
|
14
|
+
* @returns A new Uint8Array containing the result of the XOR operation.
|
|
15
|
+
*/
|
|
16
|
+
static xor(data: Uint8Array, key: Uint8Array): Uint8Array;
|
|
17
|
+
/**
|
|
18
|
+
* Generates a random key of a specified length.
|
|
19
|
+
* @param length The length of the key in bytes.
|
|
20
|
+
* @returns A Uint8Array containing the random key.
|
|
21
|
+
* @throws Error if crypto API is not available.
|
|
22
|
+
*/
|
|
23
|
+
static generateKey(length: number): Uint8Array;
|
|
24
|
+
/**
|
|
25
|
+
* Helper method to convert a string to a Uint8Array.
|
|
26
|
+
* @param str The string to convert.
|
|
27
|
+
* @returns A Uint8Array representation of the string.
|
|
28
|
+
*/
|
|
29
|
+
static stringToBytes(str: string): Uint8Array;
|
|
30
|
+
/**
|
|
31
|
+
* Helper method to convert a Uint8Array to a string.
|
|
32
|
+
* @param bytes The Uint8Array to convert.
|
|
33
|
+
* @returns A string representation of the Uint8Array.
|
|
34
|
+
*/
|
|
35
|
+
static bytesToString(bytes: Uint8Array): string;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=xor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xor.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/services/xor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,UAAU;IACrB;;;;;;;;OAQG;WACW,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,UAAU;IAQhE;;;;;OAKG;WACW,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAgBrD;;;;OAIG;WACW,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAKpD;;;;OAIG;WACW,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;CAIvD"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A simple and fast XOR cipher for obfuscating data in memory for browser environments.
|
|
3
|
+
* This is not a substitute for strong cryptography but provides a lightweight way
|
|
4
|
+
* to prevent sensitive data from being stored in plaintext in memory.
|
|
5
|
+
*/
|
|
6
|
+
export class XorService {
|
|
7
|
+
/**
|
|
8
|
+
* Encrypts or decrypts data using a simple XOR cipher.
|
|
9
|
+
* The key is XORed with the data. The same function is used for
|
|
10
|
+
* both encryption and decryption.
|
|
11
|
+
*
|
|
12
|
+
* @param data The data to process.
|
|
13
|
+
* @param key The key to use for the XOR operation.
|
|
14
|
+
* @returns A new Uint8Array containing the result of the XOR operation.
|
|
15
|
+
*/
|
|
16
|
+
static xor(data, key) {
|
|
17
|
+
const result = new Uint8Array(data.length);
|
|
18
|
+
for (let i = 0; i < data.length; i++) {
|
|
19
|
+
result[i] = data[i] ^ key[i % key.length];
|
|
20
|
+
}
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Generates a random key of a specified length.
|
|
25
|
+
* @param length The length of the key in bytes.
|
|
26
|
+
* @returns A Uint8Array containing the random key.
|
|
27
|
+
* @throws Error if crypto API is not available.
|
|
28
|
+
*/
|
|
29
|
+
static generateKey(length) {
|
|
30
|
+
const randomBytes = new Uint8Array(length);
|
|
31
|
+
// Check if running in a browser with crypto support
|
|
32
|
+
if (typeof window !== 'undefined' && window.crypto) {
|
|
33
|
+
window.crypto.getRandomValues(randomBytes);
|
|
34
|
+
}
|
|
35
|
+
else if (typeof crypto !== 'undefined') {
|
|
36
|
+
// For environments where crypto is global (some newer JS runtimes)
|
|
37
|
+
crypto.getRandomValues(randomBytes);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
throw new Error('Crypto API not available in this environment');
|
|
41
|
+
}
|
|
42
|
+
return randomBytes;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Helper method to convert a string to a Uint8Array.
|
|
46
|
+
* @param str The string to convert.
|
|
47
|
+
* @returns A Uint8Array representation of the string.
|
|
48
|
+
*/
|
|
49
|
+
static stringToBytes(str) {
|
|
50
|
+
const encoder = new TextEncoder();
|
|
51
|
+
return encoder.encode(str);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Helper method to convert a Uint8Array to a string.
|
|
55
|
+
* @param bytes The Uint8Array to convert.
|
|
56
|
+
* @returns A string representation of the Uint8Array.
|
|
57
|
+
*/
|
|
58
|
+
static bytesToString(bytes) {
|
|
59
|
+
const decoder = new TextDecoder();
|
|
60
|
+
return decoder.decode(bytes);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=xor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xor.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/services/xor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,OAAO,UAAU;IACrB;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAgB,EAAE,GAAe;QACjD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,WAAW,CAAC,MAAc;QACtC,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAE3C,oDAAoD;QACpD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YACzC,mEAAmE;YACnE,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,aAAa,CAAC,GAAW;QACrC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,aAAa,CAAC,KAAiB;QAC3C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/test-mocks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/test-mocks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { EmailString, MemberType, SecureBuffer, SecureString } from '@digitaldefiance/ecies-lib';
|
|
2
|
+
import { Wallet } from '@ethereumjs/wallet';
|
|
3
|
+
import { ObjectId } from 'bson';
|
|
4
|
+
import type { IFrontendMemberOperational } from '../interfaces/frontend-member-operational';
|
|
5
|
+
import { SignatureUint8Array } from '../types';
|
|
6
|
+
export declare class MockFrontendMember implements IFrontendMemberOperational<ObjectId> {
|
|
7
|
+
private _id;
|
|
8
|
+
private _type;
|
|
9
|
+
private _name;
|
|
10
|
+
private _email;
|
|
11
|
+
private _publicKey;
|
|
12
|
+
private _creatorId;
|
|
13
|
+
private _dateCreated;
|
|
14
|
+
private _dateUpdated;
|
|
15
|
+
private _privateKey?;
|
|
16
|
+
private _wallet?;
|
|
17
|
+
private _hasPrivateKey;
|
|
18
|
+
constructor(data?: Partial<{
|
|
19
|
+
id: ObjectId;
|
|
20
|
+
type: MemberType;
|
|
21
|
+
name: string;
|
|
22
|
+
email: EmailString;
|
|
23
|
+
publicKey: Uint8Array;
|
|
24
|
+
privateKey: SecureBuffer;
|
|
25
|
+
wallet: Wallet;
|
|
26
|
+
creatorId: ObjectId;
|
|
27
|
+
dateCreated: Date;
|
|
28
|
+
dateUpdated: Date;
|
|
29
|
+
hasPrivateKey: boolean;
|
|
30
|
+
}>);
|
|
31
|
+
get id(): ObjectId;
|
|
32
|
+
get type(): MemberType;
|
|
33
|
+
get name(): string;
|
|
34
|
+
get email(): EmailString;
|
|
35
|
+
get publicKey(): Uint8Array;
|
|
36
|
+
get creatorId(): ObjectId;
|
|
37
|
+
get dateCreated(): Date;
|
|
38
|
+
get dateUpdated(): Date;
|
|
39
|
+
get privateKey(): SecureBuffer | undefined;
|
|
40
|
+
get wallet(): Wallet | undefined;
|
|
41
|
+
get hasPrivateKey(): boolean;
|
|
42
|
+
unloadPrivateKey(): void;
|
|
43
|
+
unloadWallet(): void;
|
|
44
|
+
unloadWalletAndPrivateKey(): void;
|
|
45
|
+
loadWallet(mnemonic: SecureString): void;
|
|
46
|
+
loadPrivateKey(privateKey: SecureBuffer): void;
|
|
47
|
+
sign(data: Uint8Array): SignatureUint8Array;
|
|
48
|
+
verify(signature: SignatureUint8Array, data: Uint8Array): boolean;
|
|
49
|
+
encryptData(data: string | Uint8Array): Promise<Uint8Array>;
|
|
50
|
+
decryptData(encryptedData: Uint8Array): Promise<Uint8Array>;
|
|
51
|
+
encryptDataStream(source: AsyncIterable<Uint8Array> | ReadableStream<Uint8Array>, options?: {
|
|
52
|
+
recipientPublicKey?: Uint8Array;
|
|
53
|
+
onProgress?: (progress: {
|
|
54
|
+
bytesProcessed: number;
|
|
55
|
+
chunksProcessed: number;
|
|
56
|
+
}) => void;
|
|
57
|
+
signal?: AbortSignal;
|
|
58
|
+
}): AsyncGenerator<import('../interfaces/encrypted-chunk').IEncryptedChunk, void, unknown>;
|
|
59
|
+
decryptDataStream(source: AsyncIterable<Uint8Array> | ReadableStream<Uint8Array>, options?: {
|
|
60
|
+
onProgress?: (progress: {
|
|
61
|
+
bytesProcessed: number;
|
|
62
|
+
chunksProcessed: number;
|
|
63
|
+
}) => void;
|
|
64
|
+
signal?: AbortSignal;
|
|
65
|
+
}): AsyncGenerator<Uint8Array, void, unknown>;
|
|
66
|
+
toJson(): string;
|
|
67
|
+
dispose(): void;
|
|
68
|
+
static create(overrides?: Partial<{
|
|
69
|
+
id: ObjectId;
|
|
70
|
+
type: MemberType;
|
|
71
|
+
name: string;
|
|
72
|
+
email: EmailString;
|
|
73
|
+
publicKey: Uint8Array;
|
|
74
|
+
privateKey: SecureBuffer;
|
|
75
|
+
wallet: Wallet;
|
|
76
|
+
creatorId: ObjectId;
|
|
77
|
+
dateCreated: Date;
|
|
78
|
+
dateUpdated: Date;
|
|
79
|
+
hasPrivateKey: boolean;
|
|
80
|
+
}>): MockFrontendMember;
|
|
81
|
+
static createMultiple(count: number): MockFrontendMember[];
|
|
82
|
+
static createWithPrivateKey(): MockFrontendMember;
|
|
83
|
+
static createWithoutPrivateKey(): MockFrontendMember;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=mock-frontend-member.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-frontend-member.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/test-mocks/mock-frontend-member.ts"],"names":[],"mappings":"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"}
|