@digitaldefiance/node-ecies-lib 4.4.8 → 4.4.10
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 -5
- package/src/builders/ecies-builder.d.ts +11 -0
- package/src/builders/ecies-builder.d.ts.map +1 -0
- package/src/builders/ecies-builder.js +26 -0
- package/src/builders/ecies-builder.js.map +1 -0
- package/src/builders/{index.ts → index.d.ts} +1 -0
- package/src/builders/index.d.ts.map +1 -0
- package/src/builders/index.js +6 -0
- package/src/builders/index.js.map +1 -0
- package/src/builders/member-builder.d.ts +47 -0
- package/src/builders/member-builder.d.ts.map +1 -0
- package/src/builders/member-builder.js +99 -0
- package/src/builders/member-builder.js.map +1 -0
- package/src/constants.d.ts +38 -0
- package/src/constants.d.ts.map +1 -0
- package/src/constants.js +183 -0
- package/src/constants.js.map +1 -0
- package/src/core/errors/crypto-error.d.ts +6 -0
- package/src/core/errors/crypto-error.d.ts.map +1 -0
- package/src/core/errors/crypto-error.js +15 -0
- package/src/core/errors/crypto-error.js.map +1 -0
- package/src/core/{index.ts → index.d.ts} +1 -0
- package/src/core/index.d.ts.map +1 -0
- package/src/core/index.js +6 -0
- package/src/core/index.js.map +1 -0
- package/src/core/types/result.d.ts +8 -0
- package/src/core/types/result.d.ts.map +1 -0
- package/src/core/types/result.js +3 -0
- package/src/core/types/result.js.map +1 -0
- package/src/enumerations/index.d.ts +2 -0
- package/src/enumerations/index.d.ts.map +1 -0
- package/src/enumerations/index.js +5 -0
- package/src/enumerations/index.js.map +1 -0
- package/src/enumerations/pbkdf2-profile.d.ts +9 -0
- package/src/enumerations/pbkdf2-profile.d.ts.map +1 -0
- package/src/enumerations/pbkdf2-profile.js +13 -0
- package/src/enumerations/pbkdf2-profile.js.map +1 -0
- package/src/i18n/ecies-i18n-factory.d.ts +28 -0
- package/src/i18n/ecies-i18n-factory.d.ts.map +1 -0
- package/src/i18n/ecies-i18n-factory.js +89 -0
- package/src/i18n/ecies-i18n-factory.js.map +1 -0
- package/src/i18n/{index.ts → index.d.ts} +1 -3
- package/src/i18n/index.d.ts.map +1 -0
- package/src/i18n/index.js +8 -0
- package/src/i18n/index.js.map +1 -0
- package/src/i18n/node-ecies-i18n-setup.d.ts +5 -0
- package/src/i18n/node-ecies-i18n-setup.d.ts.map +1 -0
- package/src/i18n/node-ecies-i18n-setup.js +46 -0
- package/src/i18n/node-ecies-i18n-setup.js.map +1 -0
- package/src/i18n/node-keys.d.ts +57 -0
- package/src/i18n/node-keys.d.ts.map +1 -0
- package/src/i18n/node-keys.js +67 -0
- package/src/i18n/node-keys.js.map +1 -0
- package/src/i18n/translations/de.d.ts +3 -0
- package/src/i18n/translations/de.d.ts.map +1 -0
- package/src/i18n/translations/de.js +57 -0
- package/src/i18n/translations/de.js.map +1 -0
- package/src/i18n/translations/en-GB.d.ts +3 -0
- package/src/i18n/translations/en-GB.d.ts.map +1 -0
- package/src/i18n/translations/en-GB.js +61 -0
- package/src/i18n/translations/en-GB.js.map +1 -0
- package/src/i18n/translations/en-US.d.ts +6 -0
- package/src/i18n/translations/en-US.d.ts.map +1 -0
- package/src/i18n/translations/en-US.js +65 -0
- package/src/i18n/translations/en-US.js.map +1 -0
- package/src/i18n/translations/es.d.ts +3 -0
- package/src/i18n/translations/es.d.ts.map +1 -0
- package/src/i18n/translations/es.js +57 -0
- package/src/i18n/translations/es.js.map +1 -0
- package/src/i18n/translations/fr.d.ts +3 -0
- package/src/i18n/translations/fr.d.ts.map +1 -0
- package/src/i18n/translations/fr.js +57 -0
- package/src/i18n/translations/fr.js.map +1 -0
- package/src/i18n/translations/{index.ts → index.d.ts} +1 -0
- package/src/i18n/translations/index.d.ts.map +1 -0
- package/src/i18n/translations/index.js +20 -0
- package/src/i18n/translations/index.js.map +1 -0
- package/src/i18n/translations/ja.d.ts +3 -0
- package/src/i18n/translations/ja.d.ts.map +1 -0
- package/src/i18n/translations/ja.js +57 -0
- package/src/i18n/translations/ja.js.map +1 -0
- package/src/i18n/translations/uk.d.ts +3 -0
- package/src/i18n/translations/uk.d.ts.map +1 -0
- package/src/i18n/translations/uk.js +57 -0
- package/src/i18n/translations/uk.js.map +1 -0
- package/src/i18n/translations/zh-cn.d.ts +3 -0
- package/src/i18n/translations/zh-cn.d.ts.map +1 -0
- package/src/i18n/translations/zh-cn.js +57 -0
- package/src/i18n/translations/zh-cn.js.map +1 -0
- package/src/{index.ts → index.d.ts} +1 -5
- package/src/index.d.ts.map +1 -0
- package/src/index.js +31 -0
- package/src/index.js.map +1 -0
- package/src/interfaces/authenticated-cipher.d.ts +12 -0
- package/src/interfaces/authenticated-cipher.d.ts.map +1 -0
- package/src/interfaces/authenticated-cipher.js +3 -0
- package/src/interfaces/authenticated-cipher.js.map +1 -0
- package/src/interfaces/authenticated-decipher.d.ts +11 -0
- package/src/interfaces/authenticated-decipher.d.ts.map +1 -0
- package/src/interfaces/authenticated-decipher.js +3 -0
- package/src/interfaces/authenticated-decipher.js.map +1 -0
- package/src/interfaces/backend-member-operational.d.ts +48 -0
- package/src/interfaces/backend-member-operational.d.ts.map +1 -0
- package/src/interfaces/backend-member-operational.js +3 -0
- package/src/interfaces/backend-member-operational.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 +3 -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 +3 -0
- package/src/interfaces/checksum-consts.js.map +1 -0
- package/src/interfaces/constants.d.ts +52 -0
- package/src/interfaces/constants.d.ts.map +1 -0
- package/src/interfaces/constants.js +3 -0
- package/src/interfaces/constants.js.map +1 -0
- package/src/interfaces/ecies-consts.d.ts +88 -0
- package/src/interfaces/ecies-consts.d.ts.map +1 -0
- package/src/interfaces/ecies-consts.js +3 -0
- package/src/interfaces/ecies-consts.js.map +1 -0
- package/src/interfaces/encrypted-chunk.d.ts +12 -0
- package/src/interfaces/encrypted-chunk.d.ts.map +1 -0
- package/src/interfaces/encrypted-chunk.js +3 -0
- package/src/interfaces/encrypted-chunk.js.map +1 -0
- package/src/interfaces/encryption-consts.d.ts +11 -0
- package/src/interfaces/encryption-consts.d.ts.map +1 -0
- package/src/interfaces/encryption-consts.js +3 -0
- package/src/interfaces/encryption-consts.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 +30 -0
- package/src/interfaces/index.js.map +1 -0
- package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.d.ts +6 -0
- package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.d.ts.map +1 -0
- package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.js +3 -0
- package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.js.map +1 -0
- package/src/interfaces/keyring-consts.d.ts +6 -0
- package/src/interfaces/keyring-consts.d.ts.map +1 -0
- package/src/interfaces/keyring-consts.js +3 -0
- package/src/interfaces/keyring-consts.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 +3 -0
- package/src/interfaces/member-with-mnemonic.js.map +1 -0
- package/src/interfaces/member.d.ts +47 -0
- package/src/interfaces/member.d.ts.map +1 -0
- package/src/interfaces/member.js +3 -0
- package/src/interfaces/member.js.map +1 -0
- package/src/interfaces/{multi-encrypted-message.ts → multi-encrypted-message.d.ts} +5 -5
- package/src/interfaces/multi-encrypted-message.d.ts.map +1 -0
- package/src/interfaces/multi-encrypted-message.js +3 -0
- package/src/interfaces/multi-encrypted-message.js.map +1 -0
- package/src/interfaces/multi-encrypted-parsed-header.d.ts +27 -0
- package/src/interfaces/multi-encrypted-parsed-header.d.ts.map +1 -0
- package/src/interfaces/multi-encrypted-parsed-header.js +3 -0
- package/src/interfaces/multi-encrypted-parsed-header.js.map +1 -0
- package/src/interfaces/multi-recipient-chunk.d.ts +26 -0
- package/src/interfaces/multi-recipient-chunk.d.ts.map +1 -0
- package/src/interfaces/multi-recipient-chunk.js +13 -0
- package/src/interfaces/multi-recipient-chunk.js.map +1 -0
- package/src/interfaces/{pbkdf-profiles.ts → pbkdf-profiles.d.ts} +2 -2
- package/src/interfaces/pbkdf-profiles.d.ts.map +1 -0
- package/src/interfaces/pbkdf-profiles.js +3 -0
- package/src/interfaces/pbkdf-profiles.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 +3 -0
- package/src/interfaces/pbkdf2-result.js.map +1 -0
- package/src/interfaces/signing-key-private-key-info.d.ts +11 -0
- package/src/interfaces/signing-key-private-key-info.d.ts.map +1 -0
- package/src/interfaces/signing-key-private-key-info.js +3 -0
- package/src/interfaces/signing-key-private-key-info.js.map +1 -0
- package/src/interfaces/{simple-keypair-buffer.ts → simple-keypair-buffer.d.ts} +3 -3
- package/src/interfaces/simple-keypair-buffer.d.ts.map +1 -0
- package/src/interfaces/simple-keypair-buffer.js +3 -0
- package/src/interfaces/simple-keypair-buffer.js.map +1 -0
- package/src/interfaces/{simple-keypair.ts → simple-keypair.d.ts} +3 -3
- package/src/interfaces/simple-keypair.d.ts.map +1 -0
- package/src/interfaces/simple-keypair.js +3 -0
- package/src/interfaces/simple-keypair.js.map +1 -0
- package/src/interfaces/simple-public-key-only-buffer.d.ts +4 -0
- package/src/interfaces/simple-public-key-only-buffer.d.ts.map +1 -0
- package/src/interfaces/simple-public-key-only-buffer.js +3 -0
- package/src/interfaces/simple-public-key-only-buffer.js.map +1 -0
- package/src/interfaces/simple-public-key-only.d.ts +4 -0
- package/src/interfaces/simple-public-key-only.d.ts.map +1 -0
- package/src/interfaces/simple-public-key-only.js +3 -0
- package/src/interfaces/simple-public-key-only.js.map +1 -0
- package/src/interfaces/single-encrypted-parsed-header.d.ts +35 -0
- package/src/interfaces/single-encrypted-parsed-header.d.ts.map +1 -0
- package/src/interfaces/single-encrypted-parsed-header.js +3 -0
- package/src/interfaces/single-encrypted-parsed-header.js.map +1 -0
- package/src/interfaces/stream-config.d.ts +6 -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-progress.d.ts +8 -0
- package/src/interfaces/stream-progress.d.ts.map +1 -0
- package/src/interfaces/stream-progress.js +3 -0
- package/src/interfaces/stream-progress.js.map +1 -0
- package/src/interfaces/{wallet-seed.ts → wallet-seed.d.ts} +3 -3
- package/src/interfaces/wallet-seed.d.ts.map +1 -0
- package/src/interfaces/wallet-seed.js +3 -0
- package/src/interfaces/wallet-seed.js.map +1 -0
- package/src/interfaces/wrapped-key-consts.d.ts +7 -0
- package/src/interfaces/wrapped-key-consts.d.ts.map +1 -0
- package/src/interfaces/wrapped-key-consts.js +3 -0
- package/src/interfaces/wrapped-key-consts.js.map +1 -0
- package/src/lib/crypto-container.d.ts +13 -0
- package/src/lib/crypto-container.d.ts.map +1 -0
- package/src/lib/crypto-container.js +29 -0
- package/src/lib/crypto-container.js.map +1 -0
- package/src/lib/{index.ts → index.d.ts} +1 -0
- package/src/lib/index.d.ts.map +1 -0
- package/src/lib/index.js +7 -0
- package/src/lib/index.js.map +1 -0
- package/src/lib/invariant-validator.d.ts +62 -0
- package/src/lib/invariant-validator.d.ts.map +1 -0
- package/src/lib/invariant-validator.js +108 -0
- package/src/lib/invariant-validator.js.map +1 -0
- package/src/lib/invariants/{index.ts → index.d.ts} +2 -2
- package/src/lib/invariants/index.d.ts.map +1 -0
- package/src/lib/invariants/index.js +12 -0
- package/src/lib/invariants/index.js.map +1 -0
- package/src/lib/invariants/recipient-id-consistency.d.ts +22 -0
- package/src/lib/invariants/recipient-id-consistency.d.ts.map +1 -0
- package/src/lib/invariants/recipient-id-consistency.js +62 -0
- package/src/lib/invariants/recipient-id-consistency.js.map +1 -0
- package/src/member.d.ts +81 -0
- package/src/member.d.ts.map +1 -0
- package/src/member.js +285 -0
- package/src/member.js.map +1 -0
- package/src/services/aes-gcm.d.ts +66 -0
- package/src/services/aes-gcm.d.ts.map +1 -0
- package/src/services/aes-gcm.js +158 -0
- package/src/services/aes-gcm.js.map +1 -0
- package/src/services/chunk-processor.d.ts +15 -0
- package/src/services/chunk-processor.d.ts.map +1 -0
- package/src/services/chunk-processor.js +36 -0
- package/src/services/chunk-processor.js.map +1 -0
- package/src/services/ecies/crypto-core.d.ts +104 -0
- package/src/services/ecies/crypto-core.d.ts.map +1 -0
- package/src/services/ecies/crypto-core.js +237 -0
- package/src/services/ecies/crypto-core.js.map +1 -0
- package/src/services/ecies/file.d.ts +30 -0
- package/src/services/ecies/file.d.ts.map +1 -0
- package/src/services/ecies/file.js +112 -0
- package/src/services/ecies/file.js.map +1 -0
- package/src/services/ecies/{index.ts → index.d.ts} +1 -0
- package/src/services/ecies/index.d.ts.map +1 -0
- package/src/services/ecies/index.js +11 -0
- package/src/services/ecies/index.js.map +1 -0
- package/src/services/ecies/multi-recipient.d.ts +84 -0
- package/src/services/ecies/multi-recipient.d.ts.map +1 -0
- package/src/services/ecies/multi-recipient.js +496 -0
- package/src/services/ecies/multi-recipient.js.map +1 -0
- package/src/services/ecies/service.d.ts +69 -0
- package/src/services/ecies/service.d.ts.map +1 -0
- package/src/services/ecies/service.js +144 -0
- package/src/services/ecies/service.js.map +1 -0
- package/src/services/ecies/signature.d.ts +38 -0
- package/src/services/ecies/signature.d.ts.map +1 -0
- package/src/services/ecies/signature.js +69 -0
- package/src/services/ecies/signature.js.map +1 -0
- package/src/services/ecies/single-recipient.d.ts +83 -0
- package/src/services/ecies/single-recipient.d.ts.map +1 -0
- package/src/services/ecies/single-recipient.js +447 -0
- package/src/services/ecies/single-recipient.js.map +1 -0
- package/src/services/ecies/utilities.d.ts +33 -0
- package/src/services/ecies/utilities.d.ts.map +1 -0
- package/src/services/ecies/utilities.js +91 -0
- package/src/services/ecies/utilities.js.map +1 -0
- package/src/services/encryption-stream.d.ts +33 -0
- package/src/services/encryption-stream.d.ts.map +1 -0
- package/src/services/encryption-stream.js +207 -0
- package/src/services/encryption-stream.js.map +1 -0
- package/src/services/{index.ts → index.d.ts} +1 -0
- package/src/services/index.d.ts.map +1 -0
- package/src/services/index.js +11 -0
- package/src/services/index.js.map +1 -0
- package/src/services/multi-recipient-processor.d.ts +72 -0
- package/src/services/multi-recipient-processor.d.ts.map +1 -0
- package/src/services/multi-recipient-processor.js +322 -0
- package/src/services/multi-recipient-processor.js.map +1 -0
- package/src/services/pbkdf2.d.ts +105 -0
- package/src/services/pbkdf2.d.ts.map +1 -0
- package/src/services/pbkdf2.js +189 -0
- package/src/services/pbkdf2.js.map +1 -0
- package/src/services/progress-tracker.d.ts +9 -0
- package/src/services/progress-tracker.d.ts.map +1 -0
- package/src/services/progress-tracker.js +41 -0
- package/src/services/progress-tracker.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 +5 -0
- package/src/test-mocks/index.js.map +1 -0
- package/src/test-mocks/mock-backend-member.d.ts +71 -0
- package/src/test-mocks/mock-backend-member.d.ts.map +1 -0
- package/src/test-mocks/mock-backend-member.js +133 -0
- package/src/test-mocks/mock-backend-member.js.map +1 -0
- package/src/testing.d.ts +2 -0
- package/src/testing.d.ts.map +1 -0
- package/src/testing.js +6 -0
- package/src/testing.js.map +1 -0
- package/src/types/id-guards.d.ts +39 -0
- package/src/types/id-guards.d.ts.map +1 -0
- package/src/types/id-guards.js +91 -0
- package/src/types/id-guards.js.map +1 -0
- package/src/types/index.d.ts +2 -0
- package/src/types/index.d.ts.map +1 -0
- package/src/types/index.js +5 -0
- package/src/types/index.js.map +1 -0
- package/src/{types.ts → types.d.ts} +9 -28
- package/src/types.d.ts.map +1 -0
- package/src/types.js +6 -0
- package/src/types.js.map +1 -0
- package/src/utils.d.ts +11 -0
- package/src/utils.d.ts.map +1 -0
- package/src/utils.js +82 -0
- package/src/utils.js.map +1 -0
- package/LICENSE +0 -21
- package/src/builders/ecies-builder.ts +0 -27
- package/src/builders/member-builder.ts +0 -158
- package/src/constants.ts +0 -251
- package/src/core/errors/crypto-error.ts +0 -10
- package/src/core/types/result.ts +0 -3
- package/src/enumerations/index.ts +0 -2
- package/src/enumerations/pbkdf2-profile.ts +0 -8
- package/src/i18n/ecies-i18n-factory.ts +0 -111
- package/src/i18n/node-ecies-i18n-setup.ts +0 -56
- package/src/i18n/node-keys.ts +0 -69
- package/src/i18n/translations/de.ts +0 -54
- package/src/i18n/translations/en-GB.ts +0 -83
- package/src/i18n/translations/en-US.ts +0 -88
- package/src/i18n/translations/es.ts +0 -54
- package/src/i18n/translations/fr.ts +0 -54
- package/src/i18n/translations/ja.ts +0 -54
- package/src/i18n/translations/uk.ts +0 -54
- package/src/i18n/translations/zh-cn.ts +0 -54
- package/src/interfaces/authenticated-cipher.ts +0 -10
- package/src/interfaces/authenticated-decipher.ts +0 -9
- package/src/interfaces/backend-member-operational.ts +0 -75
- package/src/interfaces/checksum-config.ts +0 -4
- package/src/interfaces/checksum-consts.ts +0 -13
- package/src/interfaces/constants.ts +0 -54
- package/src/interfaces/ecies-consts.ts +0 -99
- package/src/interfaces/encrypted-chunk.ts +0 -12
- package/src/interfaces/encryption-consts.ts +0 -10
- package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.ts +0 -7
- package/src/interfaces/keyring-consts.ts +0 -5
- package/src/interfaces/member.ts +0 -76
- package/src/interfaces/multi-encrypted-parsed-header.ts +0 -28
- package/src/interfaces/multi-recipient-chunk.ts +0 -35
- package/src/interfaces/pbkdf2-result.ts +0 -5
- package/src/interfaces/signing-key-private-key-info.ts +0 -12
- package/src/interfaces/simple-public-key-only-buffer.ts +0 -3
- package/src/interfaces/simple-public-key-only.ts +0 -3
- package/src/interfaces/single-encrypted-parsed-header.ts +0 -35
- package/src/interfaces/stream-config.ts +0 -9
- package/src/interfaces/stream-progress.ts +0 -7
- package/src/interfaces/wrapped-key-consts.ts +0 -6
- package/src/lib/crypto-container.ts +0 -32
- package/src/lib/invariant-validator.ts +0 -124
- package/src/lib/invariants/recipient-id-consistency.ts +0 -77
- package/src/member.ts +0 -511
- package/src/services/aes-gcm.ts +0 -260
- package/src/services/chunk-processor.ts +0 -47
- package/src/services/ecies/crypto-core.ts +0 -319
- package/src/services/ecies/file.ts +0 -171
- package/src/services/ecies/multi-recipient.ts +0 -782
- package/src/services/ecies/service.ts +0 -316
- package/src/services/ecies/signature.ts +0 -91
- package/src/services/ecies/single-recipient.ts +0 -743
- package/src/services/ecies/utilities.ts +0 -128
- package/src/services/encryption-stream.ts +0 -432
- package/src/services/multi-recipient-processor.ts +0 -505
- package/src/services/pbkdf2.ts +0 -304
- package/src/services/progress-tracker.ts +0 -43
- package/src/test-mocks/index.ts +0 -1
- package/src/test-mocks/mock-backend-member.ts +0 -195
- package/src/testing.ts +0 -2
- package/src/types/id-guards.ts +0 -91
- package/src/types/index.ts +0 -1
- package/src/utils.ts +0 -124
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipient-id-consistency.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/invariants/recipient-id-consistency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAIxD;;;;;;;;;;;;;GAaG;AACH,qBAAa,+BAAgC,SAAQ,aAAa;;IAQhE,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAalC,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;CAoCzC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RecipientIdConsistencyInvariant = void 0;
|
|
4
|
+
const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
|
|
5
|
+
const node_keys_1 = require("../../i18n/node-keys");
|
|
6
|
+
const ecies_i18n_factory_1 = require("../../i18n/ecies-i18n-factory");
|
|
7
|
+
/**
|
|
8
|
+
* Node.js-specific recipient ID consistency invariant.
|
|
9
|
+
*
|
|
10
|
+
* Extends the base ecies-lib invariant to also validate node-specific
|
|
11
|
+
* ENCRYPTION.RECIPIENT_ID_SIZE constant.
|
|
12
|
+
*
|
|
13
|
+
* This invariant would have caught the 12 vs 32 byte discrepancy.
|
|
14
|
+
*
|
|
15
|
+
* Checks:
|
|
16
|
+
* - MEMBER_ID_LENGTH === idProvider.byteLength
|
|
17
|
+
* - ECIES.MULTIPLE.RECIPIENT_ID_SIZE === idProvider.byteLength
|
|
18
|
+
* - ENCRYPTION.RECIPIENT_ID_SIZE === idProvider.byteLength (Node-specific)
|
|
19
|
+
* - All values must be in sync
|
|
20
|
+
*/
|
|
21
|
+
class RecipientIdConsistencyInvariant extends ecies_lib_1.BaseInvariant {
|
|
22
|
+
constructor() {
|
|
23
|
+
super('NodeRecipientIdConsistency', 'All recipient ID size configurations must match the ID provider byte length (including Node-specific ENCRYPTION constant)');
|
|
24
|
+
}
|
|
25
|
+
check(config) {
|
|
26
|
+
const baseChecks = config.MEMBER_ID_LENGTH === config.idProvider.byteLength &&
|
|
27
|
+
config.ECIES.MULTIPLE.RECIPIENT_ID_SIZE === config.idProvider.byteLength;
|
|
28
|
+
// ENCRYPTION is node-specific and may not exist in all configs
|
|
29
|
+
if (config.ENCRYPTION && 'RECIPIENT_ID_SIZE' in config.ENCRYPTION) {
|
|
30
|
+
return baseChecks && config.ENCRYPTION.RECIPIENT_ID_SIZE === config.idProvider.byteLength;
|
|
31
|
+
}
|
|
32
|
+
return baseChecks;
|
|
33
|
+
}
|
|
34
|
+
errorMessage(config) {
|
|
35
|
+
const issues = [];
|
|
36
|
+
if (config.MEMBER_ID_LENGTH !== config.idProvider.byteLength) {
|
|
37
|
+
issues.push((0, ecies_i18n_factory_1.getNodeEciesTranslation)(node_keys_1.NodeEciesStringKey.Error_Invariant_MemberIdLengthMismatchTemplate, {
|
|
38
|
+
actual: config.MEMBER_ID_LENGTH,
|
|
39
|
+
expected: config.idProvider.byteLength,
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
if (config.ECIES.MULTIPLE.RECIPIENT_ID_SIZE !== config.idProvider.byteLength) {
|
|
43
|
+
issues.push((0, ecies_i18n_factory_1.getNodeEciesTranslation)(node_keys_1.NodeEciesStringKey.Error_Invariant_EciesMultipleRecipientIdSizeMismatchTemplate, {
|
|
44
|
+
actual: config.ECIES.MULTIPLE.RECIPIENT_ID_SIZE,
|
|
45
|
+
expected: config.idProvider.byteLength,
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
if (config.ENCRYPTION && 'RECIPIENT_ID_SIZE' in config.ENCRYPTION) {
|
|
49
|
+
if (config.ENCRYPTION.RECIPIENT_ID_SIZE !== config.idProvider.byteLength) {
|
|
50
|
+
issues.push((0, ecies_i18n_factory_1.getNodeEciesTranslation)(node_keys_1.NodeEciesStringKey.Error_Invariant_EncryptionRecipientIdSizeMismatchTemplate, {
|
|
51
|
+
actual: config.ENCRYPTION.RECIPIENT_ID_SIZE,
|
|
52
|
+
expected: config.idProvider.byteLength,
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return (0, ecies_i18n_factory_1.getNodeEciesTranslation)(node_keys_1.NodeEciesStringKey.Error_Invariant_NodeRecipientIdConsistency_FailedTemplate, {
|
|
57
|
+
issues: issues.join('\n '),
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.RecipientIdConsistencyInvariant = RecipientIdConsistencyInvariant;
|
|
62
|
+
//# sourceMappingURL=recipient-id-consistency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipient-id-consistency.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/lib/invariants/recipient-id-consistency.ts"],"names":[],"mappings":";;;AAAA,0DAA2D;AAE3D,oDAA0D;AAC1D,sEAAwE;AAExE;;;;;;;;;;;;;GAaG;AACH,MAAa,+BAAgC,SAAQ,yBAAa;IAChE;QACE,KAAK,CACH,4BAA4B,EAC5B,2HAA2H,CAC5H,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAkB;QACtB,MAAM,UAAU,GACd,MAAM,CAAC,gBAAgB,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU;YACxD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;QAE3E,+DAA+D;QAC/D,IAAI,MAAM,CAAC,UAAU,IAAI,mBAAmB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAClE,OAAO,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,iBAAiB,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;QAC5F,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,YAAY,CAAC,MAAkB;QAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,MAAM,CAAC,gBAAgB,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC7D,MAAM,CAAC,IAAI,CACT,IAAA,4CAAuB,EAAC,8BAAkB,CAAC,8CAA8C,EAAE;gBACzF,MAAM,EAAE,MAAM,CAAC,gBAAgB;gBAC/B,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,UAAU;aACvC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC7E,MAAM,CAAC,IAAI,CACT,IAAA,4CAAuB,EAAC,8BAAkB,CAAC,4DAA4D,EAAE;gBACvG,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB;gBAC/C,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,UAAU;aACvC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,IAAI,mBAAmB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAClE,IAAI,MAAM,CAAC,UAAU,CAAC,iBAAiB,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;gBACzE,MAAM,CAAC,IAAI,CACT,IAAA,4CAAuB,EAAC,8BAAkB,CAAC,yDAAyD,EAAE;oBACpG,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,iBAAiB;oBAC3C,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,UAAU;iBACvC,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAA,4CAAuB,EAAC,8BAAkB,CAAC,yDAAyD,EAAE;YAC3G,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;CACF;AAzDD,0EAyDC"}
|
package/src/member.d.ts
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { EmailString, MemberErrorType, MemberType, SecureBuffer, SecureString } from '@digitaldefiance/ecies-lib';
|
|
2
|
+
import { Wallet } from '@ethereumjs/wallet';
|
|
3
|
+
/**
|
|
4
|
+
* Custom error classes that work with the plugin i18n system
|
|
5
|
+
*/
|
|
6
|
+
export declare class NodeMemberError extends Error {
|
|
7
|
+
readonly type: MemberErrorType;
|
|
8
|
+
constructor(message: string, type: MemberErrorType);
|
|
9
|
+
}
|
|
10
|
+
import { IEncryptedChunk } from './interfaces/encrypted-chunk';
|
|
11
|
+
import { IMember } from './interfaces/member';
|
|
12
|
+
import { IStreamProgress } from './interfaces/stream-progress';
|
|
13
|
+
import { ECIESService } from './services/ecies/service';
|
|
14
|
+
import { Types } from '@digitaldefiance/mongoose-types';
|
|
15
|
+
import { IBackendMemberOperational } from './interfaces/backend-member-operational';
|
|
16
|
+
import { SignatureBuffer } from './types';
|
|
17
|
+
/**
|
|
18
|
+
* A member of an ECIES interchange
|
|
19
|
+
*/
|
|
20
|
+
export declare class Member<TID extends string | Types.ObjectId | Buffer | Uint8Array = Buffer> implements IMember<TID>, IBackendMemberOperational<TID> {
|
|
21
|
+
private readonly _eciesService;
|
|
22
|
+
private readonly _id;
|
|
23
|
+
private readonly _type;
|
|
24
|
+
private readonly _name;
|
|
25
|
+
private readonly _email;
|
|
26
|
+
private readonly _publicKey;
|
|
27
|
+
private readonly _creatorId;
|
|
28
|
+
private readonly _dateCreated;
|
|
29
|
+
private readonly _dateUpdated;
|
|
30
|
+
private _privateKey?;
|
|
31
|
+
private _wallet?;
|
|
32
|
+
constructor(eciesService: ECIESService, type: MemberType, name: string, email: EmailString, publicKey: Buffer, privateKey?: SecureBuffer, wallet?: Wallet, id?: TID, dateCreated?: Date, dateUpdated?: Date, creatorId?: TID);
|
|
33
|
+
get id(): TID;
|
|
34
|
+
get type(): MemberType;
|
|
35
|
+
get name(): string;
|
|
36
|
+
get email(): EmailString;
|
|
37
|
+
get publicKey(): Buffer;
|
|
38
|
+
get creatorId(): TID;
|
|
39
|
+
get dateCreated(): Date;
|
|
40
|
+
get dateUpdated(): Date;
|
|
41
|
+
get privateKey(): SecureBuffer | undefined;
|
|
42
|
+
get wallet(): Wallet;
|
|
43
|
+
get hasPrivateKey(): boolean;
|
|
44
|
+
unloadPrivateKey(): void;
|
|
45
|
+
unloadWallet(): void;
|
|
46
|
+
unloadWalletAndPrivateKey(): void;
|
|
47
|
+
loadWallet(mnemonic: SecureString): void;
|
|
48
|
+
/**
|
|
49
|
+
* Loads the private key and optionally the voting private key.
|
|
50
|
+
*
|
|
51
|
+
* @param privateKey The private key to load.
|
|
52
|
+
* @param votingPrivateKey The voting private key to load.
|
|
53
|
+
*/
|
|
54
|
+
loadPrivateKey(privateKey: SecureBuffer): void;
|
|
55
|
+
sign(data: Buffer): SignatureBuffer;
|
|
56
|
+
signData(data: Buffer): SignatureBuffer;
|
|
57
|
+
verify(signature: SignatureBuffer, data: Buffer): boolean;
|
|
58
|
+
verifySignature(data: Buffer, signature: Buffer, publicKey: Buffer): boolean;
|
|
59
|
+
private static readonly MAX_ENCRYPTION_SIZE;
|
|
60
|
+
private static readonly VALID_STRING_REGEX;
|
|
61
|
+
encryptData(data: string | Buffer, recipientPublicKey?: Buffer): Buffer;
|
|
62
|
+
decryptData(encryptedData: Buffer): Buffer;
|
|
63
|
+
toJson(): string;
|
|
64
|
+
dispose(): void;
|
|
65
|
+
encryptDataStream(source: AsyncIterable<Buffer>, options?: {
|
|
66
|
+
recipientPublicKey?: Buffer;
|
|
67
|
+
onProgress?: (progress: IStreamProgress) => void;
|
|
68
|
+
signal?: AbortSignal;
|
|
69
|
+
}): AsyncGenerator<IEncryptedChunk, void, unknown>;
|
|
70
|
+
decryptDataStream(source: AsyncIterable<Buffer>, options?: {
|
|
71
|
+
onProgress?: (progress: IStreamProgress) => void;
|
|
72
|
+
signal?: AbortSignal;
|
|
73
|
+
}): AsyncGenerator<Buffer, void, unknown>;
|
|
74
|
+
static fromJson(json: string, eciesService: ECIESService): Member;
|
|
75
|
+
static fromMnemonic(mnemonic: SecureString, eciesService: ECIESService, memberType?: any, name?: string, email?: any): Member;
|
|
76
|
+
static newMember(eciesService: ECIESService, type: MemberType, name: string, email: EmailString, forceMnemonic?: SecureString, createdBy?: Buffer): {
|
|
77
|
+
member: Member;
|
|
78
|
+
mnemonic: SecureString;
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=member.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"member.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/member.ts"],"names":[],"mappings":"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"}
|
package/src/member.js
ADDED
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Member = exports.NodeMemberError = void 0;
|
|
4
|
+
const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
|
|
5
|
+
const secp256k1_1 = require("ethereum-cryptography/secp256k1");
|
|
6
|
+
const ecies_i18n_factory_1 = require("./i18n/ecies-i18n-factory");
|
|
7
|
+
/**
|
|
8
|
+
* Custom error classes that work with the plugin i18n system
|
|
9
|
+
*/
|
|
10
|
+
class NodeMemberError extends Error {
|
|
11
|
+
type;
|
|
12
|
+
constructor(message, type) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.type = type;
|
|
15
|
+
this.name = 'NodeMemberError';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.NodeMemberError = NodeMemberError;
|
|
19
|
+
const encryption_stream_1 = require("./services/encryption-stream");
|
|
20
|
+
const constants_1 = require("./constants");
|
|
21
|
+
const types_1 = require("./types");
|
|
22
|
+
/**
|
|
23
|
+
* A member of an ECIES interchange
|
|
24
|
+
*/
|
|
25
|
+
class Member {
|
|
26
|
+
_eciesService;
|
|
27
|
+
_id;
|
|
28
|
+
_type;
|
|
29
|
+
_name;
|
|
30
|
+
_email;
|
|
31
|
+
_publicKey;
|
|
32
|
+
_creatorId;
|
|
33
|
+
_dateCreated;
|
|
34
|
+
_dateUpdated;
|
|
35
|
+
_privateKey;
|
|
36
|
+
_wallet;
|
|
37
|
+
constructor(
|
|
38
|
+
// Add injected services as parameters
|
|
39
|
+
eciesService,
|
|
40
|
+
// Original parameters
|
|
41
|
+
type, name, email, publicKey, privateKey, wallet, id, dateCreated, dateUpdated, creatorId) {
|
|
42
|
+
// Assign injected services
|
|
43
|
+
this._eciesService = eciesService;
|
|
44
|
+
// Assign original parameters
|
|
45
|
+
this._type = type;
|
|
46
|
+
this._id = id ?? (0, types_1.toBuffer)(constants_1.Constants.idProvider.generate());
|
|
47
|
+
this._name = name;
|
|
48
|
+
if (!this._name || this._name.length == 0) {
|
|
49
|
+
throw new NodeMemberError((0, ecies_i18n_factory_1.getNodeEciesTranslation)(ecies_i18n_factory_1.NodeEciesStringKey.Error_Member_MissingMemberName), ecies_lib_1.MemberErrorType.MissingMemberName);
|
|
50
|
+
}
|
|
51
|
+
if (this._name.trim() != this._name) {
|
|
52
|
+
throw new NodeMemberError((0, ecies_i18n_factory_1.getNodeEciesTranslation)(ecies_i18n_factory_1.NodeEciesStringKey.Error_Member_InvalidMemberNameWhitespace), ecies_lib_1.MemberErrorType.InvalidMemberNameWhitespace);
|
|
53
|
+
}
|
|
54
|
+
this._email = email;
|
|
55
|
+
this._publicKey = publicKey;
|
|
56
|
+
this._privateKey = privateKey;
|
|
57
|
+
this._wallet = wallet;
|
|
58
|
+
// don't create a new date object with nearly identical values to the existing one
|
|
59
|
+
let _now = null;
|
|
60
|
+
const now = function () {
|
|
61
|
+
if (!_now) {
|
|
62
|
+
_now = new Date();
|
|
63
|
+
}
|
|
64
|
+
return _now;
|
|
65
|
+
};
|
|
66
|
+
this._dateCreated = dateCreated ?? now();
|
|
67
|
+
this._dateUpdated = dateUpdated ?? now();
|
|
68
|
+
this._creatorId = creatorId ?? this._id;
|
|
69
|
+
}
|
|
70
|
+
// Required getters
|
|
71
|
+
get id() {
|
|
72
|
+
return this._id;
|
|
73
|
+
}
|
|
74
|
+
get type() {
|
|
75
|
+
return this._type;
|
|
76
|
+
}
|
|
77
|
+
get name() {
|
|
78
|
+
return this._name;
|
|
79
|
+
}
|
|
80
|
+
get email() {
|
|
81
|
+
return this._email;
|
|
82
|
+
}
|
|
83
|
+
get publicKey() {
|
|
84
|
+
return this._publicKey;
|
|
85
|
+
}
|
|
86
|
+
get creatorId() {
|
|
87
|
+
return this._creatorId;
|
|
88
|
+
}
|
|
89
|
+
get dateCreated() {
|
|
90
|
+
return this._dateCreated;
|
|
91
|
+
}
|
|
92
|
+
get dateUpdated() {
|
|
93
|
+
return this._dateUpdated;
|
|
94
|
+
}
|
|
95
|
+
// Optional private data getters
|
|
96
|
+
get privateKey() {
|
|
97
|
+
return this._privateKey;
|
|
98
|
+
}
|
|
99
|
+
get wallet() {
|
|
100
|
+
if (!this._wallet) {
|
|
101
|
+
throw new NodeMemberError((0, ecies_i18n_factory_1.getNodeEciesTranslation)(ecies_i18n_factory_1.NodeEciesStringKey.Error_Member_NoWallet), ecies_lib_1.MemberErrorType.NoWallet);
|
|
102
|
+
}
|
|
103
|
+
return this._wallet;
|
|
104
|
+
}
|
|
105
|
+
// State getters
|
|
106
|
+
get hasPrivateKey() {
|
|
107
|
+
return this._privateKey !== undefined;
|
|
108
|
+
}
|
|
109
|
+
unloadPrivateKey() {
|
|
110
|
+
// Do not dispose here; tests expect the same SecureBuffer instance to remain usable
|
|
111
|
+
// when reloaded into another member in the same process.
|
|
112
|
+
this._privateKey = undefined;
|
|
113
|
+
}
|
|
114
|
+
unloadWallet() {
|
|
115
|
+
this._wallet = undefined;
|
|
116
|
+
}
|
|
117
|
+
unloadWalletAndPrivateKey() {
|
|
118
|
+
this.unloadWallet();
|
|
119
|
+
this.unloadPrivateKey();
|
|
120
|
+
}
|
|
121
|
+
loadWallet(mnemonic) {
|
|
122
|
+
if (this._wallet) {
|
|
123
|
+
throw new NodeMemberError((0, ecies_i18n_factory_1.getNodeEciesTranslation)(ecies_i18n_factory_1.NodeEciesStringKey.Error_Member_WalletAlreadyLoaded), ecies_lib_1.MemberErrorType.WalletAlreadyLoaded);
|
|
124
|
+
}
|
|
125
|
+
const { wallet } = this._eciesService.walletAndSeedFromMnemonic(mnemonic);
|
|
126
|
+
const privateKey = wallet.getPrivateKey();
|
|
127
|
+
const publicKey = secp256k1_1.secp256k1.getPublicKey(privateKey, true);
|
|
128
|
+
const publicKeyWithPrefix = Buffer.from(publicKey);
|
|
129
|
+
if (publicKeyWithPrefix.toString('hex') !== this._publicKey.toString('hex')) {
|
|
130
|
+
throw new NodeMemberError((0, ecies_i18n_factory_1.getNodeEciesTranslation)(ecies_i18n_factory_1.NodeEciesStringKey.Error_Member_InvalidMnemonic), ecies_lib_1.MemberErrorType.InvalidMnemonic);
|
|
131
|
+
}
|
|
132
|
+
this._wallet = wallet;
|
|
133
|
+
this._privateKey = new ecies_lib_1.SecureBuffer(privateKey);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Loads the private key and optionally the voting private key.
|
|
137
|
+
*
|
|
138
|
+
* @param privateKey The private key to load.
|
|
139
|
+
* @param votingPrivateKey The voting private key to load.
|
|
140
|
+
*/
|
|
141
|
+
loadPrivateKey(privateKey) {
|
|
142
|
+
this._privateKey = privateKey;
|
|
143
|
+
}
|
|
144
|
+
sign(data) {
|
|
145
|
+
if (!this._privateKey) {
|
|
146
|
+
throw new NodeMemberError((0, ecies_i18n_factory_1.getNodeEciesTranslation)(ecies_i18n_factory_1.NodeEciesStringKey.Error_Member_MissingPrivateKey), ecies_lib_1.MemberErrorType.MissingPrivateKey);
|
|
147
|
+
}
|
|
148
|
+
return this._eciesService.signMessage(Buffer.from(this._privateKey.value), data);
|
|
149
|
+
}
|
|
150
|
+
signData(data) {
|
|
151
|
+
if (!this._privateKey) {
|
|
152
|
+
throw new NodeMemberError((0, ecies_i18n_factory_1.getNodeEciesTranslation)(ecies_i18n_factory_1.NodeEciesStringKey.Error_Member_MissingPrivateKey), ecies_lib_1.MemberErrorType.MissingPrivateKey);
|
|
153
|
+
}
|
|
154
|
+
return this._eciesService.signMessage(Buffer.from(this._privateKey.value), data);
|
|
155
|
+
}
|
|
156
|
+
verify(signature, data) {
|
|
157
|
+
return this._eciesService.verifyMessage(this._publicKey, data, signature);
|
|
158
|
+
}
|
|
159
|
+
verifySignature(data, signature, publicKey) {
|
|
160
|
+
return this._eciesService.verifyMessage(publicKey, data, signature);
|
|
161
|
+
}
|
|
162
|
+
static MAX_ENCRYPTION_SIZE = 1024 * 1024 * 10; // 10MB limit
|
|
163
|
+
static VALID_STRING_REGEX = /^[\x20-\x7E\n\r\t]*$/; // Printable ASCII + common whitespace
|
|
164
|
+
encryptData(data, recipientPublicKey) {
|
|
165
|
+
// Validate input
|
|
166
|
+
if (!data) {
|
|
167
|
+
throw new NodeMemberError((0, ecies_i18n_factory_1.getNodeEciesTranslation)(ecies_i18n_factory_1.NodeEciesStringKey.Error_Member_MissingEncryptionData), ecies_lib_1.MemberErrorType.MissingEncryptionData);
|
|
168
|
+
}
|
|
169
|
+
// Check size limit
|
|
170
|
+
const dataSize = Buffer.isBuffer(data)
|
|
171
|
+
? data.length
|
|
172
|
+
: Buffer.byteLength(data);
|
|
173
|
+
if (dataSize > Member.MAX_ENCRYPTION_SIZE) {
|
|
174
|
+
throw new NodeMemberError((0, ecies_i18n_factory_1.getNodeEciesTranslation)(ecies_i18n_factory_1.NodeEciesStringKey.Error_Member_EncryptionDataTooLarge), ecies_lib_1.MemberErrorType.EncryptionDataTooLarge);
|
|
175
|
+
}
|
|
176
|
+
// Create buffer from data
|
|
177
|
+
const bufferData = Buffer.isBuffer(data) ? data : Buffer.from(data);
|
|
178
|
+
// Use recipient public key or self public key
|
|
179
|
+
const targetPublicKey = recipientPublicKey || this._publicKey;
|
|
180
|
+
return this._eciesService.encryptSimpleOrSingle(false, targetPublicKey, bufferData);
|
|
181
|
+
}
|
|
182
|
+
decryptData(encryptedData) {
|
|
183
|
+
if (!this._privateKey) {
|
|
184
|
+
throw new NodeMemberError((0, ecies_i18n_factory_1.getNodeEciesTranslation)(ecies_i18n_factory_1.NodeEciesStringKey.Error_Member_MissingPrivateKey), ecies_lib_1.MemberErrorType.MissingPrivateKey);
|
|
185
|
+
}
|
|
186
|
+
// decryptSingleWithHeader now returns the Buffer directly
|
|
187
|
+
return this._eciesService.decryptSimpleOrSingleWithHeader(false, Buffer.from(this._privateKey.value), encryptedData);
|
|
188
|
+
}
|
|
189
|
+
toJson() {
|
|
190
|
+
const storage = {
|
|
191
|
+
id: constants_1.Constants.idProvider.serialize((0, types_1.toUint8Array)(this._id)),
|
|
192
|
+
type: this._type,
|
|
193
|
+
name: this._name,
|
|
194
|
+
email: this._email.toString(),
|
|
195
|
+
publicKey: this._publicKey.toString('base64'),
|
|
196
|
+
creatorId: constants_1.Constants.idProvider.serialize((0, types_1.toUint8Array)(this._creatorId)),
|
|
197
|
+
dateCreated: this._dateCreated.toISOString(),
|
|
198
|
+
dateUpdated: this._dateUpdated.toISOString(),
|
|
199
|
+
};
|
|
200
|
+
return JSON.stringify(storage);
|
|
201
|
+
}
|
|
202
|
+
dispose() {
|
|
203
|
+
// Ensure secret material is zeroized when disposing
|
|
204
|
+
try {
|
|
205
|
+
this._privateKey?.dispose();
|
|
206
|
+
}
|
|
207
|
+
finally {
|
|
208
|
+
this.unloadWalletAndPrivateKey();
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
async *encryptDataStream(source, options) {
|
|
212
|
+
const targetPublicKey = options?.recipientPublicKey || this._publicKey;
|
|
213
|
+
const stream = new encryption_stream_1.EncryptionStream(this._eciesService);
|
|
214
|
+
for await (const chunk of stream.encryptStream(source, targetPublicKey, {
|
|
215
|
+
onProgress: options?.onProgress,
|
|
216
|
+
signal: options?.signal,
|
|
217
|
+
})) {
|
|
218
|
+
yield chunk;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
async *decryptDataStream(source, options) {
|
|
222
|
+
if (!this._privateKey) {
|
|
223
|
+
throw new NodeMemberError((0, ecies_i18n_factory_1.getNodeEciesTranslation)(ecies_i18n_factory_1.NodeEciesStringKey.Error_Member_MissingPrivateKey), ecies_lib_1.MemberErrorType.MissingPrivateKey);
|
|
224
|
+
}
|
|
225
|
+
const stream = new encryption_stream_1.EncryptionStream(this._eciesService);
|
|
226
|
+
for await (const chunk of stream.decryptStream(source, Buffer.from(this._privateKey.value), {
|
|
227
|
+
onProgress: options?.onProgress,
|
|
228
|
+
signal: options?.signal,
|
|
229
|
+
})) {
|
|
230
|
+
yield chunk;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
static fromJson(json,
|
|
234
|
+
// Add injected services as parameters
|
|
235
|
+
eciesService) {
|
|
236
|
+
const storage = JSON.parse(json);
|
|
237
|
+
const email = new ecies_lib_1.EmailString(storage.email);
|
|
238
|
+
// Pass injected services to constructor
|
|
239
|
+
const dateCreated = new Date(storage.dateCreated);
|
|
240
|
+
return new Member(eciesService, storage.type, storage.name, email, Buffer.from(storage.publicKey, 'base64'), undefined, undefined, Buffer.from(constants_1.Constants.idProvider.deserialize(storage.id)), dateCreated, new Date(storage.dateUpdated), Buffer.from(constants_1.Constants.idProvider.deserialize(storage.creatorId)));
|
|
241
|
+
}
|
|
242
|
+
static fromMnemonic(mnemonic, eciesService, memberType = ecies_lib_1.MemberType.User, name = 'Test User', email = new ecies_lib_1.EmailString('test@example.com')) {
|
|
243
|
+
const { wallet } = eciesService.walletAndSeedFromMnemonic(mnemonic);
|
|
244
|
+
const privateKey = wallet.getPrivateKey();
|
|
245
|
+
const publicKey = secp256k1_1.secp256k1.getPublicKey(privateKey, true);
|
|
246
|
+
const publicKeyWithPrefix = Buffer.from(publicKey);
|
|
247
|
+
return new Member(eciesService, memberType, name, email, publicKeyWithPrefix, new ecies_lib_1.SecureBuffer(privateKey), wallet);
|
|
248
|
+
}
|
|
249
|
+
static newMember(
|
|
250
|
+
// Add injected services as parameters
|
|
251
|
+
eciesService,
|
|
252
|
+
// Original parameters
|
|
253
|
+
type, name, email, forceMnemonic, createdBy) {
|
|
254
|
+
// Validate inputs first
|
|
255
|
+
if (!name || name.length == 0) {
|
|
256
|
+
throw new NodeMemberError((0, ecies_i18n_factory_1.getNodeEciesTranslation)(ecies_i18n_factory_1.NodeEciesStringKey.Error_Member_MissingMemberName), ecies_lib_1.MemberErrorType.MissingMemberName);
|
|
257
|
+
}
|
|
258
|
+
if (name.trim() != name) {
|
|
259
|
+
throw new NodeMemberError((0, ecies_i18n_factory_1.getNodeEciesTranslation)(ecies_i18n_factory_1.NodeEciesStringKey.Error_Member_InvalidMemberNameWhitespace), ecies_lib_1.MemberErrorType.InvalidMemberNameWhitespace);
|
|
260
|
+
}
|
|
261
|
+
if (!email || email.toString().length == 0) {
|
|
262
|
+
throw new NodeMemberError((0, ecies_i18n_factory_1.getNodeEciesTranslation)(ecies_i18n_factory_1.NodeEciesStringKey.Error_Member_MissingEmail), ecies_lib_1.MemberErrorType.MissingEmail);
|
|
263
|
+
}
|
|
264
|
+
if (email.toString().trim() != email.toString()) {
|
|
265
|
+
throw new NodeMemberError((0, ecies_i18n_factory_1.getNodeEciesTranslation)(ecies_i18n_factory_1.NodeEciesStringKey.Error_Member_InvalidEmailWhitespace), ecies_lib_1.MemberErrorType.InvalidEmailWhitespace);
|
|
266
|
+
}
|
|
267
|
+
// Use injected services
|
|
268
|
+
const mnemonic = forceMnemonic ?? eciesService.generateNewMnemonic();
|
|
269
|
+
const { wallet } = eciesService.walletAndSeedFromMnemonic(mnemonic);
|
|
270
|
+
// Get private key from wallet
|
|
271
|
+
const privateKey = wallet.getPrivateKey();
|
|
272
|
+
// Get public key with 0x04 prefix
|
|
273
|
+
const publicKey = secp256k1_1.secp256k1.getPublicKey(privateKey, true);
|
|
274
|
+
const publicKeyWithPrefix = Buffer.from(publicKey);
|
|
275
|
+
const newId = Buffer.from(constants_1.Constants.idProvider.generate());
|
|
276
|
+
const dateCreated = new Date();
|
|
277
|
+
return {
|
|
278
|
+
// Pass injected services to constructor
|
|
279
|
+
member: new Member(eciesService, type, name, email, publicKeyWithPrefix, new ecies_lib_1.SecureBuffer(privateKey), wallet, newId, dateCreated, dateCreated, createdBy ?? newId),
|
|
280
|
+
mnemonic,
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
exports.Member = Member;
|
|
285
|
+
//# sourceMappingURL=member.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"member.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/member.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { IConstants } from '../interfaces/constants';
|
|
2
|
+
export declare class AESGCMService {
|
|
3
|
+
private readonly algorithmName;
|
|
4
|
+
private readonly mode;
|
|
5
|
+
private readonly keyBits;
|
|
6
|
+
private readonly ivSize;
|
|
7
|
+
private readonly keyringAlgorithmConfiguration;
|
|
8
|
+
constructor(constants?: IConstants);
|
|
9
|
+
get ALGORITHM_NAME(): string;
|
|
10
|
+
get MODE(): string;
|
|
11
|
+
get KEY_BITS(): number;
|
|
12
|
+
/**
|
|
13
|
+
* Encrypt data using AES-GCM
|
|
14
|
+
* @param data Data to encrypt
|
|
15
|
+
* @param key Key to use for encryption (must be 16, 24 or 32 bytes for AES)
|
|
16
|
+
* @param authTag Whether to return separate auth tag
|
|
17
|
+
* @returns Encrypted data with IV and optional separate auth tag
|
|
18
|
+
*/
|
|
19
|
+
encrypt(data: Buffer, key: Buffer, authTag?: boolean, aad?: Buffer): {
|
|
20
|
+
encrypted: Buffer;
|
|
21
|
+
iv: Buffer;
|
|
22
|
+
tag?: Buffer;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Combine encrypted data and auth tag into a single Buffer
|
|
26
|
+
* @param encryptedData The encrypted data
|
|
27
|
+
* @param authTag The authentication tag
|
|
28
|
+
* @returns The combined Buffer
|
|
29
|
+
*/
|
|
30
|
+
combineEncryptedDataAndTag(encryptedData: Buffer, authTag: Buffer): Buffer;
|
|
31
|
+
/**
|
|
32
|
+
* Combine IV and encrypted data (with optional auth tag) into a single Buffer
|
|
33
|
+
* @param iv The initialization vector
|
|
34
|
+
* @param encryptedDataWithTag The encrypted data with auth tag already appended (if applicable)
|
|
35
|
+
* @returns The combined Buffer
|
|
36
|
+
*/
|
|
37
|
+
combineIvAndEncryptedData(iv: Buffer, encryptedDataWithTag: Buffer): Buffer;
|
|
38
|
+
/**
|
|
39
|
+
* Combine IV, encrypted data and auth tag into a single Buffer
|
|
40
|
+
* @param iv The initialization vector
|
|
41
|
+
* @param encryptedData The encrypted data
|
|
42
|
+
* @param authTag The authentication tag
|
|
43
|
+
* @returns The combined Buffer
|
|
44
|
+
*/
|
|
45
|
+
combineIvTagAndEncryptedData(iv: Buffer, encryptedData: Buffer, authTag: Buffer): Buffer;
|
|
46
|
+
/**
|
|
47
|
+
* Split combined encrypted data back into its components
|
|
48
|
+
* @param combinedData The combined data containing IV, encrypted data, and optionally auth tag
|
|
49
|
+
* @param hasAuthTag Whether the combined data includes an authentication tag
|
|
50
|
+
* @returns Object containing the split components
|
|
51
|
+
*/
|
|
52
|
+
splitEncryptedData(combinedData: Buffer, hasAuthTag?: boolean): {
|
|
53
|
+
iv: Buffer;
|
|
54
|
+
encryptedDataWithTag: Buffer;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Decrypt data using AES-GCM
|
|
58
|
+
* @param iv The initialization vector
|
|
59
|
+
* @param encryptedData Data to decrypt (with auth tag appended)
|
|
60
|
+
* @param key Key to use for decryption (must be 16, 24 or 32 bytes for AES)
|
|
61
|
+
* @param authTag Whether the encrypted data includes an authentication tag
|
|
62
|
+
* @returns Decrypted data
|
|
63
|
+
*/
|
|
64
|
+
decrypt(iv: Buffer, encryptedData: Buffer, key: Buffer, authTag?: boolean, aad?: Buffer): Buffer;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=aes-gcm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aes-gcm.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/services/aes-gcm.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAQrD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAiB;gBAEnD,SAAS,GAAE,UAAsB;IAS7C,IAAW,cAAc,IAAI,MAAM,CAElC;IAED,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED;;;;;;OAMG;IACI,OAAO,CACZ,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,OAAe,EACxB,GAAG,CAAC,EAAE,MAAM,GACX;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE;IAyDlD;;;;;OAKG;IACI,0BAA0B,CAC/B,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,GACd,MAAM;IAIT;;;;;OAKG;IACI,yBAAyB,CAC9B,EAAE,EAAE,MAAM,EACV,oBAAoB,EAAE,MAAM,GAC3B,MAAM;IAIT;;;;;;OAMG;IACI,4BAA4B,CACjC,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,GACd,MAAM;IAQT;;;;;OAKG;IACI,kBAAkB,CACvB,YAAY,EAAE,MAAM,EACpB,UAAU,GAAE,OAAc,GACzB;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAA;KAAE;IAqB/C;;;;;;;OAOG;IACI,OAAO,CACZ,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,OAAe,EACxB,GAAG,CAAC,EAAE,MAAM,GACX,MAAM;CA+DV"}
|