@digitaldefiance/node-ecies-lib 4.4.2 → 4.4.3
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/LICENSE +21 -0
- package/package.json +10 -6
- package/src/builders/ecies-builder.ts +27 -0
- package/src/builders/{index.d.ts → index.ts} +0 -1
- package/src/builders/member-builder.ts +158 -0
- package/src/constants.ts +251 -0
- package/src/core/errors/crypto-error.ts +10 -0
- package/src/core/{index.d.ts → index.ts} +0 -1
- package/src/core/types/result.ts +3 -0
- package/src/enumerations/index.ts +2 -0
- package/src/enumerations/pbkdf2-profile.ts +8 -0
- package/src/i18n/ecies-i18n-factory.ts +111 -0
- package/src/i18n/{index.d.ts → index.ts} +3 -1
- package/src/i18n/node-ecies-i18n-setup.ts +56 -0
- package/src/i18n/node-keys.ts +69 -0
- package/src/i18n/translations/de.ts +54 -0
- package/src/i18n/translations/en-GB.ts +83 -0
- package/src/i18n/translations/en-US.ts +88 -0
- package/src/i18n/translations/es.ts +54 -0
- package/src/i18n/translations/fr.ts +54 -0
- package/src/i18n/translations/{index.d.ts → index.ts} +0 -1
- package/src/i18n/translations/ja.ts +54 -0
- package/src/i18n/translations/uk.ts +54 -0
- package/src/i18n/translations/zh-cn.ts +54 -0
- package/src/{index.d.ts → index.ts} +5 -1
- package/src/interfaces/authenticated-cipher.ts +10 -0
- package/src/interfaces/authenticated-decipher.ts +9 -0
- package/src/interfaces/backend-member-operational.ts +75 -0
- package/src/interfaces/checksum-config.ts +4 -0
- package/src/interfaces/checksum-consts.ts +13 -0
- package/src/interfaces/constants.ts +54 -0
- package/src/interfaces/ecies-consts.ts +99 -0
- package/src/interfaces/encrypted-chunk.ts +12 -0
- package/src/interfaces/encryption-consts.ts +10 -0
- package/src/interfaces/{index.d.ts → index.ts} +0 -1
- package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.ts +7 -0
- package/src/interfaces/keyring-consts.ts +5 -0
- package/src/interfaces/{member-with-mnemonic.d.ts → member-with-mnemonic.ts} +3 -3
- package/src/interfaces/member.ts +76 -0
- package/src/interfaces/{multi-encrypted-message.d.ts → multi-encrypted-message.ts} +5 -5
- package/src/interfaces/multi-encrypted-parsed-header.ts +28 -0
- package/src/interfaces/multi-recipient-chunk.ts +35 -0
- package/src/interfaces/{pbkdf-profiles.d.ts → pbkdf-profiles.ts} +2 -2
- package/src/interfaces/pbkdf2-result.ts +5 -0
- package/src/interfaces/signing-key-private-key-info.ts +12 -0
- package/src/interfaces/{simple-keypair-buffer.d.ts → simple-keypair-buffer.ts} +3 -3
- package/src/interfaces/{simple-keypair.d.ts → simple-keypair.ts} +3 -3
- package/src/interfaces/simple-public-key-only-buffer.ts +3 -0
- package/src/interfaces/simple-public-key-only.ts +3 -0
- package/src/interfaces/single-encrypted-parsed-header.ts +35 -0
- package/src/interfaces/stream-config.ts +9 -0
- package/src/interfaces/stream-progress.ts +7 -0
- package/src/interfaces/{wallet-seed.d.ts → wallet-seed.ts} +3 -3
- package/src/interfaces/wrapped-key-consts.ts +6 -0
- package/src/lib/crypto-container.ts +32 -0
- package/src/lib/{index.d.ts → index.ts} +0 -1
- package/src/lib/invariant-validator.ts +124 -0
- package/src/lib/invariants/{index.d.ts → index.ts} +2 -2
- package/src/lib/invariants/recipient-id-consistency.ts +77 -0
- package/src/member.ts +511 -0
- package/src/services/aes-gcm.ts +260 -0
- package/src/services/chunk-processor.ts +47 -0
- package/src/services/ecies/crypto-core.ts +319 -0
- package/src/services/ecies/file.ts +171 -0
- package/src/services/ecies/{index.d.ts → index.ts} +0 -1
- package/src/services/ecies/multi-recipient.ts +782 -0
- package/src/services/ecies/service.ts +316 -0
- package/src/services/ecies/signature.ts +91 -0
- package/src/services/ecies/single-recipient.ts +743 -0
- package/src/services/ecies/utilities.ts +128 -0
- package/src/services/encryption-stream.ts +432 -0
- package/src/services/{index.d.ts → index.ts} +0 -1
- package/src/services/multi-recipient-processor.ts +505 -0
- package/src/services/pbkdf2.ts +304 -0
- package/src/services/progress-tracker.ts +43 -0
- package/src/test-mocks/index.ts +1 -0
- package/src/test-mocks/mock-backend-member.ts +195 -0
- package/src/testing.ts +2 -0
- package/src/types/id-guards.ts +91 -0
- package/src/types/index.ts +1 -0
- package/src/{types.d.ts → types.ts} +28 -9
- package/src/utils.ts +124 -0
- package/src/builders/ecies-builder.d.ts +0 -11
- package/src/builders/ecies-builder.d.ts.map +0 -1
- package/src/builders/ecies-builder.js +0 -26
- package/src/builders/ecies-builder.js.map +0 -1
- package/src/builders/index.d.ts.map +0 -1
- package/src/builders/index.js +0 -6
- package/src/builders/index.js.map +0 -1
- package/src/builders/member-builder.d.ts +0 -47
- package/src/builders/member-builder.d.ts.map +0 -1
- package/src/builders/member-builder.js +0 -99
- package/src/builders/member-builder.js.map +0 -1
- package/src/constants.d.ts +0 -38
- package/src/constants.d.ts.map +0 -1
- package/src/constants.js +0 -183
- package/src/constants.js.map +0 -1
- package/src/core/errors/crypto-error.d.ts +0 -6
- package/src/core/errors/crypto-error.d.ts.map +0 -1
- package/src/core/errors/crypto-error.js +0 -15
- package/src/core/errors/crypto-error.js.map +0 -1
- package/src/core/index.d.ts.map +0 -1
- package/src/core/index.js +0 -6
- package/src/core/index.js.map +0 -1
- package/src/core/types/result.d.ts +0 -8
- package/src/core/types/result.d.ts.map +0 -1
- package/src/core/types/result.js +0 -3
- package/src/core/types/result.js.map +0 -1
- package/src/enumerations/index.d.ts +0 -2
- package/src/enumerations/index.d.ts.map +0 -1
- package/src/enumerations/index.js +0 -5
- package/src/enumerations/index.js.map +0 -1
- package/src/enumerations/pbkdf2-profile.d.ts +0 -9
- package/src/enumerations/pbkdf2-profile.d.ts.map +0 -1
- package/src/enumerations/pbkdf2-profile.js +0 -13
- package/src/enumerations/pbkdf2-profile.js.map +0 -1
- package/src/i18n/ecies-i18n-factory.d.ts +0 -28
- package/src/i18n/ecies-i18n-factory.d.ts.map +0 -1
- package/src/i18n/ecies-i18n-factory.js +0 -89
- package/src/i18n/ecies-i18n-factory.js.map +0 -1
- package/src/i18n/index.d.ts.map +0 -1
- package/src/i18n/index.js +0 -8
- package/src/i18n/index.js.map +0 -1
- package/src/i18n/node-ecies-i18n-setup.d.ts +0 -5
- package/src/i18n/node-ecies-i18n-setup.d.ts.map +0 -1
- package/src/i18n/node-ecies-i18n-setup.js +0 -46
- package/src/i18n/node-ecies-i18n-setup.js.map +0 -1
- package/src/i18n/node-keys.d.ts +0 -57
- package/src/i18n/node-keys.d.ts.map +0 -1
- package/src/i18n/node-keys.js +0 -67
- package/src/i18n/node-keys.js.map +0 -1
- package/src/i18n/translations/de.d.ts +0 -3
- package/src/i18n/translations/de.d.ts.map +0 -1
- package/src/i18n/translations/de.js +0 -57
- package/src/i18n/translations/de.js.map +0 -1
- package/src/i18n/translations/en-GB.d.ts +0 -3
- package/src/i18n/translations/en-GB.d.ts.map +0 -1
- package/src/i18n/translations/en-GB.js +0 -61
- package/src/i18n/translations/en-GB.js.map +0 -1
- package/src/i18n/translations/en-US.d.ts +0 -6
- package/src/i18n/translations/en-US.d.ts.map +0 -1
- package/src/i18n/translations/en-US.js +0 -65
- package/src/i18n/translations/en-US.js.map +0 -1
- package/src/i18n/translations/es.d.ts +0 -3
- package/src/i18n/translations/es.d.ts.map +0 -1
- package/src/i18n/translations/es.js +0 -57
- package/src/i18n/translations/es.js.map +0 -1
- package/src/i18n/translations/fr.d.ts +0 -3
- package/src/i18n/translations/fr.d.ts.map +0 -1
- package/src/i18n/translations/fr.js +0 -57
- package/src/i18n/translations/fr.js.map +0 -1
- package/src/i18n/translations/index.d.ts.map +0 -1
- package/src/i18n/translations/index.js +0 -20
- package/src/i18n/translations/index.js.map +0 -1
- package/src/i18n/translations/ja.d.ts +0 -3
- package/src/i18n/translations/ja.d.ts.map +0 -1
- package/src/i18n/translations/ja.js +0 -57
- package/src/i18n/translations/ja.js.map +0 -1
- package/src/i18n/translations/uk.d.ts +0 -3
- package/src/i18n/translations/uk.d.ts.map +0 -1
- package/src/i18n/translations/uk.js +0 -57
- package/src/i18n/translations/uk.js.map +0 -1
- package/src/i18n/translations/zh-cn.d.ts +0 -3
- package/src/i18n/translations/zh-cn.d.ts.map +0 -1
- package/src/i18n/translations/zh-cn.js +0 -57
- package/src/i18n/translations/zh-cn.js.map +0 -1
- package/src/index.d.ts.map +0 -1
- package/src/index.js +0 -31
- package/src/index.js.map +0 -1
- package/src/interfaces/authenticated-cipher.d.ts +0 -12
- package/src/interfaces/authenticated-cipher.d.ts.map +0 -1
- package/src/interfaces/authenticated-cipher.js +0 -3
- package/src/interfaces/authenticated-cipher.js.map +0 -1
- package/src/interfaces/authenticated-decipher.d.ts +0 -11
- package/src/interfaces/authenticated-decipher.d.ts.map +0 -1
- package/src/interfaces/authenticated-decipher.js +0 -3
- package/src/interfaces/authenticated-decipher.js.map +0 -1
- package/src/interfaces/backend-member-operational.d.ts +0 -48
- package/src/interfaces/backend-member-operational.d.ts.map +0 -1
- package/src/interfaces/backend-member-operational.js +0 -3
- package/src/interfaces/backend-member-operational.js.map +0 -1
- package/src/interfaces/checksum-config.d.ts +0 -5
- package/src/interfaces/checksum-config.d.ts.map +0 -1
- package/src/interfaces/checksum-config.js +0 -3
- package/src/interfaces/checksum-config.js.map +0 -1
- package/src/interfaces/checksum-consts.d.ts +0 -11
- package/src/interfaces/checksum-consts.d.ts.map +0 -1
- package/src/interfaces/checksum-consts.js +0 -3
- package/src/interfaces/checksum-consts.js.map +0 -1
- package/src/interfaces/constants.d.ts +0 -52
- package/src/interfaces/constants.d.ts.map +0 -1
- package/src/interfaces/constants.js +0 -3
- package/src/interfaces/constants.js.map +0 -1
- package/src/interfaces/ecies-consts.d.ts +0 -88
- package/src/interfaces/ecies-consts.d.ts.map +0 -1
- package/src/interfaces/ecies-consts.js +0 -3
- package/src/interfaces/ecies-consts.js.map +0 -1
- package/src/interfaces/encrypted-chunk.d.ts +0 -12
- package/src/interfaces/encrypted-chunk.d.ts.map +0 -1
- package/src/interfaces/encrypted-chunk.js +0 -3
- package/src/interfaces/encrypted-chunk.js.map +0 -1
- package/src/interfaces/encryption-consts.d.ts +0 -11
- package/src/interfaces/encryption-consts.d.ts.map +0 -1
- package/src/interfaces/encryption-consts.js +0 -3
- package/src/interfaces/encryption-consts.js.map +0 -1
- package/src/interfaces/index.d.ts.map +0 -1
- package/src/interfaces/index.js +0 -30
- package/src/interfaces/index.js.map +0 -1
- package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.d.ts +0 -6
- package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.d.ts.map +0 -1
- package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.js +0 -3
- package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.js.map +0 -1
- package/src/interfaces/keyring-consts.d.ts +0 -6
- package/src/interfaces/keyring-consts.d.ts.map +0 -1
- package/src/interfaces/keyring-consts.js +0 -3
- package/src/interfaces/keyring-consts.js.map +0 -1
- package/src/interfaces/member-with-mnemonic.d.ts.map +0 -1
- package/src/interfaces/member-with-mnemonic.js +0 -3
- package/src/interfaces/member-with-mnemonic.js.map +0 -1
- package/src/interfaces/member.d.ts +0 -47
- package/src/interfaces/member.d.ts.map +0 -1
- package/src/interfaces/member.js +0 -3
- package/src/interfaces/member.js.map +0 -1
- package/src/interfaces/multi-encrypted-message.d.ts.map +0 -1
- package/src/interfaces/multi-encrypted-message.js +0 -3
- package/src/interfaces/multi-encrypted-message.js.map +0 -1
- package/src/interfaces/multi-encrypted-parsed-header.d.ts +0 -27
- package/src/interfaces/multi-encrypted-parsed-header.d.ts.map +0 -1
- package/src/interfaces/multi-encrypted-parsed-header.js +0 -3
- package/src/interfaces/multi-encrypted-parsed-header.js.map +0 -1
- package/src/interfaces/multi-recipient-chunk.d.ts +0 -26
- package/src/interfaces/multi-recipient-chunk.d.ts.map +0 -1
- package/src/interfaces/multi-recipient-chunk.js +0 -13
- package/src/interfaces/multi-recipient-chunk.js.map +0 -1
- package/src/interfaces/pbkdf-profiles.d.ts.map +0 -1
- package/src/interfaces/pbkdf-profiles.js +0 -3
- package/src/interfaces/pbkdf-profiles.js.map +0 -1
- package/src/interfaces/pbkdf2-result.d.ts +0 -6
- package/src/interfaces/pbkdf2-result.d.ts.map +0 -1
- package/src/interfaces/pbkdf2-result.js +0 -3
- package/src/interfaces/pbkdf2-result.js.map +0 -1
- package/src/interfaces/signing-key-private-key-info.d.ts +0 -11
- package/src/interfaces/signing-key-private-key-info.d.ts.map +0 -1
- package/src/interfaces/signing-key-private-key-info.js +0 -3
- package/src/interfaces/signing-key-private-key-info.js.map +0 -1
- package/src/interfaces/simple-keypair-buffer.d.ts.map +0 -1
- package/src/interfaces/simple-keypair-buffer.js +0 -3
- package/src/interfaces/simple-keypair-buffer.js.map +0 -1
- package/src/interfaces/simple-keypair.d.ts.map +0 -1
- package/src/interfaces/simple-keypair.js +0 -3
- package/src/interfaces/simple-keypair.js.map +0 -1
- package/src/interfaces/simple-public-key-only-buffer.d.ts +0 -4
- package/src/interfaces/simple-public-key-only-buffer.d.ts.map +0 -1
- package/src/interfaces/simple-public-key-only-buffer.js +0 -3
- package/src/interfaces/simple-public-key-only-buffer.js.map +0 -1
- package/src/interfaces/simple-public-key-only.d.ts +0 -4
- package/src/interfaces/simple-public-key-only.d.ts.map +0 -1
- package/src/interfaces/simple-public-key-only.js +0 -3
- package/src/interfaces/simple-public-key-only.js.map +0 -1
- package/src/interfaces/single-encrypted-parsed-header.d.ts +0 -35
- package/src/interfaces/single-encrypted-parsed-header.d.ts.map +0 -1
- package/src/interfaces/single-encrypted-parsed-header.js +0 -3
- package/src/interfaces/single-encrypted-parsed-header.js.map +0 -1
- package/src/interfaces/stream-config.d.ts +0 -6
- package/src/interfaces/stream-config.d.ts.map +0 -1
- package/src/interfaces/stream-config.js +0 -8
- package/src/interfaces/stream-config.js.map +0 -1
- package/src/interfaces/stream-progress.d.ts +0 -8
- package/src/interfaces/stream-progress.d.ts.map +0 -1
- package/src/interfaces/stream-progress.js +0 -3
- package/src/interfaces/stream-progress.js.map +0 -1
- package/src/interfaces/wallet-seed.d.ts.map +0 -1
- package/src/interfaces/wallet-seed.js +0 -3
- package/src/interfaces/wallet-seed.js.map +0 -1
- package/src/interfaces/wrapped-key-consts.d.ts +0 -7
- package/src/interfaces/wrapped-key-consts.d.ts.map +0 -1
- package/src/interfaces/wrapped-key-consts.js +0 -3
- package/src/interfaces/wrapped-key-consts.js.map +0 -1
- package/src/lib/crypto-container.d.ts +0 -13
- package/src/lib/crypto-container.d.ts.map +0 -1
- package/src/lib/crypto-container.js +0 -29
- package/src/lib/crypto-container.js.map +0 -1
- package/src/lib/index.d.ts.map +0 -1
- package/src/lib/index.js +0 -7
- package/src/lib/index.js.map +0 -1
- package/src/lib/invariant-validator.d.ts +0 -62
- package/src/lib/invariant-validator.d.ts.map +0 -1
- package/src/lib/invariant-validator.js +0 -108
- package/src/lib/invariant-validator.js.map +0 -1
- package/src/lib/invariants/index.d.ts.map +0 -1
- package/src/lib/invariants/index.js +0 -12
- package/src/lib/invariants/index.js.map +0 -1
- package/src/lib/invariants/recipient-id-consistency.d.ts +0 -22
- package/src/lib/invariants/recipient-id-consistency.d.ts.map +0 -1
- package/src/lib/invariants/recipient-id-consistency.js +0 -62
- package/src/lib/invariants/recipient-id-consistency.js.map +0 -1
- package/src/member.d.ts +0 -81
- package/src/member.d.ts.map +0 -1
- package/src/member.js +0 -285
- package/src/member.js.map +0 -1
- package/src/services/aes-gcm.d.ts +0 -66
- package/src/services/aes-gcm.d.ts.map +0 -1
- package/src/services/aes-gcm.js +0 -158
- package/src/services/aes-gcm.js.map +0 -1
- package/src/services/chunk-processor.d.ts +0 -15
- package/src/services/chunk-processor.d.ts.map +0 -1
- package/src/services/chunk-processor.js +0 -36
- package/src/services/chunk-processor.js.map +0 -1
- package/src/services/ecies/crypto-core.d.ts +0 -104
- package/src/services/ecies/crypto-core.d.ts.map +0 -1
- package/src/services/ecies/crypto-core.js +0 -237
- package/src/services/ecies/crypto-core.js.map +0 -1
- package/src/services/ecies/file.d.ts +0 -30
- package/src/services/ecies/file.d.ts.map +0 -1
- package/src/services/ecies/file.js +0 -112
- package/src/services/ecies/file.js.map +0 -1
- package/src/services/ecies/index.d.ts.map +0 -1
- package/src/services/ecies/index.js +0 -11
- package/src/services/ecies/index.js.map +0 -1
- package/src/services/ecies/multi-recipient.d.ts +0 -84
- package/src/services/ecies/multi-recipient.d.ts.map +0 -1
- package/src/services/ecies/multi-recipient.js +0 -496
- package/src/services/ecies/multi-recipient.js.map +0 -1
- package/src/services/ecies/service.d.ts +0 -69
- package/src/services/ecies/service.d.ts.map +0 -1
- package/src/services/ecies/service.js +0 -144
- package/src/services/ecies/service.js.map +0 -1
- package/src/services/ecies/signature.d.ts +0 -38
- package/src/services/ecies/signature.d.ts.map +0 -1
- package/src/services/ecies/signature.js +0 -69
- package/src/services/ecies/signature.js.map +0 -1
- package/src/services/ecies/single-recipient.d.ts +0 -83
- package/src/services/ecies/single-recipient.d.ts.map +0 -1
- package/src/services/ecies/single-recipient.js +0 -447
- package/src/services/ecies/single-recipient.js.map +0 -1
- package/src/services/ecies/utilities.d.ts +0 -33
- package/src/services/ecies/utilities.d.ts.map +0 -1
- package/src/services/ecies/utilities.js +0 -91
- package/src/services/ecies/utilities.js.map +0 -1
- package/src/services/encryption-stream.d.ts +0 -33
- package/src/services/encryption-stream.d.ts.map +0 -1
- package/src/services/encryption-stream.js +0 -207
- package/src/services/encryption-stream.js.map +0 -1
- package/src/services/index.d.ts.map +0 -1
- package/src/services/index.js +0 -11
- package/src/services/index.js.map +0 -1
- package/src/services/multi-recipient-processor.d.ts +0 -72
- package/src/services/multi-recipient-processor.d.ts.map +0 -1
- package/src/services/multi-recipient-processor.js +0 -322
- package/src/services/multi-recipient-processor.js.map +0 -1
- package/src/services/pbkdf2.d.ts +0 -105
- package/src/services/pbkdf2.d.ts.map +0 -1
- package/src/services/pbkdf2.js +0 -189
- package/src/services/pbkdf2.js.map +0 -1
- package/src/services/progress-tracker.d.ts +0 -9
- package/src/services/progress-tracker.d.ts.map +0 -1
- package/src/services/progress-tracker.js +0 -41
- package/src/services/progress-tracker.js.map +0 -1
- package/src/test-mocks/index.d.ts +0 -2
- package/src/test-mocks/index.d.ts.map +0 -1
- package/src/test-mocks/index.js +0 -5
- package/src/test-mocks/index.js.map +0 -1
- package/src/test-mocks/mock-backend-member.d.ts +0 -71
- package/src/test-mocks/mock-backend-member.d.ts.map +0 -1
- package/src/test-mocks/mock-backend-member.js +0 -133
- package/src/test-mocks/mock-backend-member.js.map +0 -1
- package/src/testing.d.ts +0 -2
- package/src/testing.d.ts.map +0 -1
- package/src/testing.js +0 -6
- package/src/testing.js.map +0 -1
- package/src/types/id-guards.d.ts +0 -39
- package/src/types/id-guards.d.ts.map +0 -1
- package/src/types/id-guards.js +0 -91
- package/src/types/id-guards.js.map +0 -1
- package/src/types/index.d.ts +0 -2
- package/src/types/index.d.ts.map +0 -1
- package/src/types/index.js +0 -5
- package/src/types/index.js.map +0 -1
- package/src/types.d.ts.map +0 -1
- package/src/types.js +0 -6
- package/src/types.js.map +0 -1
- package/src/utils.d.ts +0 -11
- package/src/utils.d.ts.map +0 -1
- package/src/utils.js +0 -82
- package/src/utils.js.map +0 -1
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { NodeEciesStringKey } from '../node-keys';
|
|
2
|
+
|
|
3
|
+
export const mandarinTranslations: Record<NodeEciesStringKey, string> = {
|
|
4
|
+
[NodeEciesStringKey.Error_LengthError_LengthIsInvalidType]: '长度编码类型无效',
|
|
5
|
+
[NodeEciesStringKey.Error_Member_MissingMemberName]: '需要成员名称',
|
|
6
|
+
[NodeEciesStringKey.Error_Member_InvalidMemberNameWhitespace]: '成员名称不能有前导或尾随空格',
|
|
7
|
+
[NodeEciesStringKey.Error_Member_NoWallet]: '没有可用的钱包',
|
|
8
|
+
[NodeEciesStringKey.Error_Member_WalletAlreadyLoaded]: '钱包已加载',
|
|
9
|
+
[NodeEciesStringKey.Error_Member_InvalidMnemonic]: '无效的助记词',
|
|
10
|
+
[NodeEciesStringKey.Error_Member_MissingPrivateKey]: '缺少私钥',
|
|
11
|
+
[NodeEciesStringKey.Error_Member_MissingEncryptionData]: '缺少加密数据',
|
|
12
|
+
[NodeEciesStringKey.Error_Member_EncryptionDataTooLarge]: '加密数据过大',
|
|
13
|
+
[NodeEciesStringKey.Error_Member_MissingEmail]: '需要电子邮件地址',
|
|
14
|
+
[NodeEciesStringKey.Error_Member_InvalidEmailWhitespace]: '电子邮件地址不能有前导或尾随空格',
|
|
15
|
+
[NodeEciesStringKey.Error_InvalidPublicKey]: '收到空或未定义的公钥',
|
|
16
|
+
[NodeEciesStringKey.Error_InvalidPublicKeyFormat]: '无效的公钥格式或长度',
|
|
17
|
+
[NodeEciesStringKey.Error_MessageLengthExceedsMaximumAllowedSize]: '消息长度超过最大允许长度',
|
|
18
|
+
[NodeEciesStringKey.Error_InvalidEncryptionTypeOrNumberOfRecipients]: '无效的加密类型或接收者数量',
|
|
19
|
+
[NodeEciesStringKey.Error_EncryptedDataLengthMismatch]: '加密数据长度不匹配',
|
|
20
|
+
[NodeEciesStringKey.Error_EphemeralPublicKeyLengthMismatch]: '临时公钥在规范化后长度不正确',
|
|
21
|
+
[NodeEciesStringKey.Error_EncryptedDataIsEmpty]: '加密数据为空',
|
|
22
|
+
[NodeEciesStringKey.Error_CombinedDataTooShort]: '组合数据太短,无法包含所需组件',
|
|
23
|
+
[NodeEciesStringKey.Error_BufferIsTooShort]: '缓冲区太短,无法读取长度类型',
|
|
24
|
+
[NodeEciesStringKey.Error_BufferIsTooShortToReadFullLengthValue]: '缓冲区太短,无法读取完整的长度值',
|
|
25
|
+
[NodeEciesStringKey.Error_LengthExceedsMaximumSafeInteger]: '长度超过最大安全整数值',
|
|
26
|
+
[NodeEciesStringKey.Error_BufferIsTooShortForDeclaredDataLength]: '缓冲区太短,无法读取声明的数据长度',
|
|
27
|
+
[NodeEciesStringKey.Error_InvalidChecksumConstants]: '无效的校验和常量',
|
|
28
|
+
[NodeEciesStringKey.Error_InvalidAESKeyLength]: 'AES密钥必须为16、24或32字节',
|
|
29
|
+
[NodeEciesStringKey.Error_CannotEncryptEmptyData]: '无法加密空或未定义的数据',
|
|
30
|
+
[NodeEciesStringKey.Error_CannotDecryptEmptyData]: '无法解密空或未定义的数据',
|
|
31
|
+
[NodeEciesStringKey.Error_InvalidIVLength]: 'IV必须为16字节',
|
|
32
|
+
[NodeEciesStringKey.Error_MessageTooLarge]: '消息超过最大大小2GB',
|
|
33
|
+
[NodeEciesStringKey.Error_EncryptedSizeExceedsExpected]: '加密数据大小超过预期最大值',
|
|
34
|
+
[NodeEciesStringKey.Error_Pbkdf2_InvalidSaltLength]: '无效的盐长度',
|
|
35
|
+
[NodeEciesStringKey.Error_Pbkdf2_InvalidHashLength]: '无效的哈希长度',
|
|
36
|
+
[NodeEciesStringKey.Error_Builder_ECIESServiceMustBeSetBeforeGeneratingMnemonic]: '在生成助记词之前必须设置ECIESService',
|
|
37
|
+
[NodeEciesStringKey.Error_Builder_ECIESServiceIsRequired]: '需要ECIESService',
|
|
38
|
+
[NodeEciesStringKey.Error_Builder_TypeNameAndEmailAreRequired]: '需要类型、名称和电子邮件',
|
|
39
|
+
[NodeEciesStringKey.Error_Stream_InvalidPublicKeyLength]: '无效的公钥:必须为33(压缩)或65(未压缩)字节',
|
|
40
|
+
[NodeEciesStringKey.Error_Stream_EncryptionCancelled]: '加密已取消',
|
|
41
|
+
[NodeEciesStringKey.Error_Stream_BufferOverflow]: '缓冲区溢出:源块超过最大大小',
|
|
42
|
+
[NodeEciesStringKey.Error_Stream_AtLeastOneRecipientRequired]: '至少需要一个接收者',
|
|
43
|
+
[NodeEciesStringKey.Error_Stream_MaxRecipientsExceeded]: '最多支持65535个接收者',
|
|
44
|
+
[NodeEciesStringKey.Error_Stream_InvalidRecipientPublicKeyLength]: '无效的接收者公钥:必须为33(压缩)或65(未压缩)字节',
|
|
45
|
+
[NodeEciesStringKey.Error_Stream_InvalidRecipientIdLength]: '无效的接收者ID:必须为32字节',
|
|
46
|
+
[NodeEciesStringKey.Error_Stream_InvalidPrivateKeyLength]: '无效的私钥:必须为32字节',
|
|
47
|
+
[NodeEciesStringKey.Error_Stream_DecryptionCancelled]: '解密已取消',
|
|
48
|
+
[NodeEciesStringKey.Error_Stream_ChunkSequenceError]: '块序列错误',
|
|
49
|
+
[NodeEciesStringKey.Error_Invariant_ConfigurationValidationFailedTemplate]: 'Node.js configuration validation failed:\n{failures}',
|
|
50
|
+
[NodeEciesStringKey.Error_Invariant_NodeRecipientIdConsistency_FailedTemplate]: "Invariant 'NodeRecipientIdConsistency' failed:\n {issues}",
|
|
51
|
+
[NodeEciesStringKey.Error_Invariant_MemberIdLengthMismatchTemplate]: 'MEMBER_ID_LENGTH ({actual}) !== idProvider.byteLength ({expected})',
|
|
52
|
+
[NodeEciesStringKey.Error_Invariant_EciesMultipleRecipientIdSizeMismatchTemplate]: 'ECIES.MULTIPLE.RECIPIENT_ID_SIZE ({actual}) !== idProvider.byteLength ({expected})',
|
|
53
|
+
[NodeEciesStringKey.Error_Invariant_EncryptionRecipientIdSizeMismatchTemplate]: 'ENCRYPTION.RECIPIENT_ID_SIZE ({actual}) !== idProvider.byteLength ({expected})',
|
|
54
|
+
};
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
// V2 Architecture exports
|
|
1
2
|
export * from './builders';
|
|
2
3
|
export * from './core';
|
|
3
4
|
export * from './lib';
|
|
5
|
+
|
|
6
|
+
// Existing exports (backward compatibility)
|
|
4
7
|
export * from './constants';
|
|
5
8
|
export * from './enumerations';
|
|
6
9
|
export * from './i18n';
|
|
@@ -8,6 +11,8 @@ export * from './interfaces';
|
|
|
8
11
|
export * from './member';
|
|
9
12
|
export * from './types';
|
|
10
13
|
export * from './types/id-guards';
|
|
14
|
+
|
|
15
|
+
// Services - explicit exports to avoid conflicts
|
|
11
16
|
export { AESGCMService } from './services/aes-gcm';
|
|
12
17
|
export { ChunkProcessor } from './services/chunk-processor';
|
|
13
18
|
export * from './services/ecies';
|
|
@@ -15,4 +20,3 @@ export { EncryptionStream } from './services/encryption-stream';
|
|
|
15
20
|
export { MultiRecipientProcessor } from './services/multi-recipient-processor';
|
|
16
21
|
export { Pbkdf2Service } from './services/pbkdf2';
|
|
17
22
|
export { ProgressTracker } from './services/progress-tracker';
|
|
18
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Cipher } from 'crypto';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Extended Cipher type with auth tag support for AES-GCM
|
|
5
|
+
*/
|
|
6
|
+
export interface AuthenticatedCipher extends Cipher {
|
|
7
|
+
getAuthTag(): Buffer;
|
|
8
|
+
setAAD(buffer: Buffer, options?: { plaintextLength: number }): this;
|
|
9
|
+
setAutoPadding(autoPadding?: boolean): this;
|
|
10
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Decipher } from 'crypto';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Extended Decipher type with auth tag support for AES-GCM
|
|
5
|
+
*/
|
|
6
|
+
export interface AuthenticatedDecipher extends Decipher {
|
|
7
|
+
setAuthTag(tag: Buffer): void;
|
|
8
|
+
setAAD(buffer: Buffer, options?: { plaintextLength: number }): this;
|
|
9
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
EmailString,
|
|
3
|
+
MemberType,
|
|
4
|
+
SecureBuffer,
|
|
5
|
+
SecureString,
|
|
6
|
+
} from '@digitaldefiance/ecies-lib';
|
|
7
|
+
import type { Wallet } from '@ethereumjs/wallet';
|
|
8
|
+
import type { Types } from '@digitaldefiance/mongoose-types';
|
|
9
|
+
import type { SignatureBuffer } from '../types';
|
|
10
|
+
import type { IEncryptedChunk } from './encrypted-chunk';
|
|
11
|
+
import type { IStreamProgress } from './stream-progress';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Operational interface for member - defines getters and methods
|
|
15
|
+
*/
|
|
16
|
+
export interface IBackendMemberOperational<
|
|
17
|
+
I extends string | Types.ObjectId | Buffer | Uint8Array
|
|
18
|
+
> {
|
|
19
|
+
// Required getters
|
|
20
|
+
get id(): I;
|
|
21
|
+
get type(): MemberType;
|
|
22
|
+
get name(): string;
|
|
23
|
+
get email(): EmailString;
|
|
24
|
+
get publicKey(): Uint8Array;
|
|
25
|
+
get creatorId(): I;
|
|
26
|
+
get dateCreated(): Date;
|
|
27
|
+
get dateUpdated(): Date;
|
|
28
|
+
|
|
29
|
+
// Optional private data getters
|
|
30
|
+
get privateKey(): SecureBuffer | undefined;
|
|
31
|
+
get wallet(): Wallet | undefined;
|
|
32
|
+
|
|
33
|
+
// State getters
|
|
34
|
+
get hasPrivateKey(): boolean;
|
|
35
|
+
|
|
36
|
+
// Methods
|
|
37
|
+
sign(data: Buffer): SignatureBuffer;
|
|
38
|
+
verify(signature: SignatureBuffer, data: Buffer): boolean;
|
|
39
|
+
encryptData(data: string | Buffer): Uint8Array;
|
|
40
|
+
decryptData(encryptedData: Buffer): Uint8Array;
|
|
41
|
+
toJson(): string;
|
|
42
|
+
dispose(): void;
|
|
43
|
+
|
|
44
|
+
// Streaming methods
|
|
45
|
+
encryptDataStream(
|
|
46
|
+
source: AsyncIterable<Buffer>,
|
|
47
|
+
options?: {
|
|
48
|
+
recipientPublicKey?: Buffer;
|
|
49
|
+
onProgress?: (progress: IStreamProgress) => void;
|
|
50
|
+
signal?: AbortSignal;
|
|
51
|
+
}
|
|
52
|
+
): AsyncGenerator<IEncryptedChunk, void, unknown>;
|
|
53
|
+
|
|
54
|
+
decryptDataStream(
|
|
55
|
+
source: AsyncIterable<Buffer>,
|
|
56
|
+
options?: {
|
|
57
|
+
onProgress?: (progress: IStreamProgress) => void;
|
|
58
|
+
signal?: AbortSignal;
|
|
59
|
+
}
|
|
60
|
+
): AsyncGenerator<Buffer, void, unknown>;
|
|
61
|
+
|
|
62
|
+
// Private key management
|
|
63
|
+
loadWallet(mnemonic: SecureString): void;
|
|
64
|
+
unloadPrivateKey(): void;
|
|
65
|
+
unloadWallet(): void;
|
|
66
|
+
unloadWalletAndPrivateKey(): void;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Extended operational interface for test members
|
|
71
|
+
*/
|
|
72
|
+
export interface ITestNodeEciesMemberOperational
|
|
73
|
+
extends IBackendMemberOperational<Types.ObjectId> {
|
|
74
|
+
get mnemonic(): SecureString | undefined;
|
|
75
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface IChecksumConsts {
|
|
2
|
+
/** Default hash bits for SHA3 */
|
|
3
|
+
SHA3_DEFAULT_HASH_BITS: number;
|
|
4
|
+
|
|
5
|
+
/** Length of a SHA3 checksum buffer in bytes */
|
|
6
|
+
SHA3_BUFFER_LENGTH: number;
|
|
7
|
+
|
|
8
|
+
/** Algorithm name for checksums */
|
|
9
|
+
ALGORITHM: string;
|
|
10
|
+
|
|
11
|
+
/** Encoding for checksums */
|
|
12
|
+
ENCODING: 'hex' | 'base64';
|
|
13
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { IConstants as IBaseConstants } from '@digitaldefiance/ecies-lib';
|
|
2
|
+
import type { CipherGCMTypes } from 'crypto';
|
|
3
|
+
import type { IChecksumConsts } from './checksum-consts';
|
|
4
|
+
import type { IEncryptionConsts } from './encryption-consts';
|
|
5
|
+
import type { IKeyringConsts } from './keyring-consts';
|
|
6
|
+
import type { PbkdfProfiles } from './pbkdf-profiles';
|
|
7
|
+
import type { IWrappedKeyConsts } from './wrapped-key-consts';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Node.js-specific constants interface.
|
|
11
|
+
* Extends base ECIES constants with Node-specific additions.
|
|
12
|
+
*
|
|
13
|
+
* Inherited from IBaseConstants:
|
|
14
|
+
* - idProvider: IIdProvider
|
|
15
|
+
* - OBJECT_ID_LENGTH: number
|
|
16
|
+
* - MEMBER_ID_LENGTH: number
|
|
17
|
+
* - PBKDF2: IPBkdf2Consts (overridden with Node crypto implementation)
|
|
18
|
+
* - PBKDF2_PROFILES: Pbkdf2Profiles (overridden with Node profiles)
|
|
19
|
+
* - CHECKSUM: IChecksumConsts (overridden)
|
|
20
|
+
* - ECIES: IECIESConstants
|
|
21
|
+
* - And other base constants...
|
|
22
|
+
*/
|
|
23
|
+
export interface IConstants
|
|
24
|
+
extends Omit<IBaseConstants, 'PBKDF2_PROFILES' | 'CHECKSUM'> {
|
|
25
|
+
/**
|
|
26
|
+
* PBKDF2 configuration profiles (Node.js-specific)
|
|
27
|
+
* Overrides base profiles with Node crypto implementations
|
|
28
|
+
*/
|
|
29
|
+
PBKDF2_PROFILES: PbkdfProfiles;
|
|
30
|
+
/**
|
|
31
|
+
* Checksum constants (Node.js-specific)
|
|
32
|
+
* Overrides base checksum with Node crypto implementations
|
|
33
|
+
*/
|
|
34
|
+
CHECKSUM: IChecksumConsts;
|
|
35
|
+
/**
|
|
36
|
+
* Wrapped Key constants used for the key wrapping service (Node.js-only)
|
|
37
|
+
*/
|
|
38
|
+
WRAPPED_KEY: IWrappedKeyConsts;
|
|
39
|
+
/**
|
|
40
|
+
* Keyring constants used for key management (Node.js-only)
|
|
41
|
+
*/
|
|
42
|
+
KEYRING: IKeyringConsts;
|
|
43
|
+
/**
|
|
44
|
+
* Encryption constants used for encrypted data (Node.js-only)
|
|
45
|
+
*/
|
|
46
|
+
ENCRYPTION: IEncryptionConsts;
|
|
47
|
+
/**
|
|
48
|
+
* Algorithm configuration string for keyring operations (Node.js-only)
|
|
49
|
+
*/
|
|
50
|
+
KEYRING_ALGORITHM_CONFIGURATION: CipherGCMTypes;
|
|
51
|
+
|
|
52
|
+
ECIES_VERSION_SIZE: number;
|
|
53
|
+
ECIES_CIPHER_SUITE_SIZE: number;
|
|
54
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
export interface IECIESConsts {
|
|
2
|
+
/** The elliptic curve to use for all ECDSA operations */
|
|
3
|
+
CURVE_NAME: string;
|
|
4
|
+
|
|
5
|
+
/** The primary key derivation path for HD wallets */
|
|
6
|
+
PRIMARY_KEY_DERIVATION_PATH: string;
|
|
7
|
+
|
|
8
|
+
/** Length of ECDSA signatures in bytes */
|
|
9
|
+
SIGNATURE_SIZE: number;
|
|
10
|
+
|
|
11
|
+
/** Length of raw public keys in bytes (without 0x04 prefix) */
|
|
12
|
+
RAW_PUBLIC_KEY_LENGTH: number;
|
|
13
|
+
|
|
14
|
+
/** Length of public keys in bytes (with 0x04 prefix) */
|
|
15
|
+
PUBLIC_KEY_LENGTH: number; // RAW_PUBLIC_KEY_LENGTH + 1
|
|
16
|
+
|
|
17
|
+
PUBLIC_KEY_MAGIC: number;
|
|
18
|
+
|
|
19
|
+
/** Mnemonic strength in bits. This will produce a 32-bit key for ECDSA */
|
|
20
|
+
MNEMONIC_STRENGTH: number;
|
|
21
|
+
|
|
22
|
+
/** Symmetric encryption algorithm configuration */
|
|
23
|
+
SYMMETRIC: {
|
|
24
|
+
ALGORITHM: string;
|
|
25
|
+
KEY_BITS: number;
|
|
26
|
+
KEY_SIZE: number; // KEY_BITS / 8
|
|
27
|
+
MODE: string;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Length of the initialization vector
|
|
32
|
+
*/
|
|
33
|
+
IV_SIZE: number;
|
|
34
|
+
/**
|
|
35
|
+
* Length of the authentication tag
|
|
36
|
+
*/
|
|
37
|
+
AUTH_TAG_SIZE: number;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Maximum length of the data that can be encrypted
|
|
41
|
+
*/
|
|
42
|
+
MAX_RAW_DATA_SIZE: number;
|
|
43
|
+
|
|
44
|
+
SIMPLE: {
|
|
45
|
+
/**
|
|
46
|
+
* Length of the type (1) + public key (65) + IV (16) + auth tag (16)
|
|
47
|
+
*/
|
|
48
|
+
FIXED_OVERHEAD_SIZE: number;
|
|
49
|
+
/**
|
|
50
|
+
* Length of the data length (0 for simple encryption)
|
|
51
|
+
*/
|
|
52
|
+
DATA_LENGTH_SIZE: number;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* ECIES single recipient
|
|
57
|
+
*/
|
|
58
|
+
SINGLE: {
|
|
59
|
+
/**
|
|
60
|
+
* Length of the IV + auth tag + data length + crc16
|
|
61
|
+
*/
|
|
62
|
+
FIXED_OVERHEAD_SIZE: number;
|
|
63
|
+
/**
|
|
64
|
+
* Length of the data length
|
|
65
|
+
*/
|
|
66
|
+
DATA_LENGTH_SIZE: number;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* ECIES multiple recipient
|
|
71
|
+
*/
|
|
72
|
+
MULTIPLE: {
|
|
73
|
+
/**
|
|
74
|
+
* Length of the IV + auth tag + data length + recipient count for the overall message
|
|
75
|
+
*/
|
|
76
|
+
FIXED_OVERHEAD_SIZE: number;
|
|
77
|
+
/**
|
|
78
|
+
* Length of the encrypted key for each recipient
|
|
79
|
+
*/
|
|
80
|
+
ENCRYPTED_KEY_SIZE: number;
|
|
81
|
+
/**
|
|
82
|
+
* Maximum number of recipients for a single message
|
|
83
|
+
* This is limited by the size of the value used to store the recipient count in the header
|
|
84
|
+
*/
|
|
85
|
+
MAX_RECIPIENTS: number;
|
|
86
|
+
/**
|
|
87
|
+
* Length of the recipient ID
|
|
88
|
+
*/
|
|
89
|
+
RECIPIENT_ID_SIZE: number;
|
|
90
|
+
/**
|
|
91
|
+
* Length of the recipient count
|
|
92
|
+
*/
|
|
93
|
+
RECIPIENT_COUNT_SIZE: number;
|
|
94
|
+
/**
|
|
95
|
+
* Length of the data length
|
|
96
|
+
*/
|
|
97
|
+
DATA_LENGTH_SIZE: number;
|
|
98
|
+
};
|
|
99
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { SecureString } from '@digitaldefiance/ecies-lib';
|
|
2
2
|
import type { IMember } from './member';
|
|
3
|
+
|
|
3
4
|
export interface IBackendMemberWithMnemonic {
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
member: IMember;
|
|
6
|
+
mnemonic: SecureString;
|
|
6
7
|
}
|
|
7
|
-
//# sourceMappingURL=member-with-mnemonic.d.ts.map
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
EmailString,
|
|
3
|
+
MemberType,
|
|
4
|
+
SecureBuffer,
|
|
5
|
+
SecureString,
|
|
6
|
+
} from '@digitaldefiance/ecies-lib';
|
|
7
|
+
import type { Wallet } from '@ethereumjs/wallet';
|
|
8
|
+
import type { Types } from '@digitaldefiance/mongoose-types';
|
|
9
|
+
import type { SignatureBuffer } from '../types';
|
|
10
|
+
import type { IEncryptedChunk } from './encrypted-chunk';
|
|
11
|
+
import type { IStreamProgress } from './stream-progress';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Interface representing a member with cryptographic capabilities.
|
|
15
|
+
* This interface defines the contract for member operations without
|
|
16
|
+
* referencing concrete class implementations.
|
|
17
|
+
*/
|
|
18
|
+
export interface IMember<
|
|
19
|
+
TID extends string | Types.ObjectId | Buffer | Uint8Array = Buffer
|
|
20
|
+
> {
|
|
21
|
+
// Required properties
|
|
22
|
+
readonly id: TID;
|
|
23
|
+
readonly type: MemberType;
|
|
24
|
+
readonly name: string;
|
|
25
|
+
readonly email: EmailString;
|
|
26
|
+
readonly publicKey: Buffer;
|
|
27
|
+
readonly creatorId: TID;
|
|
28
|
+
readonly dateCreated: Date;
|
|
29
|
+
readonly dateUpdated: Date;
|
|
30
|
+
|
|
31
|
+
// Optional private data properties
|
|
32
|
+
readonly privateKey: SecureBuffer | undefined;
|
|
33
|
+
readonly wallet: Wallet;
|
|
34
|
+
|
|
35
|
+
// State properties
|
|
36
|
+
readonly hasPrivateKey: boolean;
|
|
37
|
+
|
|
38
|
+
// Key management methods
|
|
39
|
+
unloadPrivateKey(): void;
|
|
40
|
+
unloadWallet(): void;
|
|
41
|
+
unloadWalletAndPrivateKey(): void;
|
|
42
|
+
loadWallet(mnemonic: SecureString): void;
|
|
43
|
+
loadPrivateKey(privateKey: SecureBuffer): void;
|
|
44
|
+
|
|
45
|
+
// Cryptographic methods
|
|
46
|
+
sign(data: Buffer): SignatureBuffer;
|
|
47
|
+
signData(data: Buffer): SignatureBuffer;
|
|
48
|
+
verify(signature: SignatureBuffer, data: Buffer): boolean;
|
|
49
|
+
verifySignature(data: Buffer, signature: Buffer, publicKey: Buffer): boolean;
|
|
50
|
+
|
|
51
|
+
// Encryption/Decryption methods
|
|
52
|
+
encryptDataStream(
|
|
53
|
+
source: AsyncIterable<Buffer>,
|
|
54
|
+
options?: {
|
|
55
|
+
recipientPublicKey?: Buffer;
|
|
56
|
+
onProgress?: (progress: IStreamProgress) => void;
|
|
57
|
+
signal?: AbortSignal;
|
|
58
|
+
}
|
|
59
|
+
): AsyncGenerator<IEncryptedChunk, void, unknown>;
|
|
60
|
+
|
|
61
|
+
decryptDataStream(
|
|
62
|
+
source: AsyncIterable<Buffer>,
|
|
63
|
+
options?: {
|
|
64
|
+
onProgress?: (progress: IStreamProgress) => void;
|
|
65
|
+
signal?: AbortSignal;
|
|
66
|
+
}
|
|
67
|
+
): AsyncGenerator<Buffer, void, unknown>;
|
|
68
|
+
|
|
69
|
+
encryptData(data: string | Buffer, recipientPublicKey?: Buffer): Buffer;
|
|
70
|
+
|
|
71
|
+
decryptData(encryptedData: Buffer): Buffer;
|
|
72
|
+
|
|
73
|
+
// Serialization methods
|
|
74
|
+
toJson(): string;
|
|
75
|
+
dispose(): void;
|
|
76
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { IMultiEncryptedParsedHeader } from './multi-encrypted-parsed-header';
|
|
2
|
+
|
|
2
3
|
export interface IMultiEncryptedMessage extends IMultiEncryptedParsedHeader {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
/**
|
|
5
|
+
* The encrypted message.
|
|
6
|
+
*/
|
|
7
|
+
readonly encryptedMessage: Buffer;
|
|
7
8
|
}
|
|
8
|
-
//# sourceMappingURL=multi-encrypted-message.d.ts.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Types } from '@digitaldefiance/mongoose-types';
|
|
2
|
+
|
|
3
|
+
export interface IMultiEncryptedParsedHeader {
|
|
4
|
+
/**
|
|
5
|
+
* The length of the data before encryption
|
|
6
|
+
*/
|
|
7
|
+
readonly dataLength: number;
|
|
8
|
+
/**
|
|
9
|
+
* The number of recipients
|
|
10
|
+
*/
|
|
11
|
+
readonly recipientCount: number;
|
|
12
|
+
/**
|
|
13
|
+
* The IDs of the recipients
|
|
14
|
+
*/
|
|
15
|
+
readonly recipientIds: Buffer[];
|
|
16
|
+
/**
|
|
17
|
+
* An encrypted version of the symmetric key for each recipient
|
|
18
|
+
*/
|
|
19
|
+
readonly recipientKeys: Buffer[];
|
|
20
|
+
/**
|
|
21
|
+
* The size of the header, up to the encrypted message start (excludes encrypted message IV+auth tag)
|
|
22
|
+
*/
|
|
23
|
+
readonly headerSize: number;
|
|
24
|
+
/**
|
|
25
|
+
* The ephemeral public key used for encryption
|
|
26
|
+
*/
|
|
27
|
+
readonly ephemeralPublicKey?: Buffer;
|
|
28
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface IMultiRecipientChunkHeader {
|
|
2
|
+
chunkIndex: number;
|
|
3
|
+
flags: number;
|
|
4
|
+
recipientCount: number;
|
|
5
|
+
magic?: number;
|
|
6
|
+
version?: number;
|
|
7
|
+
originalSize?: number;
|
|
8
|
+
encryptedSize?: number;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface IMultiRecipientChunk {
|
|
12
|
+
header: IMultiRecipientChunkHeader;
|
|
13
|
+
data: Buffer;
|
|
14
|
+
isLast?: boolean;
|
|
15
|
+
recipientCount?: number;
|
|
16
|
+
index?: number;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface IMultiRecipientConstants {
|
|
20
|
+
MAGIC: number;
|
|
21
|
+
VERSION: number;
|
|
22
|
+
HEADER_SIZE: number;
|
|
23
|
+
KEY_SIZE_BYTES: number;
|
|
24
|
+
FLAG_IS_LAST: number;
|
|
25
|
+
MAX_RECIPIENTS: number;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export const getMultiRecipientConstants = (recipientIdSize: number): IMultiRecipientConstants => ({
|
|
29
|
+
MAGIC: 0x45434945, // 'ECIE'
|
|
30
|
+
VERSION: 1,
|
|
31
|
+
HEADER_SIZE: 64, // Fixed header size before recipient list
|
|
32
|
+
KEY_SIZE_BYTES: 2, // Size of the key size field
|
|
33
|
+
FLAG_IS_LAST: 1,
|
|
34
|
+
MAX_RECIPIENTS: 65535,
|
|
35
|
+
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { IPbkdf2Config } from '@digitaldefiance/ecies-lib';
|
|
2
2
|
import type { Pbkdf2ProfileEnum } from '../enumerations/pbkdf2-profile';
|
|
3
|
+
|
|
3
4
|
export type PbkdfProfiles = {
|
|
4
|
-
|
|
5
|
+
[key in Pbkdf2ProfileEnum]: IPbkdf2Config;
|
|
5
6
|
};
|
|
6
|
-
//# sourceMappingURL=pbkdf-profiles.d.ts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ec } from 'elliptic';
|
|
2
|
+
import type { IKeyPairBufferWithUnEncryptedPrivateKey } from './keypair-buffer-with-un-encrypted-private-key';
|
|
3
|
+
|
|
4
|
+
export interface ISigningKeyPrivateKeyInfo
|
|
5
|
+
extends IKeyPairBufferWithUnEncryptedPrivateKey {
|
|
6
|
+
keyPair: ec.KeyPair;
|
|
7
|
+
publicKey: Buffer;
|
|
8
|
+
privateKey: Buffer;
|
|
9
|
+
seedHex: string;
|
|
10
|
+
entropy: string;
|
|
11
|
+
mnemonic: string;
|
|
12
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ISimplePublicKeyOnlyBuffer } from './simple-public-key-only-buffer';
|
|
2
|
+
|
|
2
3
|
export interface ISimpleKeyPairBuffer extends ISimplePublicKeyOnlyBuffer {
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
publicKey: Buffer;
|
|
5
|
+
privateKey: Buffer;
|
|
5
6
|
}
|
|
6
|
-
//# sourceMappingURL=simple-keypair-buffer.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ISimplePublicKeyOnly } from './simple-public-key-only';
|
|
2
|
+
|
|
2
3
|
export interface ISimpleKeyPair extends ISimplePublicKeyOnly {
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
publicKey: string;
|
|
5
|
+
privateKey: Buffer;
|
|
5
6
|
}
|
|
6
|
-
//# sourceMappingURL=simple-keypair.d.ts.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { EciesEncryptionTypeEnum } from '@digitaldefiance/ecies-lib';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Interface for encrypted messages
|
|
5
|
+
*/
|
|
6
|
+
export interface ISingleEncryptedParsedHeader {
|
|
7
|
+
/**
|
|
8
|
+
* The optional preamble, if specified/relevant
|
|
9
|
+
*/
|
|
10
|
+
readonly preamble?: Buffer;
|
|
11
|
+
/**
|
|
12
|
+
* The encryption type used to encrypt the data
|
|
13
|
+
*/
|
|
14
|
+
readonly encryptionType: EciesEncryptionTypeEnum;
|
|
15
|
+
/**
|
|
16
|
+
* The ephemeral public key used to encrypt the data
|
|
17
|
+
*/
|
|
18
|
+
readonly ephemeralPublicKey: Buffer;
|
|
19
|
+
/**
|
|
20
|
+
* The initialization vector used to encrypt the data
|
|
21
|
+
*/
|
|
22
|
+
readonly iv: Buffer;
|
|
23
|
+
/**
|
|
24
|
+
* The authentication tag used to encrypt the data
|
|
25
|
+
*/
|
|
26
|
+
readonly authTag: Buffer;
|
|
27
|
+
/**
|
|
28
|
+
* The length of the encrypted data
|
|
29
|
+
*/
|
|
30
|
+
readonly dataLength: number;
|
|
31
|
+
/**
|
|
32
|
+
* The size of the encrypted data header
|
|
33
|
+
*/
|
|
34
|
+
readonly headerSize: number;
|
|
35
|
+
}
|