@digitaldefiance/node-ecies-lib 4.4.9 → 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,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ECIESService = void 0;
|
|
4
|
+
const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
|
|
5
|
+
// Import all the modular components
|
|
6
|
+
const constants_1 = require("../../constants");
|
|
7
|
+
const crypto_core_1 = require("./crypto-core");
|
|
8
|
+
const multi_recipient_1 = require("./multi-recipient");
|
|
9
|
+
const signature_1 = require("./signature");
|
|
10
|
+
const single_recipient_1 = require("./single-recipient");
|
|
11
|
+
const utilities_1 = require("./utilities");
|
|
12
|
+
/**
|
|
13
|
+
* Unified ECIES service that integrates all the modular components
|
|
14
|
+
*/
|
|
15
|
+
class ECIESService {
|
|
16
|
+
_config;
|
|
17
|
+
cryptoCore;
|
|
18
|
+
signature;
|
|
19
|
+
singleRecipient;
|
|
20
|
+
multiRecipient;
|
|
21
|
+
utilities;
|
|
22
|
+
constructor(config, eciesParams = constants_1.Constants.ECIES) {
|
|
23
|
+
const actualConfig = config || {};
|
|
24
|
+
const eciesConsts = eciesParams || constants_1.Constants.ECIES;
|
|
25
|
+
this._config = {
|
|
26
|
+
...config,
|
|
27
|
+
curveName: eciesConsts.CURVE_NAME,
|
|
28
|
+
primaryKeyDerivationPath: eciesConsts.PRIMARY_KEY_DERIVATION_PATH,
|
|
29
|
+
mnemonicStrength: eciesConsts.MNEMONIC_STRENGTH,
|
|
30
|
+
symmetricAlgorithm: eciesConsts.SYMMETRIC.ALGORITHM,
|
|
31
|
+
symmetricKeyBits: eciesConsts.SYMMETRIC.KEY_BITS,
|
|
32
|
+
symmetricKeyMode: eciesConsts.SYMMETRIC.MODE,
|
|
33
|
+
...actualConfig,
|
|
34
|
+
};
|
|
35
|
+
// Initialize all components
|
|
36
|
+
this.cryptoCore = new crypto_core_1.EciesCryptoCore(this._config, eciesParams);
|
|
37
|
+
this.signature = new signature_1.EciesSignature(this.cryptoCore);
|
|
38
|
+
this.singleRecipient = new single_recipient_1.EciesSingleRecipientCore(this._config);
|
|
39
|
+
this.multiRecipient = new multi_recipient_1.EciesMultiRecipient(this.cryptoCore);
|
|
40
|
+
this.utilities = new utilities_1.EciesUtilities();
|
|
41
|
+
}
|
|
42
|
+
get core() {
|
|
43
|
+
return this.cryptoCore;
|
|
44
|
+
}
|
|
45
|
+
get config() {
|
|
46
|
+
return this._config;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The name of the elliptic curve used for ECIES encryption/decryption
|
|
50
|
+
*/
|
|
51
|
+
get curveName() {
|
|
52
|
+
return this._config.curveName;
|
|
53
|
+
}
|
|
54
|
+
// === Key Management Methods ===
|
|
55
|
+
generateNewMnemonic() {
|
|
56
|
+
return this.cryptoCore.generateNewMnemonic();
|
|
57
|
+
}
|
|
58
|
+
walletFromSeed(seed) {
|
|
59
|
+
return this.cryptoCore.walletFromSeed(seed);
|
|
60
|
+
}
|
|
61
|
+
walletAndSeedFromMnemonic(mnemonic) {
|
|
62
|
+
return this.cryptoCore.walletAndSeedFromMnemonic(mnemonic);
|
|
63
|
+
}
|
|
64
|
+
walletToSimpleKeyPairBuffer(wallet) {
|
|
65
|
+
return this.cryptoCore.walletToSimpleKeyPairBuffer(wallet);
|
|
66
|
+
}
|
|
67
|
+
seedToSimpleKeyPairBuffer(seed) {
|
|
68
|
+
return this.cryptoCore.seedToSimpleKeyPairBuffer(seed);
|
|
69
|
+
}
|
|
70
|
+
mnemonicToSimpleKeyPairBuffer(mnemonic) {
|
|
71
|
+
return this.cryptoCore.mnemonicToSimpleKeyPairBuffer(mnemonic);
|
|
72
|
+
}
|
|
73
|
+
mnemonicToSimpleKeyPair(mnemonic) {
|
|
74
|
+
return this.mnemonicToSimpleKeyPairBuffer(mnemonic);
|
|
75
|
+
}
|
|
76
|
+
// === Core Encryption/Decryption Methods ===
|
|
77
|
+
encryptSimpleOrSingle(encryptSimple, receiverPublicKey, message, preamble = Buffer.alloc(0)) {
|
|
78
|
+
return this.singleRecipient.encrypt(encryptSimple, receiverPublicKey, message, preamble);
|
|
79
|
+
}
|
|
80
|
+
parseSingleEncryptedHeader(encryptionType, data, preambleSize = 0, options) {
|
|
81
|
+
const { header } = this.singleRecipient.parseEncryptedMessage(encryptionType, data, preambleSize, options);
|
|
82
|
+
return header;
|
|
83
|
+
}
|
|
84
|
+
decryptSimpleOrSingleWithHeader(decryptSimple, privateKey, encryptedData, preambleSize = 0, options) {
|
|
85
|
+
return this.singleRecipient.decryptWithHeader(decryptSimple
|
|
86
|
+
? ecies_lib_1.EciesEncryptionTypeEnum.Simple
|
|
87
|
+
: ecies_lib_1.EciesEncryptionTypeEnum.Single, privateKey, encryptedData, preambleSize, options);
|
|
88
|
+
}
|
|
89
|
+
decryptSimpleOrSingleWithHeaderEx(encryptionType, privateKey, encryptedData, preambleSize = 0, options) {
|
|
90
|
+
return this.singleRecipient.decryptWithHeaderEx(encryptionType, privateKey, encryptedData, preambleSize, options);
|
|
91
|
+
}
|
|
92
|
+
decryptSingleWithComponents(privateKey, ephemeralPublicKey, iv, authTag, encrypted, aad) {
|
|
93
|
+
const decrypted = this.singleRecipient.decryptWithComponents(privateKey, ephemeralPublicKey, iv, authTag, encrypted, aad);
|
|
94
|
+
// Return an object with a 'decrypted' property for compatibility with existing code
|
|
95
|
+
return { decrypted, ciphertextLength: encrypted.length };
|
|
96
|
+
}
|
|
97
|
+
// === Signature Methods ===
|
|
98
|
+
signMessage(privateKey, data) {
|
|
99
|
+
return this.signature.signMessage(privateKey, data);
|
|
100
|
+
}
|
|
101
|
+
verifyMessage(publicKey, data, signature) {
|
|
102
|
+
return this.signature.verifyMessage(publicKey, data, signature);
|
|
103
|
+
}
|
|
104
|
+
signatureStringToSignatureBuffer(signatureString) {
|
|
105
|
+
return this.signature.signatureStringToSignatureBuffer(signatureString);
|
|
106
|
+
}
|
|
107
|
+
signatureBufferToSignatureString(signatureBuffer) {
|
|
108
|
+
return this.signature.signatureBufferToSignatureString(signatureBuffer);
|
|
109
|
+
}
|
|
110
|
+
// === Multi-Recipient Methods ===
|
|
111
|
+
async encryptMultiple(recipients, message, preamble) {
|
|
112
|
+
return this.multiRecipient.encryptMultiple(recipients, message, preamble);
|
|
113
|
+
}
|
|
114
|
+
decryptMultipleECIEForRecipient(encryptedData, recipient) {
|
|
115
|
+
return this.multiRecipient.decryptMultipleECIEForRecipient(encryptedData, recipient);
|
|
116
|
+
}
|
|
117
|
+
calculateECIESMultipleRecipientOverhead(recipientCount, includeMessageOverhead) {
|
|
118
|
+
return this.multiRecipient.calculateECIESMultipleRecipientOverhead(recipientCount, includeMessageOverhead);
|
|
119
|
+
}
|
|
120
|
+
buildECIESMultipleRecipientHeader(data) {
|
|
121
|
+
return this.multiRecipient.buildECIESMultipleRecipientHeader(data);
|
|
122
|
+
}
|
|
123
|
+
parseMultiEncryptedHeader(data) {
|
|
124
|
+
return this.multiRecipient.parseMultiEncryptedHeader(data);
|
|
125
|
+
}
|
|
126
|
+
parseMultiEncryptedBuffer(data) {
|
|
127
|
+
return this.multiRecipient.parseMultiEncryptedBuffer(data);
|
|
128
|
+
}
|
|
129
|
+
// === Utility Methods ===
|
|
130
|
+
computeEncryptedLengthFromDataLength(dataLength, encryptionMode, recipientCount) {
|
|
131
|
+
return this.utilities.computeEncryptedLengthFromDataLength(dataLength, encryptionMode, recipientCount);
|
|
132
|
+
}
|
|
133
|
+
computeDecryptedLengthFromEncryptedDataLength(encryptedDataLength, padding) {
|
|
134
|
+
return this.utilities.computeDecryptedLengthFromEncryptedDataLength(encryptedDataLength, padding);
|
|
135
|
+
}
|
|
136
|
+
encrypt(encryptionType, recipient, message, preamble) {
|
|
137
|
+
if (encryptionType === 'multiple') {
|
|
138
|
+
throw new Error((0, ecies_lib_1.getEciesI18nEngine)().translate(ecies_lib_1.EciesComponentId, ecies_lib_1.EciesStringKey.Error_ECIESError_MultipleEncryptionTypeNotSupportedInSingleRecipientMode));
|
|
139
|
+
}
|
|
140
|
+
return this.singleRecipient.encrypt(encryptionType === 'simple', recipient.publicKey, message, preamble);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
exports.ECIESService = ECIESService;
|
|
144
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/services/ecies/service.ts"],"names":[],"mappings":";;;AAAA,0DAUoC;AAGpC,oCAAoC;AACpC,+CAA4C;AAO5C,+CAAgD;AAChD,uDAAwD;AACxD,2CAA6C;AAC7C,yDAA8D;AAC9D,2CAA6C;AAE7C;;GAEG;AACH,MAAa,YAAY;IACJ,OAAO,CAAe;IACtB,UAAU,CAAkB;IAC5B,SAAS,CAAiB;IAC1B,eAAe,CAA2B;IAC1C,cAAc,CAAsB;IACpC,SAAS,CAAiB;IAE7C,YACE,MAA8B,EAC9B,cAA+B,qBAAS,CAAC,KAAK;QAE9C,MAAM,YAAY,GAAG,MAAM,IAAI,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,WAAW,IAAI,qBAAS,CAAC,KAAK,CAAC;QAEnD,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,MAAM;YACT,SAAS,EAAE,WAAW,CAAC,UAAU;YACjC,wBAAwB,EAAE,WAAW,CAAC,2BAA2B;YACjE,gBAAgB,EAAE,WAAW,CAAC,iBAAiB;YAC/C,kBAAkB,EAAE,WAAW,CAAC,SAAS,CAAC,SAAS;YACnD,gBAAgB,EAAE,WAAW,CAAC,SAAS,CAAC,QAAQ;YAChD,gBAAgB,EAAE,WAAW,CAAC,SAAS,CAAC,IAAI;YAC5C,GAAG,YAAY;SAChB,CAAC;QAEF,4BAA4B;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,6BAAe,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,GAAG,IAAI,0BAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,CAAC,eAAe,GAAG,IAAI,2CAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,cAAc,GAAG,IAAI,qCAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS,GAAG,IAAI,0BAAc,EAAE,CAAC;IACxC,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IAChC,CAAC;IAED,iCAAiC;IAE1B,mBAAmB;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;IAC/C,CAAC;IAEM,cAAc,CAAC,IAAY;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEM,yBAAyB,CAAC,QAAsB;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAEM,2BAA2B,CAAC,MAAc;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAEM,yBAAyB,CAAC,IAAY;QAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAEM,6BAA6B,CAAC,QAAsB;QACzD,OAAO,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC;IAEM,uBAAuB,CAAC,QAAsB;QACnD,OAAO,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,6CAA6C;IAEtC,qBAAqB,CAC1B,aAAsB,EACtB,iBAAyB,EACzB,OAAe,EACf,WAAmB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAElC,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CACjC,aAAa,EACb,iBAAiB,EACjB,OAAO,EACP,QAAQ,CACT,CAAC;IACJ,CAAC;IAEM,0BAA0B,CAC/B,cAAuC,EACvC,IAAY,EACZ,eAAuB,CAAC,EACxB,OAEC;QAED,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAC3D,cAAc,EACd,IAAI,EACJ,YAAY,EACZ,OAAO,CACR,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,+BAA+B,CACpC,aAAsB,EACtB,UAAkB,EAClB,aAAqB,EACrB,eAAuB,CAAC,EACxB,OAEC;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAC3C,aAAa;YACX,CAAC,CAAC,mCAAuB,CAAC,MAAM;YAChC,CAAC,CAAC,mCAAuB,CAAC,MAAM,EAClC,UAAU,EACV,aAAa,EACb,YAAY,EACZ,OAAO,CACR,CAAC;IACJ,CAAC;IAEM,iCAAiC,CACtC,cAAuC,EACvC,UAAkB,EAClB,aAAqB,EACrB,eAAuB,CAAC,EACxB,OAEC;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAC7C,cAAc,EACd,UAAU,EACV,aAAa,EACb,YAAY,EACZ,OAAO,CACR,CAAC;IACJ,CAAC;IAEM,2BAA2B,CAChC,UAAkB,EAClB,kBAA0B,EAC1B,EAAU,EACV,OAAe,EACf,SAAiB,EACjB,GAAY;QAEZ,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAC1D,UAAU,EACV,kBAAkB,EAClB,EAAE,EACF,OAAO,EACP,SAAS,EACT,GAAG,CACJ,CAAC;QAEF,oFAAoF;QACpF,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;IAC3D,CAAC;IAED,4BAA4B;IAErB,WAAW,CAAC,UAAkB,EAAE,IAAY;QACjD,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IAEM,aAAa,CAClB,SAAiB,EACjB,IAAY,EACZ,SAA0B;QAE1B,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC;IAEM,gCAAgC,CACrC,eAA0B;QAE1B,OAAO,IAAI,CAAC,SAAS,CAAC,gCAAgC,CAAC,eAAe,CAAC,CAAC;IAC1E,CAAC;IAEM,gCAAgC,CACrC,eAAgC;QAEhC,OAAO,IAAI,CAAC,SAAS,CAAC,gCAAgC,CAAC,eAAe,CAAC,CAAC;IAC1E,CAAC;IAED,kCAAkC;IAC3B,KAAK,CAAC,eAAe,CAC1B,UAA0B,EAC1B,OAAe,EACf,QAAiB;QAEjB,OAAO,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAEM,+BAA+B,CACpC,aAAqC,EACrC,SAAkB;QAElB,OAAO,IAAI,CAAC,cAAc,CAAC,+BAA+B,CACxD,aAAa,EACb,SAAS,CACV,CAAC;IACJ,CAAC;IAEM,uCAAuC,CAC5C,cAAsB,EACtB,sBAA+B;QAE/B,OAAO,IAAI,CAAC,cAAc,CAAC,uCAAuC,CAChE,cAAc,EACd,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAEM,iCAAiC,CACtC,IAA4B;QAE5B,OAAO,IAAI,CAAC,cAAc,CAAC,iCAAiC,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;IAEM,yBAAyB,CAAC,IAAY;QAC3C,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAEM,yBAAyB,CAAC,IAAY;QAC3C,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,0BAA0B;IAEnB,oCAAoC,CACzC,UAAkB,EAClB,cAAmC,EACnC,cAAuB;QAEvB,OAAO,IAAI,CAAC,SAAS,CAAC,oCAAoC,CACxD,UAAU,EACV,cAAc,EACd,cAAc,CACf,CAAC;IACJ,CAAC;IAEM,6CAA6C,CAClD,mBAA2B,EAC3B,OAAgB;QAEhB,OAAO,IAAI,CAAC,SAAS,CAAC,6CAA6C,CACjE,mBAAmB,EACnB,OAAO,CACR,CAAC;IACJ,CAAC;IAEM,OAAO,CACZ,cAAmC,EACnC,SAAkB,EAClB,OAAe,EACf,QAAiB;QAEjB,IAAI,cAAc,KAAK,UAAU,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,IAAA,8BAAkB,GAAE,CAAC,SAAS,CAC5B,4BAAgB,EAChB,0BAAc,CAAC,wEAAwE,CACxF,CACF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CACjC,cAAc,KAAK,QAAQ,EAC3B,SAAS,CAAC,SAAS,EACnB,OAAO,EACP,QAAQ,CACT,CAAC;IACJ,CAAC;CACF;AA7RD,oCA6RC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { HexString } from '@digitaldefiance/ecies-lib';
|
|
2
|
+
import { SignatureBuffer, SignatureString } from '../../types';
|
|
3
|
+
import { EciesCryptoCore } from './crypto-core';
|
|
4
|
+
/**
|
|
5
|
+
* Signature-related functions for ECIES
|
|
6
|
+
*/
|
|
7
|
+
export declare class EciesSignature {
|
|
8
|
+
private readonly cryptoCore;
|
|
9
|
+
constructor(cryptoCore: EciesCryptoCore);
|
|
10
|
+
/**
|
|
11
|
+
* Signs arbitrary binary data with the given private key.
|
|
12
|
+
* @param privateKey The private key to sign the message with.
|
|
13
|
+
* @param data The data to sign.
|
|
14
|
+
* @returns The signature (64 bytes: r + s).
|
|
15
|
+
*/
|
|
16
|
+
signMessage(privateKey: Buffer, data: Buffer): SignatureBuffer;
|
|
17
|
+
/**
|
|
18
|
+
* Verifies arbitrary binary data with the given public key.
|
|
19
|
+
* @param publicKey The public key to verify the message with.
|
|
20
|
+
* @param data The data to verify.
|
|
21
|
+
* @param signature The signature to verify (64 bytes: r + s).
|
|
22
|
+
* @returns True if the signature is valid, false otherwise.
|
|
23
|
+
*/
|
|
24
|
+
verifyMessage(publicKey: Buffer, data: Buffer, signature: SignatureBuffer): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Converts a signature string to a signature buffer.
|
|
27
|
+
* @param signatureString - The signature string to convert.
|
|
28
|
+
* @returns The signature buffer.
|
|
29
|
+
*/
|
|
30
|
+
signatureStringToSignatureBuffer(signatureString: HexString): SignatureBuffer;
|
|
31
|
+
/**
|
|
32
|
+
* Converts a signature buffer to a signature string.
|
|
33
|
+
* @param signatureBuffer - The signature buffer to convert.
|
|
34
|
+
* @returns The signature string.
|
|
35
|
+
*/
|
|
36
|
+
signatureBufferToSignatureString(signatureBuffer: SignatureBuffer): SignatureString;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=signature.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/services/ecies/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EACV,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;gBAEjC,UAAU,EAAE,eAAe;IAIvC;;;;;OAKG;IACI,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe;IASrE;;;;;;OAMG;IACI,aAAa,CAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,eAAe,GACzB,OAAO;IAsBV;;;;OAIG;IACI,gCAAgC,CACrC,eAAe,EAAE,SAAS,GACzB,eAAe;IAIlB;;;;OAIG;IACI,gCAAgC,CACrC,eAAe,EAAE,eAAe,GAC/B,eAAe;CAGnB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EciesSignature = void 0;
|
|
4
|
+
const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
|
|
5
|
+
const secp256k1_js_1 = require("@noble/curves/secp256k1.js");
|
|
6
|
+
const sha2_js_1 = require("@noble/hashes/sha2.js");
|
|
7
|
+
const ecies_i18n_factory_1 = require("../../i18n/ecies-i18n-factory");
|
|
8
|
+
/**
|
|
9
|
+
* Signature-related functions for ECIES
|
|
10
|
+
*/
|
|
11
|
+
class EciesSignature {
|
|
12
|
+
cryptoCore;
|
|
13
|
+
constructor(cryptoCore) {
|
|
14
|
+
this.cryptoCore = cryptoCore;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Signs arbitrary binary data with the given private key.
|
|
18
|
+
* @param privateKey The private key to sign the message with.
|
|
19
|
+
* @param data The data to sign.
|
|
20
|
+
* @returns The signature (64 bytes: r + s).
|
|
21
|
+
*/
|
|
22
|
+
signMessage(privateKey, data) {
|
|
23
|
+
const hash = (0, sha2_js_1.sha256)(data);
|
|
24
|
+
const signature = secp256k1_js_1.secp256k1.sign(hash, privateKey, {
|
|
25
|
+
format: 'compact',
|
|
26
|
+
extraEntropy: false,
|
|
27
|
+
});
|
|
28
|
+
return Buffer.from(signature);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Verifies arbitrary binary data with the given public key.
|
|
32
|
+
* @param publicKey The public key to verify the message with.
|
|
33
|
+
* @param data The data to verify.
|
|
34
|
+
* @param signature The signature to verify (64 bytes: r + s).
|
|
35
|
+
* @returns True if the signature is valid, false otherwise.
|
|
36
|
+
*/
|
|
37
|
+
verifyMessage(publicKey, data, signature) {
|
|
38
|
+
if (signature.length !== 64) {
|
|
39
|
+
throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.InvalidSignature, (0, ecies_i18n_factory_1.createEciesTranslationEngine)());
|
|
40
|
+
}
|
|
41
|
+
// Normalize and validate the public key
|
|
42
|
+
try {
|
|
43
|
+
publicKey = this.cryptoCore.normalizePublicKey(publicKey);
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.InvalidSenderPublicKey, (0, ecies_i18n_factory_1.createEciesTranslationEngine)());
|
|
47
|
+
}
|
|
48
|
+
const hash = (0, sha2_js_1.sha256)(data);
|
|
49
|
+
return secp256k1_js_1.secp256k1.verify(signature, hash, publicKey);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Converts a signature string to a signature buffer.
|
|
53
|
+
* @param signatureString - The signature string to convert.
|
|
54
|
+
* @returns The signature buffer.
|
|
55
|
+
*/
|
|
56
|
+
signatureStringToSignatureBuffer(signatureString) {
|
|
57
|
+
return Buffer.from(signatureString, 'hex');
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Converts a signature buffer to a signature string.
|
|
61
|
+
* @param signatureBuffer - The signature buffer to convert.
|
|
62
|
+
* @returns The signature string.
|
|
63
|
+
*/
|
|
64
|
+
signatureBufferToSignatureString(signatureBuffer) {
|
|
65
|
+
return signatureBuffer.toString('hex');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.EciesSignature = EciesSignature;
|
|
69
|
+
//# sourceMappingURL=signature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/services/ecies/signature.ts"],"names":[],"mappings":";;;AAAA,0DAIoC;AACpC,6DAAuD;AACvD,mDAA+C;AAC/C,sEAA6E;AAI7E;;GAEG;AACH,MAAa,cAAc;IACR,UAAU,CAAkB;IAE7C,YAAY,UAA2B;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,UAAkB,EAAE,IAAY;QACjD,MAAM,IAAI,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,SAAS,GAAG,wBAAS,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE;YACjD,MAAM,EAAE,SAAS;YACjB,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAoB,CAAC;IACnD,CAAC;IAED;;;;;;OAMG;IACI,aAAa,CAClB,SAAiB,EACjB,IAAY,EACZ,SAA0B;QAE1B,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,sBAAU,CAClB,8BAAkB,CAAC,gBAAgB,EACnC,IAAA,iDAA4B,GAAE,CAC/B,CAAC;QACJ,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC;YACH,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,sBAAU,CAClB,8BAAkB,CAAC,sBAAsB,EACzC,IAAA,iDAA4B,GAAE,CAC/B,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,wBAAS,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC;IAED;;;;OAIG;IACI,gCAAgC,CACrC,eAA0B;QAE1B,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAoB,CAAC;IAChE,CAAC;IAED;;;;OAIG;IACI,gCAAgC,CACrC,eAAgC;QAEhC,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAoB,CAAC;IAC5D,CAAC;CACF;AA5ED,wCA4EC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { EciesEncryptionType, EciesEncryptionTypeEnum, IECIESConfig } from '@digitaldefiance/ecies-lib';
|
|
2
|
+
import { ISingleEncryptedParsedHeader } from '../../interfaces/single-encrypted-parsed-header';
|
|
3
|
+
import { EciesCryptoCore } from './crypto-core';
|
|
4
|
+
export declare class EciesSingleRecipientCore {
|
|
5
|
+
protected readonly cryptoCore: EciesCryptoCore;
|
|
6
|
+
protected readonly config: IECIESConfig;
|
|
7
|
+
constructor(config: IECIESConfig);
|
|
8
|
+
/**
|
|
9
|
+
* Get the size of the header for a given encryption type
|
|
10
|
+
* @param encryptionType The encryption type (single, simple, etc.)
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
getHeaderSize(encryptionType: EciesEncryptionType): number;
|
|
14
|
+
/**
|
|
15
|
+
* Encrypt a message with a public key
|
|
16
|
+
* @param encryptSimple Whether to simple encrypt (without crc, length)
|
|
17
|
+
* @param receiverPublicKey The public key of the receiver
|
|
18
|
+
* @param message The message to encrypt
|
|
19
|
+
* @param preamble Optional preamble to prepend to the encrypted message
|
|
20
|
+
* @param options Optional encryption options
|
|
21
|
+
* @param options.recipientCount The number of recipients for multiple encryption mode
|
|
22
|
+
* @returns The encrypted message
|
|
23
|
+
*/
|
|
24
|
+
encrypt(encryptSimple: boolean, receiverPublicKey: Buffer, message: Buffer, preamble?: Buffer): Buffer;
|
|
25
|
+
/**
|
|
26
|
+
* Parse the header from encrypted data
|
|
27
|
+
* @param encryptionType The type of encryption (single, simple, etc.) or undefined if not known
|
|
28
|
+
* @param data The encrypted data
|
|
29
|
+
* @param preambleSize The size of the preamble, if any
|
|
30
|
+
* @param options Optional parsing options
|
|
31
|
+
* @param options.dataLength The expected length of the data
|
|
32
|
+
* @returns The parsed header components
|
|
33
|
+
*/
|
|
34
|
+
parseEncryptedMessage(encryptionType: EciesEncryptionTypeEnum | undefined, data: Buffer, preambleSize?: number, options?: {
|
|
35
|
+
dataLength?: number;
|
|
36
|
+
}): {
|
|
37
|
+
header: ISingleEncryptedParsedHeader;
|
|
38
|
+
data: Buffer;
|
|
39
|
+
remainder: Buffer;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Decrypts data encrypted with ECIES using a header
|
|
43
|
+
* This method maintains backward compatibility with the original implementation
|
|
44
|
+
* by returning just the Buffer. For detailed information, use decryptSingleWithHeaderEx
|
|
45
|
+
* @param encryptionType The type of encryption (single, simple, etc.)
|
|
46
|
+
* @param privateKey The private key to decrypt the data
|
|
47
|
+
* @param encryptedData The data to decrypt
|
|
48
|
+
* @param preambleSize The size of the preamble, if any
|
|
49
|
+
* @param options Optional decryption options
|
|
50
|
+
* @param options.dataLength The expected length of the data
|
|
51
|
+
* @returns The decrypted data buffer
|
|
52
|
+
*/
|
|
53
|
+
decryptWithHeader(encryptionType: EciesEncryptionTypeEnum | undefined, privateKey: Buffer, encryptedData: Buffer, preambleSize?: number, options?: {
|
|
54
|
+
dataLength?: number;
|
|
55
|
+
}): Buffer;
|
|
56
|
+
/**
|
|
57
|
+
* Extended version of decryptSingleWithHeader that provides more detailed information
|
|
58
|
+
* @param encryptionType The type of encryption (single, simple, etc.)
|
|
59
|
+
* @param privateKey The private key to decrypt the data
|
|
60
|
+
* @param encryptedData The data to decrypt
|
|
61
|
+
* @param preambleSize The size of the preamble, if any
|
|
62
|
+
* @param options Optional decryption options
|
|
63
|
+
* @param options.dataLength The expected length of the data
|
|
64
|
+
* @returns The decrypted data and the number of bytes consumed from the input buffer
|
|
65
|
+
*/
|
|
66
|
+
decryptWithHeaderEx(encryptionType: EciesEncryptionTypeEnum | undefined, privateKey: Buffer, encryptedData: Buffer, preambleSize?: number, options?: {
|
|
67
|
+
dataLength?: number;
|
|
68
|
+
}): {
|
|
69
|
+
decrypted: Buffer;
|
|
70
|
+
consumedBytes: number;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Decrypts data encrypted with ECIES using components
|
|
74
|
+
* @param privateKey The private key to decrypt the data
|
|
75
|
+
* @param ephemeralPublicKey The ephemeral public key used to encrypt the data
|
|
76
|
+
* @param iv The initialization vector used to encrypt the data
|
|
77
|
+
* @param authTag The authentication tag used to encrypt the data
|
|
78
|
+
* @param encrypted The encrypted data
|
|
79
|
+
* @returns The decrypted data
|
|
80
|
+
*/
|
|
81
|
+
decryptWithComponents(privateKey: Buffer, ephemeralPublicKey: Buffer, iv: Buffer, authTag: Buffer, encrypted: Buffer, aad?: Buffer): Buffer;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=single-recipient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"single-recipient.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/services/ecies/single-recipient.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EACnB,uBAAuB,EAOvB,YAAY,EAGb,MAAM,4BAA4B,CAAC;AASpC,OAAO,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,qBAAa,wBAAwB;IACnC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IAC/C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;gBAE5B,MAAM,EAAE,YAAY;IAKhC;;;;OAIG;IACI,aAAa,CAAC,cAAc,EAAE,mBAAmB,GAAG,MAAM;IAWjE;;;;;;;;;OASG;IACI,OAAO,CACZ,aAAa,EAAE,OAAO,EACtB,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAwB,GACjC,MAAM;IAsKT;;;;;;;;OAQG;IACI,qBAAqB,CAC1B,cAAc,EAAE,uBAAuB,GAAG,SAAS,EACnD,IAAI,EAAE,MAAM,EACZ,YAAY,GAAE,MAAU,EACxB,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GACA;QAAE,MAAM,EAAE,4BAA4B,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAyN5E;;;;;;;;;;;OAWG;IACI,iBAAiB,CACtB,cAAc,EAAE,uBAAuB,GAAG,SAAS,EACnD,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,YAAY,GAAE,MAAU,EACxB,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GACA,MAAM;IA0BT;;;;;;;;;OASG;IACI,mBAAmB,CACxB,cAAc,EAAE,uBAAuB,GAAG,SAAS,EACnD,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,YAAY,GAAE,MAAU,EACxB,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GACA;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE;IA+D/C;;;;;;;;OAQG;IACI,qBAAqB,CAC1B,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,EAC1B,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,GAAG,CAAC,EAAE,MAAM,GACX,MAAM;CAuIV"}
|