@digitaldefiance/ecies-lib 4.12.7 → 4.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -12
- package/package.json +4 -3
- package/src/builders/ecies-builder.d.ts +24 -1
- package/src/builders/ecies-builder.d.ts.map +1 -1
- package/src/builders/ecies-builder.js +24 -1
- package/src/builders/ecies-builder.js.map +1 -1
- package/src/builders/member-builder.d.ts +57 -1
- package/src/builders/member-builder.d.ts.map +1 -1
- package/src/builders/member-builder.js +57 -1
- package/src/builders/member-builder.js.map +1 -1
- package/src/constants.d.ts +99 -10
- package/src/constants.d.ts.map +1 -1
- package/src/constants.js +162 -20
- package/src/constants.js.map +1 -1
- package/src/core/errors/crypto-error.d.ts +28 -1
- package/src/core/errors/crypto-error.d.ts.map +1 -1
- package/src/core/errors/crypto-error.js +28 -1
- package/src/core/errors/crypto-error.js.map +1 -1
- package/src/core/types/result.d.ts +21 -1
- package/src/core/types/result.d.ts.map +1 -1
- package/src/core/types/result.js +17 -1
- package/src/core/types/result.js.map +1 -1
- package/src/enumerations/ecies-cipher-suite.d.ts +11 -0
- package/src/enumerations/ecies-cipher-suite.d.ts.map +1 -1
- package/src/enumerations/ecies-cipher-suite.js +11 -1
- package/src/enumerations/ecies-cipher-suite.js.map +1 -1
- package/src/enumerations/ecies-encryption-type.d.ts +26 -3
- package/src/enumerations/ecies-encryption-type.d.ts.map +1 -1
- package/src/enumerations/ecies-encryption-type.js +29 -10
- package/src/enumerations/ecies-encryption-type.js.map +1 -1
- package/src/enumerations/ecies-error-type.d.ts +48 -3
- package/src/enumerations/ecies-error-type.d.ts.map +1 -1
- package/src/enumerations/ecies-error-type.js +45 -0
- package/src/enumerations/ecies-error-type.js.map +1 -1
- package/src/enumerations/ecies-string-key.d.ts +4 -0
- package/src/enumerations/ecies-string-key.d.ts.map +1 -1
- package/src/enumerations/ecies-string-key.js +4 -0
- package/src/enumerations/ecies-string-key.js.map +1 -1
- package/src/enumerations/ecies-version.d.ts +5 -0
- package/src/enumerations/ecies-version.d.ts.map +1 -1
- package/src/enumerations/ecies-version.js +5 -0
- package/src/enumerations/ecies-version.js.map +1 -1
- package/src/enumerations/guid-brand-type.d.ts +13 -8
- package/src/enumerations/guid-brand-type.d.ts.map +1 -1
- package/src/enumerations/guid-brand-type.js +13 -8
- package/src/enumerations/guid-brand-type.js.map +1 -1
- package/src/enumerations/guid-error-type.d.ts +8 -0
- package/src/enumerations/guid-error-type.d.ts.map +1 -1
- package/src/enumerations/guid-error-type.js +8 -0
- package/src/enumerations/guid-error-type.js.map +1 -1
- package/src/enumerations/index.d.ts +4 -0
- package/src/enumerations/index.d.ts.map +1 -1
- package/src/enumerations/index.js +4 -0
- package/src/enumerations/index.js.map +1 -1
- package/src/enumerations/invalid-email-type.d.ts +7 -0
- package/src/enumerations/invalid-email-type.d.ts.map +1 -1
- package/src/enumerations/invalid-email-type.js +7 -0
- package/src/enumerations/invalid-email-type.js.map +1 -1
- package/src/enumerations/length-encoding-type.d.ts +8 -0
- package/src/enumerations/length-encoding-type.d.ts.map +1 -1
- package/src/enumerations/length-encoding-type.js +8 -0
- package/src/enumerations/length-encoding-type.js.map +1 -1
- package/src/enumerations/length-error-type.d.ts +7 -0
- package/src/enumerations/length-error-type.d.ts.map +1 -1
- package/src/enumerations/length-error-type.js +7 -0
- package/src/enumerations/length-error-type.js.map +1 -1
- package/src/enumerations/password-login-error-type.d.ts +6 -0
- package/src/enumerations/password-login-error-type.d.ts.map +1 -1
- package/src/enumerations/password-login-error-type.js +6 -0
- package/src/enumerations/password-login-error-type.js.map +1 -1
- package/src/enumerations/pbkdf2-error-type.d.ts +7 -0
- package/src/enumerations/pbkdf2-error-type.d.ts.map +1 -1
- package/src/enumerations/pbkdf2-error-type.js +7 -0
- package/src/enumerations/pbkdf2-error-type.js.map +1 -1
- package/src/enumerations/pbkdf2-profile.d.ts +7 -0
- package/src/enumerations/pbkdf2-profile.d.ts.map +1 -1
- package/src/enumerations/pbkdf2-profile.js +7 -0
- package/src/enumerations/pbkdf2-profile.js.map +1 -1
- package/src/enumerations/secure-storage-error-type.d.ts +7 -0
- package/src/enumerations/secure-storage-error-type.d.ts.map +1 -1
- package/src/enumerations/secure-storage-error-type.js +7 -0
- package/src/enumerations/secure-storage-error-type.js.map +1 -1
- package/src/errors/index.d.ts +5 -0
- package/src/errors/index.d.ts.map +1 -1
- package/src/errors/index.js +5 -0
- package/src/errors/index.js.map +1 -1
- package/src/errors/invalid-email.d.ts +4 -0
- package/src/errors/invalid-email.d.ts.map +1 -1
- package/src/errors/invalid-email.js +4 -0
- package/src/errors/invalid-email.js.map +1 -1
- package/src/errors/length.d.ts +4 -0
- package/src/errors/length.d.ts.map +1 -1
- package/src/errors/length.js +4 -0
- package/src/errors/length.js.map +1 -1
- package/src/errors/member.d.ts +4 -0
- package/src/errors/member.d.ts.map +1 -1
- package/src/errors/member.js +4 -0
- package/src/errors/member.js.map +1 -1
- package/src/errors/pbkdf2.d.ts +4 -0
- package/src/errors/pbkdf2.d.ts.map +1 -1
- package/src/errors/pbkdf2.js +4 -0
- package/src/errors/pbkdf2.js.map +1 -1
- package/src/errors/secure-storage.d.ts +4 -0
- package/src/errors/secure-storage.d.ts.map +1 -1
- package/src/errors/secure-storage.js +4 -0
- package/src/errors/secure-storage.js.map +1 -1
- package/src/errors/simple-ecies.d.ts +4 -0
- package/src/errors/simple-ecies.d.ts.map +1 -1
- package/src/errors/simple-ecies.js +4 -0
- package/src/errors/simple-ecies.js.map +1 -1
- package/src/errors/simple-test-error.d.ts +3 -0
- package/src/errors/simple-test-error.d.ts.map +1 -1
- package/src/errors/simple-test-error.js +3 -0
- package/src/errors/simple-test-error.js.map +1 -1
- package/src/errors/translatable.d.ts +8 -0
- package/src/errors/translatable.d.ts.map +1 -0
- package/src/errors/translatable.js +20 -0
- package/src/errors/translatable.js.map +1 -0
- package/src/interfaces/checksum-config.d.ts +3 -0
- package/src/interfaces/checksum-config.d.ts.map +1 -1
- package/src/interfaces/checksum-consts.d.ts +4 -0
- package/src/interfaces/checksum-consts.d.ts.map +1 -1
- package/src/interfaces/constants.d.ts +21 -6
- package/src/interfaces/constants.d.ts.map +1 -1
- package/src/interfaces/constants.js +5 -0
- package/src/interfaces/constants.js.map +1 -1
- package/src/interfaces/ecies-config.d.ts +3 -0
- package/src/interfaces/ecies-config.d.ts.map +1 -1
- package/src/interfaces/ecies-consts.d.ts +42 -7
- package/src/interfaces/ecies-consts.d.ts.map +1 -1
- package/src/interfaces/ecies-file-service.d.ts +3 -0
- package/src/interfaces/ecies-file-service.d.ts.map +1 -1
- package/src/interfaces/guid.d.ts +4 -0
- package/src/interfaces/guid.d.ts.map +1 -1
- package/src/interfaces/index.d.ts +4 -0
- package/src/interfaces/index.d.ts.map +1 -1
- package/src/interfaces/index.js +4 -0
- package/src/interfaces/index.js.map +1 -1
- package/src/interfaces/pbkdf2-config.d.ts +8 -0
- package/src/interfaces/pbkdf2-config.d.ts.map +1 -1
- package/src/interfaces/pbkdf2-consts.d.ts +7 -3
- package/src/interfaces/pbkdf2-consts.d.ts.map +1 -1
- package/src/interfaces/pbkdf2-result.d.ts +7 -0
- package/src/interfaces/pbkdf2-result.d.ts.map +1 -1
- package/src/interfaces/platform-id.d.ts +10 -2
- package/src/interfaces/platform-id.d.ts.map +1 -1
- package/src/interfaces/platform-id.js +8 -0
- package/src/interfaces/platform-id.js.map +1 -1
- package/src/interfaces/voting-service.d.ts +5 -6
- package/src/interfaces/voting-service.d.ts.map +1 -1
- package/src/lib/configuration-provenance-utils.d.ts +5 -1
- package/src/lib/configuration-provenance-utils.d.ts.map +1 -1
- package/src/lib/configuration-provenance-utils.js +5 -1
- package/src/lib/configuration-provenance-utils.js.map +1 -1
- package/src/lib/guid.d.ts +47 -29
- package/src/lib/guid.d.ts.map +1 -1
- package/src/lib/guid.js +127 -104
- package/src/lib/guid.js.map +1 -1
- package/src/lib/id-providers/guidv4-provider.d.ts +8 -8
- package/src/lib/id-providers/guidv4-provider.d.ts.map +1 -1
- package/src/lib/id-providers/guidv4-provider.js +10 -10
- package/src/lib/id-providers/guidv4-provider.js.map +1 -1
- package/src/lib/invariants/index.d.ts +3 -0
- package/src/lib/invariants/index.d.ts.map +1 -1
- package/src/lib/invariants/index.js +3 -0
- package/src/lib/invariants/index.js.map +1 -1
- package/src/lib/voting/enumerations/audit-event-type.d.ts +3 -0
- package/src/lib/voting/enumerations/audit-event-type.d.ts.map +1 -1
- package/src/lib/voting/enumerations/audit-event-type.js +3 -0
- package/src/lib/voting/enumerations/audit-event-type.js.map +1 -1
- package/src/lib/voting/enumerations/event-type.d.ts +3 -0
- package/src/lib/voting/enumerations/event-type.d.ts.map +1 -1
- package/src/lib/voting/enumerations/event-type.js +3 -0
- package/src/lib/voting/enumerations/event-type.js.map +1 -1
- package/src/lib/voting/enumerations/index.d.ts +3 -0
- package/src/lib/voting/enumerations/index.d.ts.map +1 -1
- package/src/lib/voting/enumerations/index.js +3 -0
- package/src/lib/voting/enumerations/index.js.map +1 -1
- package/src/lib/voting/enumerations/jurisdictional-level.d.ts +3 -0
- package/src/lib/voting/enumerations/jurisdictional-level.d.ts.map +1 -1
- package/src/lib/voting/enumerations/jurisdictional-level.js +3 -0
- package/src/lib/voting/enumerations/jurisdictional-level.js.map +1 -1
- package/src/lib/voting/enumerations/security-level.d.ts +3 -0
- package/src/lib/voting/enumerations/security-level.d.ts.map +1 -1
- package/src/lib/voting/enumerations/security-level.js +3 -0
- package/src/lib/voting/enumerations/security-level.js.map +1 -1
- package/src/lib/voting/interfaces/aggregated-tally.d.ts +3 -0
- package/src/lib/voting/interfaces/aggregated-tally.d.ts.map +1 -1
- package/src/lib/voting/interfaces/audit-entry.d.ts +3 -0
- package/src/lib/voting/interfaces/audit-entry.d.ts.map +1 -1
- package/src/lib/voting/interfaces/audit-log.d.ts +3 -0
- package/src/lib/voting/interfaces/audit-log.d.ts.map +1 -1
- package/src/lib/voting/interfaces/bulletin-board-entry.d.ts +3 -0
- package/src/lib/voting/interfaces/bulletin-board-entry.d.ts.map +1 -1
- package/src/lib/voting/interfaces/bulletin-board.d.ts +3 -0
- package/src/lib/voting/interfaces/bulletin-board.d.ts.map +1 -1
- package/src/lib/voting/interfaces/checkpoint-manager.d.ts +3 -0
- package/src/lib/voting/interfaces/checkpoint-manager.d.ts.map +1 -1
- package/src/lib/voting/interfaces/checkpoint-metadata.d.ts +3 -0
- package/src/lib/voting/interfaces/checkpoint-metadata.d.ts.map +1 -1
- package/src/lib/voting/interfaces/event-log-entry.d.ts +3 -0
- package/src/lib/voting/interfaces/event-log-entry.d.ts.map +1 -1
- package/src/lib/voting/interfaces/event-logger.d.ts +3 -0
- package/src/lib/voting/interfaces/event-logger.d.ts.map +1 -1
- package/src/lib/voting/interfaces/index.d.ts +3 -0
- package/src/lib/voting/interfaces/index.d.ts.map +1 -1
- package/src/lib/voting/interfaces/index.js.map +1 -1
- package/src/lib/voting/interfaces/jurisdiction-config.d.ts +3 -0
- package/src/lib/voting/interfaces/jurisdiction-config.d.ts.map +1 -1
- package/src/lib/voting/interfaces/poll-configuration.d.ts +3 -0
- package/src/lib/voting/interfaces/poll-configuration.d.ts.map +1 -1
- package/src/lib/voting/interfaces/state-snapshot.d.ts +3 -0
- package/src/lib/voting/interfaces/state-snapshot.d.ts.map +1 -1
- package/src/lib/voting/interfaces/tally-proof.d.ts +3 -0
- package/src/lib/voting/interfaces/tally-proof.d.ts.map +1 -1
- package/src/lib/voting/interfaces/vote-logger.d.ts +3 -0
- package/src/lib/voting/interfaces/vote-logger.d.ts.map +1 -1
- package/src/lib/voting/test-voter-pool.d.ts.map +1 -1
- package/src/lib/voting/test-voter-pool.js +4 -0
- package/src/lib/voting/test-voter-pool.js.map +1 -1
- package/src/member.d.ts +198 -9
- package/src/member.d.ts.map +1 -1
- package/src/member.js +198 -15
- package/src/member.js.map +1 -1
- package/src/pbkdf2-profiles.d.ts +4 -0
- package/src/pbkdf2-profiles.d.ts.map +1 -1
- package/src/phone-number.d.ts +12 -0
- package/src/phone-number.d.ts.map +1 -1
- package/src/phone-number.js +12 -0
- package/src/phone-number.js.map +1 -1
- package/src/regexes.d.ts +15 -1
- package/src/regexes.d.ts.map +1 -1
- package/src/regexes.js +16 -2
- package/src/regexes.js.map +1 -1
- package/src/secure-buffer.d.ts +119 -8
- package/src/secure-buffer.d.ts.map +1 -1
- package/src/secure-buffer.js +119 -8
- package/src/secure-buffer.js.map +1 -1
- package/src/secure-string.d.ts +118 -1
- package/src/secure-string.d.ts.map +1 -1
- package/src/secure-string.js +118 -1
- package/src/secure-string.js.map +1 -1
- package/src/services/aes-gcm.d.ts.map +1 -1
- package/src/services/aes-gcm.js.map +1 -1
- package/src/services/chunk-processor.d.ts.map +1 -1
- package/src/services/chunk-processor.js +2 -2
- package/src/services/chunk-processor.js.map +1 -1
- package/src/services/crc.d.ts +103 -0
- package/src/services/crc.d.ts.map +1 -0
- package/src/services/crc.js +251 -0
- package/src/services/crc.js.map +1 -0
- package/src/services/ecies/crypto-core.d.ts +2 -1
- package/src/services/ecies/crypto-core.d.ts.map +1 -1
- package/src/services/ecies/crypto-core.js +4 -1
- package/src/services/ecies/crypto-core.js.map +1 -1
- package/src/services/ecies/example.d.ts.map +1 -1
- package/src/services/ecies/example.js +4 -4
- package/src/services/ecies/example.js.map +1 -1
- package/src/services/ecies/file.d.ts +4 -0
- package/src/services/ecies/file.d.ts.map +1 -1
- package/src/services/ecies/file.js +6 -6
- package/src/services/ecies/file.js.map +1 -1
- package/src/services/ecies/index.d.ts +4 -2
- package/src/services/ecies/index.d.ts.map +1 -1
- package/src/services/ecies/index.js +4 -2
- package/src/services/ecies/index.js.map +1 -1
- package/src/services/ecies/integration.d.ts.map +1 -1
- package/src/services/ecies/integration.js +10 -4
- package/src/services/ecies/integration.js.map +1 -1
- package/src/services/ecies/interfaces/decryption-result.d.ts +3 -0
- package/src/services/ecies/interfaces/decryption-result.d.ts.map +1 -1
- package/src/services/ecies/interfaces/encryption-result.d.ts +3 -0
- package/src/services/ecies/interfaces/encryption-result.d.ts.map +1 -1
- package/src/services/ecies/interfaces/index.d.ts +3 -0
- package/src/services/ecies/interfaces/index.d.ts.map +1 -1
- package/src/services/ecies/interfaces/multi-encrypted-message.d.ts +3 -0
- package/src/services/ecies/interfaces/multi-encrypted-message.d.ts.map +1 -1
- package/src/services/ecies/interfaces/multi-encrypted-parsed-header.d.ts +3 -0
- package/src/services/ecies/interfaces/multi-encrypted-parsed-header.d.ts.map +1 -1
- package/src/services/ecies/interfaces/multi-recipient.d.ts +3 -0
- package/src/services/ecies/interfaces/multi-recipient.d.ts.map +1 -1
- package/src/services/ecies/interfaces/simple-keypair.d.ts +3 -0
- package/src/services/ecies/interfaces/simple-keypair.d.ts.map +1 -1
- package/src/services/ecies/interfaces/single-encrypted-parsed-header.d.ts +3 -0
- package/src/services/ecies/interfaces/single-encrypted-parsed-header.d.ts.map +1 -1
- package/src/services/ecies/interfaces/wallet-seed.d.ts +3 -0
- package/src/services/ecies/interfaces/wallet-seed.d.ts.map +1 -1
- package/src/services/ecies/manual-test.d.ts.map +1 -1
- package/src/services/ecies/manual-test.js +7 -7
- package/src/services/ecies/manual-test.js.map +1 -1
- package/src/services/ecies/multi-recipient.d.ts +1 -1
- package/src/services/ecies/multi-recipient.d.ts.map +1 -1
- package/src/services/ecies/multi-recipient.js +1 -1
- package/src/services/ecies/multi-recipient.js.map +1 -1
- package/src/services/ecies/service.d.ts +21 -5
- package/src/services/ecies/service.d.ts.map +1 -1
- package/src/services/ecies/service.js +33 -17
- package/src/services/ecies/service.js.map +1 -1
- package/src/services/ecies/single-recipient.d.ts +2 -2
- package/src/services/ecies/single-recipient.d.ts.map +1 -1
- package/src/services/ecies/single-recipient.js +28 -33
- package/src/services/ecies/single-recipient.js.map +1 -1
- package/src/services/encryption-stream.d.ts.map +1 -1
- package/src/services/encryption-stream.js +1 -1
- package/src/services/encryption-stream.js.map +1 -1
- package/src/services/index.d.ts +4 -0
- package/src/services/index.d.ts.map +1 -1
- package/src/services/index.js +4 -0
- package/src/services/index.js.map +1 -1
- package/src/services/multi-recipient-processor.d.ts +15 -9
- package/src/services/multi-recipient-processor.d.ts.map +1 -1
- package/src/services/multi-recipient-processor.js +51 -39
- package/src/services/multi-recipient-processor.js.map +1 -1
- package/src/services/password-login.d.ts +41 -5
- package/src/services/password-login.d.ts.map +1 -1
- package/src/services/password-login.js +43 -7
- package/src/services/password-login.js.map +1 -1
- package/src/services/resumable-encryption.d.ts.map +1 -1
- package/src/services/resumable-encryption.js +5 -1
- package/src/services/resumable-encryption.js.map +1 -1
- package/src/test-mocks/index.d.ts +4 -0
- package/src/test-mocks/index.d.ts.map +1 -1
- package/src/test-mocks/index.js +4 -0
- package/src/test-mocks/index.js.map +1 -1
- package/src/test-mocks/mock-frontend-member.d.ts +91 -0
- package/src/test-mocks/mock-frontend-member.d.ts.map +1 -1
- package/src/test-mocks/mock-frontend-member.js +91 -0
- package/src/test-mocks/mock-frontend-member.js.map +1 -1
- package/src/testing.d.ts +4 -0
- package/src/testing.d.ts.map +1 -1
- package/src/testing.js +4 -1
- package/src/testing.js.map +1 -1
- package/src/transforms/checksumTransform.d.ts +17 -0
- package/src/transforms/checksumTransform.d.ts.map +1 -1
- package/src/transforms/checksumTransform.js +17 -0
- package/src/transforms/checksumTransform.js.map +1 -1
- package/src/transforms/eciesDecryptTransform.d.ts +19 -0
- package/src/transforms/eciesDecryptTransform.d.ts.map +1 -1
- package/src/transforms/eciesDecryptTransform.js +21 -2
- package/src/transforms/eciesDecryptTransform.js.map +1 -1
- package/src/transforms/eciesEncryptTransform.d.ts +20 -0
- package/src/transforms/eciesEncryptTransform.d.ts.map +1 -1
- package/src/transforms/eciesEncryptTransform.js +23 -3
- package/src/transforms/eciesEncryptTransform.js.map +1 -1
- package/src/transforms/index.d.ts +4 -0
- package/src/transforms/index.d.ts.map +1 -1
- package/src/transforms/index.js +4 -0
- package/src/transforms/index.js.map +1 -1
- package/src/transforms/xorMultipleTransform.d.ts +21 -0
- package/src/transforms/xorMultipleTransform.d.ts.map +1 -1
- package/src/transforms/xorMultipleTransform.js +21 -0
- package/src/transforms/xorMultipleTransform.js.map +1 -1
- package/src/transforms/xorTransform.d.ts +13 -0
- package/src/transforms/xorTransform.d.ts.map +1 -1
- package/src/transforms/xorTransform.js +13 -0
- package/src/transforms/xorTransform.js.map +1 -1
- package/src/translations/de.d.ts +3 -0
- package/src/translations/de.d.ts.map +1 -1
- package/src/translations/de.js +3 -0
- package/src/translations/de.js.map +1 -1
- package/src/translations/en-US.d.ts +3 -0
- package/src/translations/en-US.d.ts.map +1 -1
- package/src/translations/en-US.js +3 -0
- package/src/translations/en-US.js.map +1 -1
- package/src/translations/es.d.ts +3 -0
- package/src/translations/es.d.ts.map +1 -1
- package/src/translations/es.js +3 -0
- package/src/translations/es.js.map +1 -1
- package/src/translations/fr.d.ts +3 -0
- package/src/translations/fr.d.ts.map +1 -1
- package/src/translations/fr.js +3 -0
- package/src/translations/fr.js.map +1 -1
- package/src/translations/ja.d.ts +3 -0
- package/src/translations/ja.d.ts.map +1 -1
- package/src/translations/ja.js +3 -0
- package/src/translations/ja.js.map +1 -1
- package/src/translations/uk.d.ts +3 -0
- package/src/translations/uk.d.ts.map +1 -1
- package/src/translations/uk.js +3 -0
- package/src/translations/uk.js.map +1 -1
- package/src/translations/zh-cn.d.ts +3 -0
- package/src/translations/zh-cn.d.ts.map +1 -1
- package/src/translations/zh-cn.js +3 -0
- package/src/translations/zh-cn.js.map +1 -1
- package/src/typed-configuration.d.ts +2 -2
- package/src/typed-configuration.d.ts.map +1 -1
- package/src/typed-configuration.js.map +1 -1
- package/src/types/deep-partial.d.ts +16 -0
- package/src/types/deep-partial.d.ts.map +1 -1
- package/src/types/guid-versions.d.ts +5 -9
- package/src/types/guid-versions.d.ts.map +1 -1
- package/src/types.d.ts +30 -1
- package/src/types.d.ts.map +1 -1
- package/src/types.js +4 -0
- package/src/types.js.map +1 -1
- package/src/utils.d.ts +69 -18
- package/src/utils.d.ts.map +1 -1
- package/src/utils.js +70 -19
- package/src/utils.js.map +1 -1
package/src/secure-buffer.d.ts
CHANGED
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* A secure
|
|
3
|
-
* The buffer is
|
|
4
|
-
* The ID is stored in the clear, but the buffer is encrypted with a key derived from the ID.
|
|
5
|
-
* This allows the buffer to be decrypted, but only if the ID and salt are known.
|
|
2
|
+
* A secure buffer that prevents raw sensitive data from being stored in memory.
|
|
3
|
+
* The buffer is obfuscated with a key derived from a random ID.
|
|
6
4
|
*
|
|
7
|
-
*
|
|
5
|
+
* Features:
|
|
6
|
+
* - XOR obfuscation of sensitive data
|
|
7
|
+
* - Automatic disposal support (TC39 explicit resource management)
|
|
8
|
+
* - Checksum validation for data integrity
|
|
9
|
+
* - Stack trace capture for debugging disposed access
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
8
12
|
* ```typescript
|
|
13
|
+
* // Using explicit resource management
|
|
9
14
|
* using buffer = new SecureBuffer(sensitiveData);
|
|
10
15
|
* // buffer automatically disposed when leaving scope
|
|
16
|
+
*
|
|
17
|
+
* // Manual disposal
|
|
18
|
+
* const buffer = new SecureBuffer(sensitiveData);
|
|
19
|
+
* try {
|
|
20
|
+
* const data = buffer.value;
|
|
21
|
+
* } finally {
|
|
22
|
+
* buffer.dispose();
|
|
23
|
+
* }
|
|
11
24
|
* ```
|
|
12
25
|
*/
|
|
13
26
|
export declare class SecureBuffer implements Disposable {
|
|
@@ -19,7 +32,15 @@ export declare class SecureBuffer implements Disposable {
|
|
|
19
32
|
private readonly _key;
|
|
20
33
|
private readonly _obfuscatedChecksum;
|
|
21
34
|
private _disposedAt?;
|
|
35
|
+
/**
|
|
36
|
+
* Creates a new SecureBuffer instance.
|
|
37
|
+
* @param data Optional data to secure. If undefined or empty, creates an empty buffer.
|
|
38
|
+
*/
|
|
22
39
|
constructor(data?: Uint8Array);
|
|
40
|
+
/**
|
|
41
|
+
* Disposes the secure buffer, zeroing out all sensitive data.
|
|
42
|
+
* Captures a stack trace for debugging if the buffer is accessed after disposal.
|
|
43
|
+
*/
|
|
23
44
|
dispose(): void;
|
|
24
45
|
/**
|
|
25
46
|
* Symbol.dispose implementation for explicit resource management
|
|
@@ -27,34 +48,124 @@ export declare class SecureBuffer implements Disposable {
|
|
|
27
48
|
*/
|
|
28
49
|
[Symbol.dispose](): void;
|
|
29
50
|
/**
|
|
30
|
-
* Factory method for backward compatibility that uses the default ObjectIdProvider
|
|
51
|
+
* Factory method for backward compatibility that uses the default ObjectIdProvider.
|
|
31
52
|
* @param data Optional data to secure
|
|
32
53
|
* @returns A new SecureBuffer instance using the default ID provider
|
|
33
54
|
*/
|
|
34
55
|
static create(data?: Uint8Array): SecureBuffer;
|
|
35
56
|
/**
|
|
36
|
-
* Static factory method that creates a SecureBuffer for a symmetric key
|
|
37
|
-
* Useful for managing encryption keys securely
|
|
57
|
+
* Static factory method that creates a SecureBuffer for a symmetric key.
|
|
58
|
+
* Useful for managing encryption keys securely.
|
|
59
|
+
* @param sizeBytes Size of the key in bytes (default: 32)
|
|
60
|
+
* @returns A new SecureBuffer instance for the key
|
|
38
61
|
*/
|
|
39
62
|
static allocateKey(sizeBytes?: number): SecureBuffer;
|
|
63
|
+
/**
|
|
64
|
+
* Asserts that the buffer has not been disposed.
|
|
65
|
+
* @throws {DisposedError} If the buffer has been disposed
|
|
66
|
+
*/
|
|
40
67
|
private assertNotDisposed;
|
|
68
|
+
/**
|
|
69
|
+
* Creates a SecureBuffer from a string.
|
|
70
|
+
* @param data The string to secure
|
|
71
|
+
* @returns A new SecureBuffer containing the UTF-8 encoded string
|
|
72
|
+
*/
|
|
41
73
|
static fromString(data: string): SecureBuffer;
|
|
74
|
+
/**
|
|
75
|
+
* Gets the stack trace from when the buffer was disposed.
|
|
76
|
+
* Useful for debugging access-after-dispose errors.
|
|
77
|
+
*/
|
|
42
78
|
get disposedAtStack(): string | undefined;
|
|
79
|
+
/**
|
|
80
|
+
* Gets the buffer's unique ID as a string.
|
|
81
|
+
* @throws {DisposedError} If the buffer has been disposed
|
|
82
|
+
*/
|
|
43
83
|
get id(): string;
|
|
84
|
+
/**
|
|
85
|
+
* Gets the buffer's unique ID as a Uint8Array.
|
|
86
|
+
* @throws {DisposedError} If the buffer has been disposed
|
|
87
|
+
*/
|
|
44
88
|
get idUint8Array(): Uint8Array;
|
|
89
|
+
/**
|
|
90
|
+
* Gets the original length of the secured data in bytes.
|
|
91
|
+
* @throws {DisposedError} If the buffer has been disposed
|
|
92
|
+
*/
|
|
45
93
|
get originalLength(): number;
|
|
94
|
+
/**
|
|
95
|
+
* Gets the decrypted value as a Uint8Array.
|
|
96
|
+
* Validates the checksum to ensure data integrity.
|
|
97
|
+
* @throws {DisposedError} If the buffer has been disposed
|
|
98
|
+
* @throws {SecureStorageError} If decryption fails or checksum is invalid
|
|
99
|
+
*/
|
|
46
100
|
get value(): Uint8Array;
|
|
101
|
+
/**
|
|
102
|
+
* Gets the decrypted value as a UTF-8 string.
|
|
103
|
+
* @throws {DisposedError} If the buffer has been disposed
|
|
104
|
+
*/
|
|
47
105
|
get valueAsString(): string;
|
|
106
|
+
/**
|
|
107
|
+
* Gets the decrypted value as a hexadecimal string.
|
|
108
|
+
* @throws {DisposedError} If the buffer has been disposed
|
|
109
|
+
*/
|
|
48
110
|
get valueAsHexString(): string;
|
|
111
|
+
/**
|
|
112
|
+
* Gets the decrypted value as a Base64 string.
|
|
113
|
+
* @throws {DisposedError} If the buffer has been disposed
|
|
114
|
+
*/
|
|
49
115
|
get valueAsBase64String(): string;
|
|
116
|
+
/**
|
|
117
|
+
* Gets the checksum of the secured data.
|
|
118
|
+
* @throws {DisposedError} If the buffer has been disposed
|
|
119
|
+
*/
|
|
50
120
|
get checksum(): string;
|
|
121
|
+
/**
|
|
122
|
+
* Generates a simple checksum for data validation.
|
|
123
|
+
* @param data The data to checksum (string or Uint8Array)
|
|
124
|
+
* @returns Hexadecimal checksum string
|
|
125
|
+
*/
|
|
51
126
|
private generateSimpleChecksum;
|
|
127
|
+
/**
|
|
128
|
+
* Creates an obfuscated checksum for the data.
|
|
129
|
+
* @param data The data to checksum
|
|
130
|
+
* @returns Obfuscated checksum as Uint8Array
|
|
131
|
+
*/
|
|
52
132
|
private createSimpleObfuscatedChecksum;
|
|
133
|
+
/**
|
|
134
|
+
* Validates a checksum against data using timing-safe comparison.
|
|
135
|
+
* @param data The data to validate
|
|
136
|
+
* @param checksum The expected checksum
|
|
137
|
+
* @returns True if checksum is valid
|
|
138
|
+
*/
|
|
53
139
|
private validateSimpleChecksum;
|
|
140
|
+
/**
|
|
141
|
+
* Performs timing-safe equality comparison of two byte arrays.
|
|
142
|
+
* @param a First array
|
|
143
|
+
* @param b Second array
|
|
144
|
+
* @returns True if arrays are equal
|
|
145
|
+
*/
|
|
54
146
|
private timingSafeEqual;
|
|
147
|
+
/**
|
|
148
|
+
* Validates the obfuscated checksum against data.
|
|
149
|
+
* @param data The data to validate
|
|
150
|
+
* @returns True if checksum is valid
|
|
151
|
+
*/
|
|
55
152
|
private validateObfuscatedChecksum;
|
|
153
|
+
/**
|
|
154
|
+
* Obfuscates data using XOR with the key.
|
|
155
|
+
* @param data The data to obfuscate
|
|
156
|
+
* @returns Obfuscated data
|
|
157
|
+
*/
|
|
56
158
|
private obfuscateData;
|
|
159
|
+
/**
|
|
160
|
+
* Deobfuscates data using XOR with the key.
|
|
161
|
+
* @param data The data to deobfuscate
|
|
162
|
+
* @returns Deobfuscated data
|
|
163
|
+
*/
|
|
57
164
|
private deobfuscateData;
|
|
165
|
+
/**
|
|
166
|
+
* Gets the length of the secured data in bytes.
|
|
167
|
+
* @throws {DisposedError} If the buffer has been disposed
|
|
168
|
+
*/
|
|
58
169
|
get length(): number;
|
|
59
170
|
}
|
|
60
171
|
//# sourceMappingURL=secure-buffer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secure-buffer.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/secure-buffer.ts"],"names":[],"mappings":"AAOA
|
|
1
|
+
{"version":3,"file":"secure-buffer.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/secure-buffer.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,YAAa,YAAW,UAAU;IAC7C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAa;IAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAa;IACjD,OAAO,CAAC,WAAW,CAAC,CAAS;IAE7B;;;OAGG;gBACS,IAAI,CAAC,EAAE,UAAU;IAiB7B;;;OAGG;IACI,OAAO,IAAI,IAAI;IAYtB;;;OAGG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAIxB;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY;IAI9C;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,SAAS,GAAE,MAAW,GAAG,YAAY;IAMxD;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;;;OAIG;WACW,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;IAGpD;;;OAGG;IACH,IAAW,eAAe,IAAI,MAAM,GAAG,SAAS,CAE/C;IACD;;;OAGG;IACH,IAAW,EAAE,IAAI,MAAM,CAGtB;IACD;;;OAGG;IACH,IAAW,YAAY,IAAI,UAAU,CAGpC;IACD;;;OAGG;IACH,IAAW,cAAc,IAAI,MAAM,CAGlC;IACD;;;;;OAKG;IACH,IAAW,KAAK,IAAI,UAAU,CA4B7B;IACD;;;OAGG;IACH,IAAW,aAAa,IAAI,MAAM,CAGjC;IACD;;;OAGG;IACH,IAAW,gBAAgB,IAAI,MAAM,CAGpC;IACD;;;OAGG;IACH,IAAW,mBAAmB,IAAI,MAAM,CAGvC;IACD;;;OAGG;IACH,IAAW,QAAQ,IAAI,MAAM,CAM5B;IACD;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;;;OAIG;IACH,OAAO,CAAC,8BAA8B;IAOtC;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAUvB;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAMlC;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAGrB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAGvB;;;OAGG;IACH,IAAW,MAAM,IAAI,MAAM,CAG1B;CACF"}
|
package/src/secure-buffer.js
CHANGED
|
@@ -8,15 +8,28 @@ const objectid_provider_1 = require("./lib/id-providers/objectid-provider");
|
|
|
8
8
|
const xor_1 = require("./services/xor");
|
|
9
9
|
const utils_1 = require("./utils");
|
|
10
10
|
/**
|
|
11
|
-
* A secure
|
|
12
|
-
* The buffer is
|
|
13
|
-
* The ID is stored in the clear, but the buffer is encrypted with a key derived from the ID.
|
|
14
|
-
* This allows the buffer to be decrypted, but only if the ID and salt are known.
|
|
11
|
+
* A secure buffer that prevents raw sensitive data from being stored in memory.
|
|
12
|
+
* The buffer is obfuscated with a key derived from a random ID.
|
|
15
13
|
*
|
|
16
|
-
*
|
|
14
|
+
* Features:
|
|
15
|
+
* - XOR obfuscation of sensitive data
|
|
16
|
+
* - Automatic disposal support (TC39 explicit resource management)
|
|
17
|
+
* - Checksum validation for data integrity
|
|
18
|
+
* - Stack trace capture for debugging disposed access
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
17
21
|
* ```typescript
|
|
22
|
+
* // Using explicit resource management
|
|
18
23
|
* using buffer = new SecureBuffer(sensitiveData);
|
|
19
24
|
* // buffer automatically disposed when leaving scope
|
|
25
|
+
*
|
|
26
|
+
* // Manual disposal
|
|
27
|
+
* const buffer = new SecureBuffer(sensitiveData);
|
|
28
|
+
* try {
|
|
29
|
+
* const data = buffer.value;
|
|
30
|
+
* } finally {
|
|
31
|
+
* buffer.dispose();
|
|
32
|
+
* }
|
|
20
33
|
* ```
|
|
21
34
|
*/
|
|
22
35
|
class SecureBuffer {
|
|
@@ -28,6 +41,10 @@ class SecureBuffer {
|
|
|
28
41
|
_key;
|
|
29
42
|
_obfuscatedChecksum;
|
|
30
43
|
_disposedAt;
|
|
44
|
+
/**
|
|
45
|
+
* Creates a new SecureBuffer instance.
|
|
46
|
+
* @param data Optional data to secure. If undefined or empty, creates an empty buffer.
|
|
47
|
+
*/
|
|
31
48
|
constructor(data) {
|
|
32
49
|
this._idProvider = new objectid_provider_1.ObjectIdProvider();
|
|
33
50
|
this._id = this._idProvider.generate();
|
|
@@ -45,6 +62,10 @@ class SecureBuffer {
|
|
|
45
62
|
// Create a simple checksum without crypto for synchronous operation
|
|
46
63
|
this._obfuscatedChecksum = this.createSimpleObfuscatedChecksum(data);
|
|
47
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Disposes the secure buffer, zeroing out all sensitive data.
|
|
67
|
+
* Captures a stack trace for debugging if the buffer is accessed after disposal.
|
|
68
|
+
*/
|
|
48
69
|
dispose() {
|
|
49
70
|
const err = new disposed_1.DisposedError();
|
|
50
71
|
if (typeof Error.captureStackTrace === 'function') {
|
|
@@ -64,7 +85,7 @@ class SecureBuffer {
|
|
|
64
85
|
this.dispose();
|
|
65
86
|
}
|
|
66
87
|
/**
|
|
67
|
-
* Factory method for backward compatibility that uses the default ObjectIdProvider
|
|
88
|
+
* Factory method for backward compatibility that uses the default ObjectIdProvider.
|
|
68
89
|
* @param data Optional data to secure
|
|
69
90
|
* @returns A new SecureBuffer instance using the default ID provider
|
|
70
91
|
*/
|
|
@@ -72,14 +93,20 @@ class SecureBuffer {
|
|
|
72
93
|
return new SecureBuffer(data);
|
|
73
94
|
}
|
|
74
95
|
/**
|
|
75
|
-
* Static factory method that creates a SecureBuffer for a symmetric key
|
|
76
|
-
* Useful for managing encryption keys securely
|
|
96
|
+
* Static factory method that creates a SecureBuffer for a symmetric key.
|
|
97
|
+
* Useful for managing encryption keys securely.
|
|
98
|
+
* @param sizeBytes Size of the key in bytes (default: 32)
|
|
99
|
+
* @returns A new SecureBuffer instance for the key
|
|
77
100
|
*/
|
|
78
101
|
static allocateKey(sizeBytes = 32) {
|
|
79
102
|
const keyData = new Uint8Array(sizeBytes);
|
|
80
103
|
// Will be filled by crypto.getRandomValues by caller
|
|
81
104
|
return new SecureBuffer(keyData);
|
|
82
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Asserts that the buffer has not been disposed.
|
|
108
|
+
* @throws {DisposedError} If the buffer has been disposed
|
|
109
|
+
*/
|
|
83
110
|
assertNotDisposed() {
|
|
84
111
|
if (this._disposed) {
|
|
85
112
|
const e = new disposed_1.DisposedError();
|
|
@@ -92,24 +119,51 @@ class SecureBuffer {
|
|
|
92
119
|
throw e;
|
|
93
120
|
}
|
|
94
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Creates a SecureBuffer from a string.
|
|
124
|
+
* @param data The string to secure
|
|
125
|
+
* @returns A new SecureBuffer containing the UTF-8 encoded string
|
|
126
|
+
*/
|
|
95
127
|
static fromString(data) {
|
|
96
128
|
return new SecureBuffer(new TextEncoder().encode(data));
|
|
97
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* Gets the stack trace from when the buffer was disposed.
|
|
132
|
+
* Useful for debugging access-after-dispose errors.
|
|
133
|
+
*/
|
|
98
134
|
get disposedAtStack() {
|
|
99
135
|
return this._disposedAt;
|
|
100
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Gets the buffer's unique ID as a string.
|
|
139
|
+
* @throws {DisposedError} If the buffer has been disposed
|
|
140
|
+
*/
|
|
101
141
|
get id() {
|
|
102
142
|
this.assertNotDisposed();
|
|
103
143
|
return this._idProvider.serialize(this._id);
|
|
104
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* Gets the buffer's unique ID as a Uint8Array.
|
|
147
|
+
* @throws {DisposedError} If the buffer has been disposed
|
|
148
|
+
*/
|
|
105
149
|
get idUint8Array() {
|
|
106
150
|
this.assertNotDisposed();
|
|
107
151
|
return this._id;
|
|
108
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* Gets the original length of the secured data in bytes.
|
|
155
|
+
* @throws {DisposedError} If the buffer has been disposed
|
|
156
|
+
*/
|
|
109
157
|
get originalLength() {
|
|
110
158
|
this.assertNotDisposed();
|
|
111
159
|
return this._length;
|
|
112
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Gets the decrypted value as a Uint8Array.
|
|
163
|
+
* Validates the checksum to ensure data integrity.
|
|
164
|
+
* @throws {DisposedError} If the buffer has been disposed
|
|
165
|
+
* @throws {SecureStorageError} If decryption fails or checksum is invalid
|
|
166
|
+
*/
|
|
113
167
|
get value() {
|
|
114
168
|
this.assertNotDisposed();
|
|
115
169
|
if (this._length === 0) {
|
|
@@ -134,23 +188,44 @@ class SecureBuffer {
|
|
|
134
188
|
throw new secure_storage_1.SecureStorageError(secure_storage_error_type_1.SecureStorageErrorType.DecryptedValueChecksumMismatch);
|
|
135
189
|
}
|
|
136
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* Gets the decrypted value as a UTF-8 string.
|
|
193
|
+
* @throws {DisposedError} If the buffer has been disposed
|
|
194
|
+
*/
|
|
137
195
|
get valueAsString() {
|
|
138
196
|
this.assertNotDisposed();
|
|
139
197
|
return new TextDecoder().decode(this.value);
|
|
140
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Gets the decrypted value as a hexadecimal string.
|
|
201
|
+
* @throws {DisposedError} If the buffer has been disposed
|
|
202
|
+
*/
|
|
141
203
|
get valueAsHexString() {
|
|
142
204
|
this.assertNotDisposed();
|
|
143
205
|
return (0, utils_1.uint8ArrayToHex)(this.value);
|
|
144
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* Gets the decrypted value as a Base64 string.
|
|
209
|
+
* @throws {DisposedError} If the buffer has been disposed
|
|
210
|
+
*/
|
|
145
211
|
get valueAsBase64String() {
|
|
146
212
|
this.assertNotDisposed();
|
|
147
213
|
return btoa(String.fromCharCode(...this.value));
|
|
148
214
|
}
|
|
215
|
+
/**
|
|
216
|
+
* Gets the checksum of the secured data.
|
|
217
|
+
* @throws {DisposedError} If the buffer has been disposed
|
|
218
|
+
*/
|
|
149
219
|
get checksum() {
|
|
150
220
|
this.assertNotDisposed();
|
|
151
221
|
const deobfuscatedChecksum = new TextDecoder().decode(this.deobfuscateData(this._obfuscatedChecksum));
|
|
152
222
|
return deobfuscatedChecksum;
|
|
153
223
|
}
|
|
224
|
+
/**
|
|
225
|
+
* Generates a simple checksum for data validation.
|
|
226
|
+
* @param data The data to checksum (string or Uint8Array)
|
|
227
|
+
* @returns Hexadecimal checksum string
|
|
228
|
+
*/
|
|
154
229
|
generateSimpleChecksum(data) {
|
|
155
230
|
const dataBytes = typeof data === 'string' ? new TextEncoder().encode(data) : data;
|
|
156
231
|
let hash = 0;
|
|
@@ -159,17 +234,34 @@ class SecureBuffer {
|
|
|
159
234
|
}
|
|
160
235
|
return hash.toString(16);
|
|
161
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* Creates an obfuscated checksum for the data.
|
|
239
|
+
* @param data The data to checksum
|
|
240
|
+
* @returns Obfuscated checksum as Uint8Array
|
|
241
|
+
*/
|
|
162
242
|
createSimpleObfuscatedChecksum(data) {
|
|
163
243
|
const checksum = this.generateSimpleChecksum(data);
|
|
164
244
|
const result = this.obfuscateData(new TextEncoder().encode(checksum));
|
|
165
245
|
return result;
|
|
166
246
|
}
|
|
247
|
+
/**
|
|
248
|
+
* Validates a checksum against data using timing-safe comparison.
|
|
249
|
+
* @param data The data to validate
|
|
250
|
+
* @param checksum The expected checksum
|
|
251
|
+
* @returns True if checksum is valid
|
|
252
|
+
*/
|
|
167
253
|
validateSimpleChecksum(data, checksum) {
|
|
168
254
|
const generatedChecksum = this.generateSimpleChecksum(data);
|
|
169
255
|
const a = new TextEncoder().encode(generatedChecksum);
|
|
170
256
|
const b = new TextEncoder().encode(checksum);
|
|
171
257
|
return this.timingSafeEqual(a, b);
|
|
172
258
|
}
|
|
259
|
+
/**
|
|
260
|
+
* Performs timing-safe equality comparison of two byte arrays.
|
|
261
|
+
* @param a First array
|
|
262
|
+
* @param b Second array
|
|
263
|
+
* @returns True if arrays are equal
|
|
264
|
+
*/
|
|
173
265
|
timingSafeEqual(a, b) {
|
|
174
266
|
if (a.length !== b.length) {
|
|
175
267
|
return false;
|
|
@@ -180,16 +272,35 @@ class SecureBuffer {
|
|
|
180
272
|
}
|
|
181
273
|
return result === 0;
|
|
182
274
|
}
|
|
275
|
+
/**
|
|
276
|
+
* Validates the obfuscated checksum against data.
|
|
277
|
+
* @param data The data to validate
|
|
278
|
+
* @returns True if checksum is valid
|
|
279
|
+
*/
|
|
183
280
|
validateObfuscatedChecksum(data) {
|
|
184
281
|
const deobfuscatedChecksum = new TextDecoder().decode(this.deobfuscateData(this._obfuscatedChecksum));
|
|
185
282
|
return this.validateSimpleChecksum(data, deobfuscatedChecksum);
|
|
186
283
|
}
|
|
284
|
+
/**
|
|
285
|
+
* Obfuscates data using XOR with the key.
|
|
286
|
+
* @param data The data to obfuscate
|
|
287
|
+
* @returns Obfuscated data
|
|
288
|
+
*/
|
|
187
289
|
obfuscateData(data) {
|
|
188
290
|
return xor_1.XorService.xor(data, this._key);
|
|
189
291
|
}
|
|
292
|
+
/**
|
|
293
|
+
* Deobfuscates data using XOR with the key.
|
|
294
|
+
* @param data The data to deobfuscate
|
|
295
|
+
* @returns Deobfuscated data
|
|
296
|
+
*/
|
|
190
297
|
deobfuscateData(data) {
|
|
191
298
|
return xor_1.XorService.xor(data, this._key);
|
|
192
299
|
}
|
|
300
|
+
/**
|
|
301
|
+
* Gets the length of the secured data in bytes.
|
|
302
|
+
* @throws {DisposedError} If the buffer has been disposed
|
|
303
|
+
*/
|
|
193
304
|
get length() {
|
|
194
305
|
this.assertNotDisposed();
|
|
195
306
|
return this._length;
|
package/src/secure-buffer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secure-buffer.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/secure-buffer.ts"],"names":[],"mappings":";;;AAAA,wFAAkF;AAClF,gDAAkD;AAClD,4DAA6D;AAC7D,4EAAwE;AACxE,wCAA4C;AAC5C,mCAA0C;AAE1C
|
|
1
|
+
{"version":3,"file":"secure-buffer.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/secure-buffer.ts"],"names":[],"mappings":"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"}
|
package/src/secure-string.d.ts
CHANGED
|
@@ -1,7 +1,22 @@
|
|
|
1
1
|
import type { ObjectId } from 'bson';
|
|
2
2
|
import type { IIdProvider } from './interfaces/id-provider';
|
|
3
3
|
/**
|
|
4
|
-
* A secure string buffer
|
|
4
|
+
* A secure string buffer that prevents raw sensitive data from being stored in memory.
|
|
5
|
+
* Similar to SecureBuffer but specifically designed for string data.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - XOR obfuscation of sensitive string data
|
|
9
|
+
* - Null value support
|
|
10
|
+
* - Checksum validation for data integrity
|
|
11
|
+
* - Stack trace capture for debugging disposed access
|
|
12
|
+
* - Configurable ID provider
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const securePassword = new SecureString('myPassword123');
|
|
17
|
+
* const password = securePassword.value; // Retrieves the original string
|
|
18
|
+
* securePassword.dispose(); // Zeroes out sensitive data
|
|
19
|
+
* ```
|
|
5
20
|
*/
|
|
6
21
|
export declare class SecureString {
|
|
7
22
|
private _disposed;
|
|
@@ -13,6 +28,11 @@ export declare class SecureString {
|
|
|
13
28
|
private readonly _key;
|
|
14
29
|
private readonly _obfuscatedChecksum;
|
|
15
30
|
private _disposedAt?;
|
|
31
|
+
/**
|
|
32
|
+
* Creates a new SecureString instance.
|
|
33
|
+
* @param data Optional data to secure (string, Uint8Array, or null)
|
|
34
|
+
* @param idProvider ID provider for generating unique IDs (defaults to ObjectIdProvider)
|
|
35
|
+
*/
|
|
16
36
|
constructor(data?: string | Uint8Array | null, idProvider?: IIdProvider<ObjectId>);
|
|
17
37
|
/**
|
|
18
38
|
* Factory method for backward compatibility that uses the default ObjectIdProvider
|
|
@@ -20,28 +40,125 @@ export declare class SecureString {
|
|
|
20
40
|
* @returns A new SecureString instance using the default ID provider
|
|
21
41
|
*/
|
|
22
42
|
static create(data?: string | Uint8Array | null): SecureString;
|
|
43
|
+
/**
|
|
44
|
+
* Asserts that the string has not been disposed.
|
|
45
|
+
* @throws {DisposedError} If the string has been disposed
|
|
46
|
+
*/
|
|
23
47
|
private assertNotDisposed;
|
|
48
|
+
/**
|
|
49
|
+
* Disposes the secure string, zeroing out all sensitive data.
|
|
50
|
+
* Captures a stack trace for debugging if the string is accessed after disposal.
|
|
51
|
+
*/
|
|
24
52
|
dispose(): void;
|
|
53
|
+
/**
|
|
54
|
+
* Gets the stack trace from when the string was disposed.
|
|
55
|
+
* Useful for debugging access-after-dispose errors.
|
|
56
|
+
*/
|
|
25
57
|
get disposedAtStack(): string | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Gets the string's unique ID as a string.
|
|
60
|
+
* @throws {DisposedError} If the string has been disposed
|
|
61
|
+
*/
|
|
26
62
|
get id(): string;
|
|
63
|
+
/**
|
|
64
|
+
* Gets the string's unique ID as a Uint8Array.
|
|
65
|
+
* @throws {DisposedError} If the string has been disposed
|
|
66
|
+
*/
|
|
27
67
|
get idUint8Array(): Uint8Array;
|
|
68
|
+
/**
|
|
69
|
+
* Gets the original length of the secured data in bytes.
|
|
70
|
+
* @throws {DisposedError} If the string has been disposed
|
|
71
|
+
*/
|
|
28
72
|
get originalLength(): number;
|
|
73
|
+
/**
|
|
74
|
+
* Gets the decrypted value as a Uint8Array.
|
|
75
|
+
* Validates the checksum to ensure data integrity.
|
|
76
|
+
* @throws {DisposedError} If the string has been disposed
|
|
77
|
+
* @throws {SecureStorageError} If decryption fails or checksum is invalid
|
|
78
|
+
*/
|
|
29
79
|
get valueAsUint8Array(): Uint8Array;
|
|
80
|
+
/**
|
|
81
|
+
* Gets the decrypted value as a string, or null if the value is null.
|
|
82
|
+
* @throws {DisposedError} If the string has been disposed
|
|
83
|
+
*/
|
|
30
84
|
get value(): string | null;
|
|
85
|
+
/**
|
|
86
|
+
* Gets the decrypted value as a string, throwing if the value is null.
|
|
87
|
+
* @throws {DisposedError} If the string has been disposed
|
|
88
|
+
* @throws {SecureStorageError} If the value is null
|
|
89
|
+
*/
|
|
31
90
|
get notNullValue(): string;
|
|
91
|
+
/**
|
|
92
|
+
* Gets the decrypted value as a hexadecimal string.
|
|
93
|
+
* @throws {DisposedError} If the string has been disposed
|
|
94
|
+
*/
|
|
32
95
|
get valueAsHexString(): string;
|
|
96
|
+
/**
|
|
97
|
+
* Gets the decrypted value as a Base64 string.
|
|
98
|
+
* @throws {DisposedError} If the string has been disposed
|
|
99
|
+
*/
|
|
33
100
|
get valueAsBase64String(): string;
|
|
101
|
+
/**
|
|
102
|
+
* Checks if the string has a non-null, non-empty value.
|
|
103
|
+
* @throws {DisposedError} If the string has been disposed
|
|
104
|
+
*/
|
|
34
105
|
get hasValue(): boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Gets the checksum of the secured data.
|
|
108
|
+
* @throws {DisposedError} If the string has been disposed
|
|
109
|
+
*/
|
|
35
110
|
get checksum(): string;
|
|
111
|
+
/**
|
|
112
|
+
* Gets the length of the secured data in bytes.
|
|
113
|
+
* @throws {DisposedError} If the string has been disposed
|
|
114
|
+
*/
|
|
36
115
|
get length(): number;
|
|
116
|
+
/**
|
|
117
|
+
* Generates a SHA-256 checksum for data validation (async).
|
|
118
|
+
* @param data The data to checksum (string or Uint8Array)
|
|
119
|
+
* @returns Promise resolving to hexadecimal checksum string
|
|
120
|
+
*/
|
|
37
121
|
private generateChecksum;
|
|
122
|
+
/**
|
|
123
|
+
* Creates a simple checksum for data validation (synchronous).
|
|
124
|
+
* @param data The data to checksum
|
|
125
|
+
* @returns Hexadecimal checksum string
|
|
126
|
+
*/
|
|
38
127
|
private createSimpleChecksum;
|
|
128
|
+
/**
|
|
129
|
+
* Creates an obfuscated checksum for the data (synchronous).
|
|
130
|
+
* @param data The data to checksum
|
|
131
|
+
* @returns Obfuscated checksum as Uint8Array
|
|
132
|
+
*/
|
|
39
133
|
private createSimpleObfuscatedChecksum;
|
|
40
134
|
private __createObfuscatedChecksum;
|
|
135
|
+
/**
|
|
136
|
+
* Validates a checksum against data using timing-safe comparison (async).
|
|
137
|
+
* @param data The data to validate
|
|
138
|
+
* @param checksum The expected checksum
|
|
139
|
+
* @returns Promise resolving to true if checksum is valid
|
|
140
|
+
*/
|
|
41
141
|
private validateChecksum;
|
|
142
|
+
/**
|
|
143
|
+
* Performs timing-safe equality comparison of two byte arrays.
|
|
144
|
+
* Prevents timing attacks by always comparing all bytes.
|
|
145
|
+
* @param a First array
|
|
146
|
+
* @param b Second array
|
|
147
|
+
* @returns True if arrays are equal
|
|
148
|
+
*/
|
|
42
149
|
private timingSafeEqual;
|
|
43
150
|
private __validateObfuscatedChecksum;
|
|
151
|
+
/**
|
|
152
|
+
* Obfuscates data using XOR with the key.
|
|
153
|
+
* @param data The data to obfuscate
|
|
154
|
+
* @returns Obfuscated data
|
|
155
|
+
*/
|
|
44
156
|
private obfuscateData;
|
|
157
|
+
/**
|
|
158
|
+
* Deobfuscates data using XOR with the key.
|
|
159
|
+
* @param data The data to deobfuscate
|
|
160
|
+
* @returns Deobfuscated data
|
|
161
|
+
*/
|
|
45
162
|
private deobfuscateData;
|
|
46
163
|
}
|
|
47
164
|
//# sourceMappingURL=secure-string.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secure-string.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/secure-string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAIrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAU5D
|
|
1
|
+
{"version":3,"file":"secure-string.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/secure-string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAIrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAU5D;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAa;IAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAa;IACjD,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B;;;;OAIG;gBAED,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,EACjC,UAAU,GAAE,WAAW,CAAC,QAAQ,CAAuB;IA0BzD;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,YAAY;IAI9D;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;;OAGG;IACI,OAAO,IAAI,IAAI;IAWtB;;;OAGG;IACH,IAAW,eAAe,IAAI,MAAM,GAAG,SAAS,CAE/C;IACD;;;OAGG;IACH,IAAW,EAAE,IAAI,MAAM,CAGtB;IACD;;;OAGG;IACH,IAAW,YAAY,IAAI,UAAU,CAGpC;IACD;;;OAGG;IACH,IAAW,cAAc,IAAI,MAAM,CAGlC;IACD;;;;;OAKG;IACH,IAAW,iBAAiB,IAAI,UAAU,CAsCzC;IACD;;;OAGG;IACH,IAAW,KAAK,IAAI,MAAM,GAAG,IAAI,CAMhC;IACD;;;;OAIG;IACH,IAAW,YAAY,IAAI,MAAM,CAMhC;IACD;;;OAGG;IACH,IAAW,gBAAgB,IAAI,MAAM,CAGpC;IACD;;;OAGG;IACH,IAAW,mBAAmB,IAAI,MAAM,CAGvC;IACD;;;OAGG;IACH,IAAW,QAAQ,IAAI,OAAO,CAG7B;IACD;;;OAGG;IACH,IAAW,QAAQ,IAAI,MAAM,CAM5B;IACD;;;OAGG;IACH,IAAW,MAAM,IAAI,MAAM,CAG1B;IACD;;;;OAIG;YACW,gBAAgB;IAS9B;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;;OAIG;IACH,OAAO,CAAC,8BAA8B;YASxB,0BAA0B;IAOxC;;;;;OAKG;YACW,gBAAgB;IAQ9B;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;YAUT,4BAA4B;IAQ1C;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAGrB;;;;OAIG;IACH,OAAO,CAAC,eAAe;CAGxB"}
|