@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
|
@@ -1,276 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
EmailString,
|
|
3
|
-
MemberType,
|
|
4
|
-
SecureBuffer,
|
|
5
|
-
SecureString,
|
|
6
|
-
} from '@digitaldefiance/ecies-lib';
|
|
7
|
-
import { Wallet } from '@ethereumjs/wallet';
|
|
8
|
-
import { faker } from '@faker-js/faker';
|
|
9
|
-
|
|
10
|
-
import { ObjectId } from 'bson';
|
|
11
|
-
import type { IFrontendMemberOperational } from '../interfaces/frontend-member-operational';
|
|
12
|
-
import { SignatureUint8Array } from '../types';
|
|
13
|
-
|
|
14
|
-
const hexToUint8Array = (hex: string): Uint8Array => {
|
|
15
|
-
const clean = hex.replace(/^0x/, '');
|
|
16
|
-
const bytes = new Uint8Array(clean.length / 2);
|
|
17
|
-
for (let i = 0; i < clean.length; i += 2) {
|
|
18
|
-
bytes[i / 2] = parseInt(clean.slice(i, i + 2), 16);
|
|
19
|
-
}
|
|
20
|
-
return bytes;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
const createMockWallet = (): Wallet =>
|
|
24
|
-
({
|
|
25
|
-
getPrivateKey: () =>
|
|
26
|
-
hexToUint8Array(faker.string.hexadecimal({ length: 64 })),
|
|
27
|
-
getPublicKey: () =>
|
|
28
|
-
hexToUint8Array(faker.string.hexadecimal({ length: 128 })),
|
|
29
|
-
getAddress: () => hexToUint8Array(faker.string.hexadecimal({ length: 40 })),
|
|
30
|
-
sign: () => hexToUint8Array(faker.string.hexadecimal({ length: 128 })),
|
|
31
|
-
} as any);
|
|
32
|
-
|
|
33
|
-
export class MockFrontendMember
|
|
34
|
-
implements IFrontendMemberOperational<ObjectId>
|
|
35
|
-
{
|
|
36
|
-
private _id: ObjectId;
|
|
37
|
-
private _type: MemberType;
|
|
38
|
-
private _name: string;
|
|
39
|
-
private _email: EmailString;
|
|
40
|
-
private _publicKey: Uint8Array;
|
|
41
|
-
private _creatorId: ObjectId;
|
|
42
|
-
private _dateCreated: Date;
|
|
43
|
-
private _dateUpdated: Date;
|
|
44
|
-
private _privateKey?: SecureBuffer;
|
|
45
|
-
private _wallet?: Wallet;
|
|
46
|
-
private _hasPrivateKey: boolean;
|
|
47
|
-
|
|
48
|
-
constructor(
|
|
49
|
-
data: Partial<{
|
|
50
|
-
id: ObjectId;
|
|
51
|
-
type: MemberType;
|
|
52
|
-
name: string;
|
|
53
|
-
email: EmailString;
|
|
54
|
-
publicKey: Uint8Array;
|
|
55
|
-
privateKey: SecureBuffer;
|
|
56
|
-
wallet: Wallet;
|
|
57
|
-
creatorId: ObjectId;
|
|
58
|
-
dateCreated: Date;
|
|
59
|
-
dateUpdated: Date;
|
|
60
|
-
hasPrivateKey: boolean;
|
|
61
|
-
}> = {},
|
|
62
|
-
) {
|
|
63
|
-
this._id = data.id || new ObjectId();
|
|
64
|
-
this._type = data.type || faker.helpers.enumValue(MemberType);
|
|
65
|
-
this._name = data.name || faker.person.fullName();
|
|
66
|
-
this._email = data.email || new EmailString(faker.internet.email());
|
|
67
|
-
this._publicKey =
|
|
68
|
-
data.publicKey ||
|
|
69
|
-
hexToUint8Array(faker.string.hexadecimal({ length: 130 }));
|
|
70
|
-
this._creatorId = data.creatorId || this._id;
|
|
71
|
-
this._dateCreated = data.dateCreated || faker.date.past();
|
|
72
|
-
this._dateUpdated =
|
|
73
|
-
data.dateUpdated ||
|
|
74
|
-
faker.date.between({ from: this._dateCreated, to: new Date() });
|
|
75
|
-
this._privateKey = data.privateKey;
|
|
76
|
-
this._wallet =
|
|
77
|
-
data.wallet ||
|
|
78
|
-
(data.hasPrivateKey !== false ? createMockWallet() : undefined);
|
|
79
|
-
this._hasPrivateKey = data.hasPrivateKey ?? !!this._privateKey;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
get id(): ObjectId {
|
|
83
|
-
return this._id;
|
|
84
|
-
}
|
|
85
|
-
get type(): MemberType {
|
|
86
|
-
return this._type;
|
|
87
|
-
}
|
|
88
|
-
get name(): string {
|
|
89
|
-
return this._name;
|
|
90
|
-
}
|
|
91
|
-
get email(): EmailString {
|
|
92
|
-
return this._email;
|
|
93
|
-
}
|
|
94
|
-
get publicKey(): Uint8Array {
|
|
95
|
-
return this._publicKey;
|
|
96
|
-
}
|
|
97
|
-
get creatorId(): ObjectId {
|
|
98
|
-
return this._creatorId;
|
|
99
|
-
}
|
|
100
|
-
get dateCreated(): Date {
|
|
101
|
-
return this._dateCreated;
|
|
102
|
-
}
|
|
103
|
-
get dateUpdated(): Date {
|
|
104
|
-
return this._dateUpdated;
|
|
105
|
-
}
|
|
106
|
-
get privateKey(): SecureBuffer | undefined {
|
|
107
|
-
return this._privateKey;
|
|
108
|
-
}
|
|
109
|
-
get wallet(): Wallet | undefined {
|
|
110
|
-
return this._wallet;
|
|
111
|
-
}
|
|
112
|
-
get hasPrivateKey(): boolean {
|
|
113
|
-
return this._hasPrivateKey;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
unloadPrivateKey(): void {}
|
|
117
|
-
|
|
118
|
-
unloadWallet(): void {}
|
|
119
|
-
|
|
120
|
-
unloadWalletAndPrivateKey(): void {}
|
|
121
|
-
|
|
122
|
-
loadWallet(mnemonic: SecureString): void {}
|
|
123
|
-
|
|
124
|
-
loadPrivateKey(privateKey: SecureBuffer): void {}
|
|
125
|
-
|
|
126
|
-
sign(data: Uint8Array): SignatureUint8Array {
|
|
127
|
-
return hexToUint8Array(
|
|
128
|
-
faker.string.hexadecimal({ length: 128 }),
|
|
129
|
-
) as SignatureUint8Array;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
verify(signature: SignatureUint8Array, data: Uint8Array): boolean {
|
|
133
|
-
return true;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
async encryptData(data: string | Uint8Array): Promise<Uint8Array> {
|
|
137
|
-
return hexToUint8Array(faker.string.hexadecimal({ length: 256 }));
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
async decryptData(encryptedData: Uint8Array): Promise<Uint8Array> {
|
|
141
|
-
const text = faker.lorem.paragraph();
|
|
142
|
-
return new TextEncoder().encode(text);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
async *encryptDataStream(
|
|
146
|
-
source: AsyncIterable<Uint8Array> | ReadableStream<Uint8Array>,
|
|
147
|
-
options?: {
|
|
148
|
-
recipientPublicKey?: Uint8Array;
|
|
149
|
-
onProgress?: (progress: {
|
|
150
|
-
bytesProcessed: number;
|
|
151
|
-
chunksProcessed: number;
|
|
152
|
-
}) => void;
|
|
153
|
-
signal?: AbortSignal;
|
|
154
|
-
},
|
|
155
|
-
): AsyncGenerator<
|
|
156
|
-
import('../interfaces/encrypted-chunk').IEncryptedChunk,
|
|
157
|
-
void,
|
|
158
|
-
unknown
|
|
159
|
-
> {
|
|
160
|
-
// Mock implementation
|
|
161
|
-
const chunks = [];
|
|
162
|
-
if ('getReader' in source) {
|
|
163
|
-
const reader = (source as ReadableStream<Uint8Array>).getReader();
|
|
164
|
-
try {
|
|
165
|
-
while (true) {
|
|
166
|
-
const { done, value } = await reader.read();
|
|
167
|
-
if (done) break;
|
|
168
|
-
chunks.push(value);
|
|
169
|
-
}
|
|
170
|
-
} finally {
|
|
171
|
-
reader.releaseLock();
|
|
172
|
-
}
|
|
173
|
-
} else {
|
|
174
|
-
for await (const chunk of source as AsyncIterable<Uint8Array>) {
|
|
175
|
-
chunks.push(chunk);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
let index = 0;
|
|
179
|
-
for (const chunk of chunks) {
|
|
180
|
-
yield {
|
|
181
|
-
index: index++,
|
|
182
|
-
data: hexToUint8Array(
|
|
183
|
-
faker.string.hexadecimal({ length: chunk.length * 2 }),
|
|
184
|
-
),
|
|
185
|
-
isLast: index === chunks.length,
|
|
186
|
-
metadata: {
|
|
187
|
-
originalSize: chunk.length,
|
|
188
|
-
encryptedSize: chunk.length * 2,
|
|
189
|
-
timestamp: Date.now(),
|
|
190
|
-
},
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
async *decryptDataStream(
|
|
196
|
-
source: AsyncIterable<Uint8Array> | ReadableStream<Uint8Array>,
|
|
197
|
-
options?: {
|
|
198
|
-
onProgress?: (progress: {
|
|
199
|
-
bytesProcessed: number;
|
|
200
|
-
chunksProcessed: number;
|
|
201
|
-
}) => void;
|
|
202
|
-
signal?: AbortSignal;
|
|
203
|
-
},
|
|
204
|
-
): AsyncGenerator<Uint8Array, void, unknown> {
|
|
205
|
-
// Mock implementation
|
|
206
|
-
if ('getReader' in source) {
|
|
207
|
-
const reader = (source as ReadableStream<Uint8Array>).getReader();
|
|
208
|
-
try {
|
|
209
|
-
while (true) {
|
|
210
|
-
const { done, value } = await reader.read();
|
|
211
|
-
if (done) break;
|
|
212
|
-
yield value;
|
|
213
|
-
}
|
|
214
|
-
} finally {
|
|
215
|
-
reader.releaseLock();
|
|
216
|
-
}
|
|
217
|
-
} else {
|
|
218
|
-
for await (const chunk of source as AsyncIterable<Uint8Array>) {
|
|
219
|
-
yield chunk;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
toJson(): string {
|
|
225
|
-
return JSON.stringify({
|
|
226
|
-
id: this._id.toString(),
|
|
227
|
-
type: this._type,
|
|
228
|
-
name: this._name,
|
|
229
|
-
email: this._email.toString(),
|
|
230
|
-
publicKey: btoa(String.fromCharCode(...this._publicKey)),
|
|
231
|
-
creatorId: this._creatorId.toString(),
|
|
232
|
-
dateCreated: this._dateCreated.toISOString(),
|
|
233
|
-
dateUpdated: this._dateUpdated.toISOString(),
|
|
234
|
-
});
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
dispose(): void {}
|
|
238
|
-
|
|
239
|
-
static create(
|
|
240
|
-
overrides: Partial<{
|
|
241
|
-
id: ObjectId;
|
|
242
|
-
type: MemberType;
|
|
243
|
-
name: string;
|
|
244
|
-
email: EmailString;
|
|
245
|
-
publicKey: Uint8Array;
|
|
246
|
-
privateKey: SecureBuffer;
|
|
247
|
-
wallet: Wallet;
|
|
248
|
-
creatorId: ObjectId;
|
|
249
|
-
dateCreated: Date;
|
|
250
|
-
dateUpdated: Date;
|
|
251
|
-
hasPrivateKey: boolean;
|
|
252
|
-
}> = {},
|
|
253
|
-
): MockFrontendMember {
|
|
254
|
-
return new MockFrontendMember(overrides);
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
static createMultiple(count: number): MockFrontendMember[] {
|
|
258
|
-
return Array.from({ length: count }, () => this.create());
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
static createWithPrivateKey(): MockFrontendMember {
|
|
262
|
-
return new MockFrontendMember({
|
|
263
|
-
privateKey: new SecureBuffer(
|
|
264
|
-
hexToUint8Array(faker.string.hexadecimal({ length: 64 })),
|
|
265
|
-
),
|
|
266
|
-
hasPrivateKey: true,
|
|
267
|
-
});
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
static createWithoutPrivateKey(): MockFrontendMember {
|
|
271
|
-
return new MockFrontendMember({
|
|
272
|
-
privateKey: undefined,
|
|
273
|
-
hasPrivateKey: false,
|
|
274
|
-
});
|
|
275
|
-
}
|
|
276
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export type DeepPartial<T> = {
|
|
2
|
-
[P in keyof T]?: T[P] extends (...args: any[]) => any
|
|
3
|
-
? T[P]
|
|
4
|
-
: T[P] extends ReadonlyArray<infer U>
|
|
5
|
-
? ReadonlyArray<DeepPartial<U>>
|
|
6
|
-
: T[P] extends Array<infer U>
|
|
7
|
-
? Array<DeepPartial<U>>
|
|
8
|
-
: T[P] extends object
|
|
9
|
-
? DeepPartial<T[P]>
|
|
10
|
-
: T[P];
|
|
11
|
-
};
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
EciesEncryptionType,
|
|
3
|
-
EciesEncryptionTypeEnum,
|
|
4
|
-
EciesEncryptionTypeEnumTypeMap,
|
|
5
|
-
EciesEncryptionTypeStringMap,
|
|
6
|
-
} from '../enumerations/ecies-encryption-type';
|
|
7
|
-
import { ECIESErrorTypeEnum } from '../enumerations/ecies-error-type';
|
|
8
|
-
import { ECIESError } from '../errors/ecies';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Converts an encryption type (string or enum) to its string representation
|
|
12
|
-
* @param type The encryption type to convert
|
|
13
|
-
* @returns The string representation of the encryption type
|
|
14
|
-
* @throws ECIESError if the type is invalid
|
|
15
|
-
*/
|
|
16
|
-
export function encryptionTypeToString(
|
|
17
|
-
type: EciesEncryptionType | EciesEncryptionTypeEnum,
|
|
18
|
-
): string {
|
|
19
|
-
// if enum
|
|
20
|
-
let resultType: EciesEncryptionType;
|
|
21
|
-
if (typeof type === 'number') {
|
|
22
|
-
resultType = EciesEncryptionTypeEnumTypeMap[type];
|
|
23
|
-
if (resultType === undefined) {
|
|
24
|
-
throw new ECIESError(ECIESErrorTypeEnum.InvalidEncryptionType);
|
|
25
|
-
}
|
|
26
|
-
} else {
|
|
27
|
-
resultType = type;
|
|
28
|
-
}
|
|
29
|
-
const result = EciesEncryptionTypeStringMap[resultType];
|
|
30
|
-
if (result === undefined) {
|
|
31
|
-
throw new ECIESError(ECIESErrorTypeEnum.InvalidEncryptionType);
|
|
32
|
-
}
|
|
33
|
-
return result;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Converts an encryption type enum to its type representation
|
|
38
|
-
* @param type The encryption type enum to convert
|
|
39
|
-
* @returns The type representation of the encryption type
|
|
40
|
-
* @throws ECIESError if the type is invalid
|
|
41
|
-
*/
|
|
42
|
-
export function encryptionTypeEnumToType(
|
|
43
|
-
type: EciesEncryptionTypeEnum,
|
|
44
|
-
): EciesEncryptionType {
|
|
45
|
-
const result = EciesEncryptionTypeEnumTypeMap[type];
|
|
46
|
-
if (result === undefined) {
|
|
47
|
-
throw new ECIESError(ECIESErrorTypeEnum.InvalidEncryptionType);
|
|
48
|
-
}
|
|
49
|
-
return result;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Validates that a value is a valid EciesEncryptionTypeEnum
|
|
54
|
-
* @param type The value to validate
|
|
55
|
-
* @returns true if the value is a valid EciesEncryptionTypeEnum, false otherwise
|
|
56
|
-
*/
|
|
57
|
-
export function validateEciesEncryptionTypeEnum(
|
|
58
|
-
type: EciesEncryptionTypeEnum,
|
|
59
|
-
): boolean {
|
|
60
|
-
return Object.values(EciesEncryptionTypeEnum).includes(type);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Ensures that a value is a valid EciesEncryptionTypeEnum
|
|
65
|
-
* @param type The value to validate
|
|
66
|
-
* @returns The validated EciesEncryptionTypeEnum
|
|
67
|
-
* @throws ECIESError if the type is invalid
|
|
68
|
-
*/
|
|
69
|
-
export function ensureEciesEncryptionTypeEnum(
|
|
70
|
-
type: EciesEncryptionTypeEnum,
|
|
71
|
-
): EciesEncryptionTypeEnum {
|
|
72
|
-
if (!validateEciesEncryptionTypeEnum(type)) {
|
|
73
|
-
throw new ECIESError(ECIESErrorTypeEnum.InvalidEncryptionType);
|
|
74
|
-
}
|
|
75
|
-
return type;
|
|
76
|
-
}
|
package/src/utils.ts
DELETED
|
@@ -1,329 +0,0 @@
|
|
|
1
|
-
import { EciesStringKey } from './enumerations/ecies-string-key';
|
|
2
|
-
import { LengthEncodingType } from './enumerations/length-encoding-type';
|
|
3
|
-
import { LengthErrorType } from './enumerations/length-error-type';
|
|
4
|
-
import { LengthError } from './errors';
|
|
5
|
-
import { EciesComponentId, getEciesI18nEngine } from './i18n-setup';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Encodes the length of the data in the buffer
|
|
9
|
-
* @param buffer The buffer to encode
|
|
10
|
-
* @returns The encoded buffer
|
|
11
|
-
*/
|
|
12
|
-
export function lengthEncodeData(buffer: Uint8Array): Uint8Array {
|
|
13
|
-
const lengthType: LengthEncodingType = getLengthEncodingTypeForLength(
|
|
14
|
-
buffer.length,
|
|
15
|
-
);
|
|
16
|
-
const lengthTypeSize: number = getLengthForLengthType(lengthType);
|
|
17
|
-
const result = new Uint8Array(1 + lengthTypeSize + buffer.length);
|
|
18
|
-
const view = new DataView(result.buffer);
|
|
19
|
-
|
|
20
|
-
view.setUint8(0, lengthType);
|
|
21
|
-
switch (lengthType) {
|
|
22
|
-
case LengthEncodingType.UInt8:
|
|
23
|
-
view.setUint8(1, buffer.length);
|
|
24
|
-
break;
|
|
25
|
-
case LengthEncodingType.UInt16:
|
|
26
|
-
view.setUint16(1, buffer.length, false); // big-endian
|
|
27
|
-
break;
|
|
28
|
-
case LengthEncodingType.UInt32:
|
|
29
|
-
view.setUint32(1, buffer.length, false); // big-endian
|
|
30
|
-
break;
|
|
31
|
-
case LengthEncodingType.UInt64:
|
|
32
|
-
view.setBigUint64(1, BigInt(buffer.length), false); // big-endian
|
|
33
|
-
break;
|
|
34
|
-
}
|
|
35
|
-
result.set(buffer, 1 + lengthTypeSize);
|
|
36
|
-
return result;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export function decodeLengthEncodedData(buffer: Uint8Array): {
|
|
40
|
-
data: Uint8Array;
|
|
41
|
-
totalLength: number;
|
|
42
|
-
} {
|
|
43
|
-
if (buffer.length < 1) {
|
|
44
|
-
throw new LengthError(LengthErrorType.LengthIsTooShort);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
const view = new DataView(
|
|
48
|
-
buffer.buffer,
|
|
49
|
-
buffer.byteOffset,
|
|
50
|
-
buffer.byteLength,
|
|
51
|
-
);
|
|
52
|
-
const lengthType: LengthEncodingType = getLengthEncodingTypeFromValue(
|
|
53
|
-
view.getUint8(0),
|
|
54
|
-
);
|
|
55
|
-
const lengthTypeSize: number = getLengthForLengthType(lengthType);
|
|
56
|
-
|
|
57
|
-
if (buffer.length < 1 + lengthTypeSize) {
|
|
58
|
-
throw new LengthError(LengthErrorType.LengthIsTooShort);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
let length: number | BigInt;
|
|
62
|
-
switch (lengthType) {
|
|
63
|
-
case LengthEncodingType.UInt8:
|
|
64
|
-
length = view.getUint8(1);
|
|
65
|
-
break;
|
|
66
|
-
case LengthEncodingType.UInt16:
|
|
67
|
-
length = view.getUint16(1, false); // big-endian
|
|
68
|
-
break;
|
|
69
|
-
case LengthEncodingType.UInt32:
|
|
70
|
-
length = view.getUint32(1, false); // big-endian
|
|
71
|
-
break;
|
|
72
|
-
case LengthEncodingType.UInt64:
|
|
73
|
-
length = view.getBigUint64(1, false); // big-endian
|
|
74
|
-
if (length.valueOf() > BigInt(Number.MAX_SAFE_INTEGER)) {
|
|
75
|
-
throw new LengthError(LengthErrorType.LengthIsTooLong);
|
|
76
|
-
}
|
|
77
|
-
break;
|
|
78
|
-
default:
|
|
79
|
-
throw new LengthError(LengthErrorType.LengthIsInvalidType);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
const totalLength = 1 + lengthTypeSize + Number(length);
|
|
83
|
-
if (totalLength > buffer.length) {
|
|
84
|
-
throw new LengthError(LengthErrorType.LengthIsTooShort);
|
|
85
|
-
}
|
|
86
|
-
return {
|
|
87
|
-
data: buffer.subarray(1 + lengthTypeSize, totalLength),
|
|
88
|
-
totalLength,
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
export function uint8ArrayToBase64(uint8Array: Uint8Array): string {
|
|
93
|
-
let binaryString = '';
|
|
94
|
-
for (let i = 0; i < uint8Array.length; i++) {
|
|
95
|
-
binaryString += String.fromCharCode(uint8Array[i]);
|
|
96
|
-
}
|
|
97
|
-
return btoa(binaryString);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
export function base64ToUint8Array(base64String: string): Uint8Array {
|
|
101
|
-
const binaryString = atob(base64String);
|
|
102
|
-
const len = binaryString.length;
|
|
103
|
-
const bytes = new Uint8Array(len);
|
|
104
|
-
for (let i = 0; i < len; i++) {
|
|
105
|
-
bytes[i] = binaryString.charCodeAt(i);
|
|
106
|
-
}
|
|
107
|
-
return bytes;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
export function uint8ArrayToHex(uint8Array: Uint8Array): string {
|
|
111
|
-
return Array.from(uint8Array)
|
|
112
|
-
.map((byte) => byte.toString(16).padStart(2, '0'))
|
|
113
|
-
.join('');
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
export function hexToUint8Array(hexString: string): Uint8Array {
|
|
117
|
-
const engine = getEciesI18nEngine();
|
|
118
|
-
if (!hexString || typeof hexString !== 'string') {
|
|
119
|
-
throw new Error(
|
|
120
|
-
engine.translate(
|
|
121
|
-
EciesComponentId,
|
|
122
|
-
EciesStringKey.Error_Utils_InvalidHexString,
|
|
123
|
-
),
|
|
124
|
-
);
|
|
125
|
-
}
|
|
126
|
-
if (hexString.length % 2 !== 0) {
|
|
127
|
-
throw new Error(
|
|
128
|
-
engine.translate(
|
|
129
|
-
EciesComponentId,
|
|
130
|
-
EciesStringKey.Error_Utils_HexStringMustHaveEvenLength,
|
|
131
|
-
),
|
|
132
|
-
);
|
|
133
|
-
}
|
|
134
|
-
if (!/^[0-9a-fA-F]*$/.test(hexString)) {
|
|
135
|
-
throw new Error(
|
|
136
|
-
engine.translate(
|
|
137
|
-
EciesComponentId,
|
|
138
|
-
EciesStringKey.Error_Utils_HexStringContainsInvalidCharacters,
|
|
139
|
-
),
|
|
140
|
-
);
|
|
141
|
-
}
|
|
142
|
-
const len = hexString.length;
|
|
143
|
-
const bytes = new Uint8Array(len / 2);
|
|
144
|
-
for (let i = 0; i < len; i += 2) {
|
|
145
|
-
bytes[i / 2] = parseInt(hexString.substring(i, i + 2), 16);
|
|
146
|
-
}
|
|
147
|
-
return bytes;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Utility functions for browser ECIES implementation
|
|
152
|
-
*/
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* CRC16-CCITT implementation for data integrity checking
|
|
156
|
-
* Uses CRC16-CCITT-FALSE variant (init 0xFFFF)
|
|
157
|
-
*/
|
|
158
|
-
export function crc16(data: Uint8Array): Uint8Array {
|
|
159
|
-
let crc = 0xffff; // Initial value for CRC16-CCITT-FALSE
|
|
160
|
-
const polynomial = 0x1021; // CRC16-CCITT polynomial
|
|
161
|
-
|
|
162
|
-
for (let i = 0; i < data.length; i++) {
|
|
163
|
-
crc ^= data[i] << 8;
|
|
164
|
-
for (let j = 0; j < 8; j++) {
|
|
165
|
-
if (crc & 0x8000) {
|
|
166
|
-
crc = (crc << 1) ^ polynomial;
|
|
167
|
-
} else {
|
|
168
|
-
crc = crc << 1;
|
|
169
|
-
}
|
|
170
|
-
crc &= 0xffff; // Keep it 16-bit
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
const result = new Uint8Array(2);
|
|
175
|
-
result[0] = (crc >>> 8) & 0xff; // Big-endian
|
|
176
|
-
result[1] = crc & 0xff;
|
|
177
|
-
return result;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* Convert string to Uint8Array (UTF-8 encoding)
|
|
182
|
-
*/
|
|
183
|
-
export function stringToUint8Array(str: string): Uint8Array {
|
|
184
|
-
return new TextEncoder().encode(str);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
/**
|
|
188
|
-
* Convert Uint8Array to string (UTF-8 decoding)
|
|
189
|
-
*/
|
|
190
|
-
export function uint8ArrayToString(array: Uint8Array): string {
|
|
191
|
-
return new TextDecoder().decode(array);
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* Secure random bytes generation
|
|
196
|
-
*/
|
|
197
|
-
export function randomBytes(length: number): Uint8Array {
|
|
198
|
-
return crypto.getRandomValues(new Uint8Array(length));
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Compare two Uint8Arrays for equality
|
|
203
|
-
*/
|
|
204
|
-
export function arraysEqual(a: Uint8Array, b: Uint8Array): boolean {
|
|
205
|
-
if (a.length !== b.length) return false;
|
|
206
|
-
let result = 0;
|
|
207
|
-
for (let i = 0; i < a.length; i++) {
|
|
208
|
-
result |= a[i] ^ b[i];
|
|
209
|
-
}
|
|
210
|
-
return result === 0;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
/**
|
|
214
|
-
* Concatenate multiple Uint8Arrays
|
|
215
|
-
*/
|
|
216
|
-
export function concatUint8Arrays(...arrays: Uint8Array[]): Uint8Array {
|
|
217
|
-
const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);
|
|
218
|
-
const result = new Uint8Array(totalLength);
|
|
219
|
-
let offset = 0;
|
|
220
|
-
for (const array of arrays) {
|
|
221
|
-
result.set(array, offset);
|
|
222
|
-
offset += array.length;
|
|
223
|
-
}
|
|
224
|
-
return result;
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
/**
|
|
228
|
-
* Get the length encoding type for a given length
|
|
229
|
-
* @param length The length to evaluate
|
|
230
|
-
* @returns The corresponding LengthEncodingType
|
|
231
|
-
*/
|
|
232
|
-
export function getLengthEncodingTypeForLength<
|
|
233
|
-
TStringKey extends string,
|
|
234
|
-
TLanguage extends string,
|
|
235
|
-
>(length: number | BigInt): LengthEncodingType {
|
|
236
|
-
if (typeof length === 'number') {
|
|
237
|
-
if (length < 256) {
|
|
238
|
-
return LengthEncodingType.UInt8;
|
|
239
|
-
} else if (length < 65536) {
|
|
240
|
-
return LengthEncodingType.UInt16;
|
|
241
|
-
} else if (length < 4294967296) {
|
|
242
|
-
return LengthEncodingType.UInt32;
|
|
243
|
-
} else if (length < Number.MAX_SAFE_INTEGER) {
|
|
244
|
-
return LengthEncodingType.UInt64;
|
|
245
|
-
} else {
|
|
246
|
-
throw new LengthError(LengthErrorType.LengthIsTooLong);
|
|
247
|
-
}
|
|
248
|
-
} else if (typeof length === 'bigint') {
|
|
249
|
-
if (length < 256n) {
|
|
250
|
-
return LengthEncodingType.UInt8;
|
|
251
|
-
} else if (length < 65536n) {
|
|
252
|
-
return LengthEncodingType.UInt16;
|
|
253
|
-
} else if (length < 4294967296n) {
|
|
254
|
-
return LengthEncodingType.UInt32;
|
|
255
|
-
} else if (length < 18446744073709551616n) {
|
|
256
|
-
return LengthEncodingType.UInt64;
|
|
257
|
-
} else {
|
|
258
|
-
throw new LengthError(LengthErrorType.LengthIsTooLong);
|
|
259
|
-
}
|
|
260
|
-
} else {
|
|
261
|
-
throw new LengthError(LengthErrorType.LengthIsInvalidType);
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
/**
|
|
266
|
-
* Get the length encoding type for a given value
|
|
267
|
-
* @param value The value to evaluate
|
|
268
|
-
* @returns The corresponding LengthEncodingType
|
|
269
|
-
*/
|
|
270
|
-
export function getLengthEncodingTypeFromValue<
|
|
271
|
-
TStringKey extends string,
|
|
272
|
-
TLanguage extends string,
|
|
273
|
-
>(value: number): LengthEncodingType {
|
|
274
|
-
for (const length of Object.values(LengthEncodingType)) {
|
|
275
|
-
if (length === value) {
|
|
276
|
-
return length;
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
throw new LengthError(LengthErrorType.LengthIsInvalidType);
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
/**
|
|
283
|
-
* Safely converts BigInt to Number, throwing if value exceeds safe integer range
|
|
284
|
-
* @param value The BigInt value to convert
|
|
285
|
-
* @returns The number value
|
|
286
|
-
*/
|
|
287
|
-
export function safeBigIntToNumber(value: bigint): number {
|
|
288
|
-
const engine = getEciesI18nEngine();
|
|
289
|
-
if (value > BigInt(Number.MAX_SAFE_INTEGER)) {
|
|
290
|
-
throw new Error(
|
|
291
|
-
engine.translate(
|
|
292
|
-
EciesComponentId,
|
|
293
|
-
EciesStringKey.Error_Utils_ValueExceedsSafeIntegerRange,
|
|
294
|
-
),
|
|
295
|
-
);
|
|
296
|
-
}
|
|
297
|
-
if (value < BigInt(Number.MIN_SAFE_INTEGER)) {
|
|
298
|
-
throw new Error(
|
|
299
|
-
engine.translate(
|
|
300
|
-
EciesComponentId,
|
|
301
|
-
EciesStringKey.Error_Utils_ValueBelowSafeIntegerRange,
|
|
302
|
-
),
|
|
303
|
-
);
|
|
304
|
-
}
|
|
305
|
-
return Number(value);
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
/**
|
|
309
|
-
* Get the length in bytes for a given LengthEncodingType
|
|
310
|
-
* @param type The LengthEncodingType to evaluate
|
|
311
|
-
* @returns The length in bytes
|
|
312
|
-
*/
|
|
313
|
-
export function getLengthForLengthType<
|
|
314
|
-
TStringKey extends string,
|
|
315
|
-
TLanguage extends string,
|
|
316
|
-
>(type: LengthEncodingType): number {
|
|
317
|
-
switch (type) {
|
|
318
|
-
case LengthEncodingType.UInt8:
|
|
319
|
-
return 1;
|
|
320
|
-
case LengthEncodingType.UInt16:
|
|
321
|
-
return 2;
|
|
322
|
-
case LengthEncodingType.UInt32:
|
|
323
|
-
return 4;
|
|
324
|
-
case LengthEncodingType.UInt64:
|
|
325
|
-
return 8;
|
|
326
|
-
default:
|
|
327
|
-
throw new LengthError(LengthErrorType.LengthIsInvalidType);
|
|
328
|
-
}
|
|
329
|
-
}
|