@digitaldefiance/ecies-lib 1.1.23 → 1.1.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/package.json +13 -33
- package/src/constants.ts +474 -0
- package/src/email-string.ts +83 -0
- package/src/enumerations/ecies-encryption-type.ts +102 -0
- package/src/enumerations/ecies-error-type.ts +31 -0
- package/src/enumerations/ecies-string-key.ts +108 -0
- package/src/enumerations/guid-brand-type.ts +26 -0
- package/src/enumerations/guid-error-type.ts +6 -0
- package/{dist/enumerations/index.d.ts → src/enumerations/index.ts} +0 -1
- package/src/enumerations/invalid-email-type.ts +5 -0
- package/src/enumerations/length-encoding-type.ts +6 -0
- package/src/enumerations/length-error-type.ts +5 -0
- package/src/enumerations/member-error-type.ts +106 -0
- package/{dist/enumerations/member-type.d.ts → src/enumerations/member-type.ts} +7 -6
- package/src/enumerations/password-login-error-type.ts +4 -0
- package/src/enumerations/pbkdf2-error-type.ts +5 -0
- package/src/enumerations/pbkdf2-profile.ts +5 -0
- package/src/enumerations/secure-storage-error-type.ts +5 -0
- package/src/errors/disposed.ts +15 -0
- package/src/errors/ecies.ts +34 -0
- package/src/errors/guid.ts +34 -0
- package/{dist/errors/index.d.ts → src/errors/index.ts} +0 -1
- package/src/errors/invalid-email.ts +11 -0
- package/src/errors/length.ts +11 -0
- package/src/errors/member.ts +12 -0
- package/src/errors/pbkdf2.ts +12 -0
- package/src/errors/secure-storage.ts +13 -0
- package/src/errors/simple-ecies.ts +18 -0
- package/src/errors/simple-test-error.ts +6 -0
- package/src/guid.ts +800 -0
- package/src/i18n-setup.ts +1312 -0
- package/{dist/index.d.ts → src/index.ts} +0 -1
- package/src/interfaces/checksum-config.ts +4 -0
- package/src/interfaces/checksum-consts.ts +13 -0
- package/src/interfaces/constants.ts +48 -0
- package/src/interfaces/ecies-config.ts +8 -0
- package/src/interfaces/ecies-consts.ts +70 -0
- package/src/interfaces/ecies-file-service.ts +6 -0
- package/src/interfaces/guid.ts +53 -0
- package/{dist/interfaces/index.d.ts → src/interfaces/index.ts} +0 -1
- package/src/interfaces/library-error.ts +23 -0
- package/src/interfaces/member-operational.ts +54 -0
- package/{dist/interfaces/member-storage.d.ts → src/interfaces/member-storage.ts} +11 -10
- package/{dist/interfaces/member-with-mnemonic.d.ts → src/interfaces/member-with-mnemonic.ts} +3 -3
- package/src/interfaces/pbkdf2-config.ts +6 -0
- package/src/interfaces/pbkdf2-consts.ts +10 -0
- package/src/interfaces/pbkdf2-result.ts +5 -0
- package/src/member.ts +429 -0
- package/{dist/pbkdf2-profiles.d.ts → src/pbkdf2-profiles.ts} +2 -2
- package/src/phone-number.ts +18 -0
- package/src/regexes.ts +10 -0
- package/src/secure-buffer.ts +183 -0
- package/src/secure-string.ts +229 -0
- package/src/services/aes-gcm.ts +177 -0
- package/src/services/ecies/README.md +147 -0
- package/src/services/ecies/crypto-core.ts +180 -0
- package/src/services/ecies/example.ts +185 -0
- package/src/services/ecies/file.ts +167 -0
- package/{dist/services/ecies/index.d.ts → src/services/ecies/index.ts} +3 -1
- package/src/services/ecies/integration.ts +241 -0
- package/src/services/ecies/interfaces.ts +59 -0
- package/src/services/ecies/manual-test.ts +219 -0
- package/src/services/ecies/multi-recipient.ts +394 -0
- package/src/services/ecies/service.ts +317 -0
- package/src/services/ecies/signature.ts +93 -0
- package/src/services/ecies/single-recipient.ts +340 -0
- package/{dist/services/index.d.ts → src/services/index.ts} +0 -1
- package/src/services/password-login.ts +228 -0
- package/src/services/pbkdf2.ts +172 -0
- package/src/services/xor.ts +65 -0
- package/src/types/deep-partial.ts +11 -0
- package/{dist/types.d.ts → src/types.ts} +10 -4
- package/src/utils.ts +331 -0
- package/dist/constants.d.ts +0 -46
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -358
- package/dist/constants.js.map +0 -1
- package/dist/email-string.d.ts +0 -42
- package/dist/email-string.d.ts.map +0 -1
- package/dist/email-string.js +0 -75
- package/dist/email-string.js.map +0 -1
- package/dist/enumerations/ecies-encryption-type.d.ts +0 -15
- package/dist/enumerations/ecies-encryption-type.d.ts.map +0 -1
- package/dist/enumerations/ecies-encryption-type.js +0 -71
- package/dist/enumerations/ecies-encryption-type.js.map +0 -1
- package/dist/enumerations/ecies-error-type.d.ts +0 -32
- package/dist/enumerations/ecies-error-type.d.ts.map +0 -1
- package/dist/enumerations/ecies-error-type.js +0 -36
- package/dist/enumerations/ecies-error-type.js.map +0 -1
- package/dist/enumerations/ecies-string-key.d.ts +0 -96
- package/dist/enumerations/ecies-string-key.d.ts.map +0 -1
- package/dist/enumerations/ecies-string-key.js +0 -105
- package/dist/enumerations/ecies-string-key.js.map +0 -1
- package/dist/enumerations/guid-brand-type.d.ts +0 -27
- package/dist/enumerations/guid-brand-type.d.ts.map +0 -1
- package/dist/enumerations/guid-brand-type.js +0 -31
- package/dist/enumerations/guid-brand-type.js.map +0 -1
- package/dist/enumerations/guid-error-type.d.ts +0 -7
- package/dist/enumerations/guid-error-type.d.ts.map +0 -1
- package/dist/enumerations/guid-error-type.js +0 -11
- package/dist/enumerations/guid-error-type.js.map +0 -1
- package/dist/enumerations/index.d.ts.map +0 -1
- package/dist/enumerations/index.js +0 -31
- package/dist/enumerations/index.js.map +0 -1
- package/dist/enumerations/invalid-email-type.d.ts +0 -6
- package/dist/enumerations/invalid-email-type.d.ts.map +0 -1
- package/dist/enumerations/invalid-email-type.js +0 -10
- package/dist/enumerations/invalid-email-type.js.map +0 -1
- package/dist/enumerations/length-encoding-type.d.ts +0 -7
- package/dist/enumerations/length-encoding-type.d.ts.map +0 -1
- package/dist/enumerations/length-encoding-type.js +0 -11
- package/dist/enumerations/length-encoding-type.js.map +0 -1
- package/dist/enumerations/length-error-type.d.ts +0 -6
- package/dist/enumerations/length-error-type.d.ts.map +0 -1
- package/dist/enumerations/length-error-type.js +0 -10
- package/dist/enumerations/length-error-type.js.map +0 -1
- package/dist/enumerations/member-error-type.d.ts +0 -87
- package/dist/enumerations/member-error-type.d.ts.map +0 -1
- package/dist/enumerations/member-error-type.js +0 -91
- package/dist/enumerations/member-error-type.js.map +0 -1
- package/dist/enumerations/member-type.d.ts.map +0 -1
- package/dist/enumerations/member-type.js +0 -19
- package/dist/enumerations/member-type.js.map +0 -1
- package/dist/enumerations/password-login-error-type.d.ts +0 -5
- package/dist/enumerations/password-login-error-type.d.ts.map +0 -1
- package/dist/enumerations/password-login-error-type.js +0 -9
- package/dist/enumerations/password-login-error-type.js.map +0 -1
- package/dist/enumerations/pbkdf2-error-type.d.ts +0 -6
- package/dist/enumerations/pbkdf2-error-type.d.ts.map +0 -1
- package/dist/enumerations/pbkdf2-error-type.js +0 -10
- package/dist/enumerations/pbkdf2-error-type.js.map +0 -1
- package/dist/enumerations/pbkdf2-profile.d.ts +0 -6
- package/dist/enumerations/pbkdf2-profile.d.ts.map +0 -1
- package/dist/enumerations/pbkdf2-profile.js +0 -10
- package/dist/enumerations/pbkdf2-profile.js.map +0 -1
- package/dist/enumerations/secure-storage-error-type.d.ts +0 -6
- package/dist/enumerations/secure-storage-error-type.d.ts.map +0 -1
- package/dist/enumerations/secure-storage-error-type.js +0 -10
- package/dist/enumerations/secure-storage-error-type.js.map +0 -1
- package/dist/errors/disposed.d.ts +0 -4
- package/dist/errors/disposed.d.ts.map +0 -1
- package/dist/errors/disposed.js +0 -20
- package/dist/errors/disposed.js.map +0 -1
- package/dist/errors/ecies.d.ts +0 -7
- package/dist/errors/ecies.d.ts.map +0 -1
- package/dist/errors/ecies.js +0 -15
- package/dist/errors/ecies.js.map +0 -1
- package/dist/errors/guid.d.ts +0 -15
- package/dist/errors/guid.d.ts.map +0 -1
- package/dist/errors/guid.js +0 -26
- package/dist/errors/guid.js.map +0 -1
- package/dist/errors/index.d.ts.map +0 -1
- package/dist/errors/index.js +0 -25
- package/dist/errors/index.js.map +0 -1
- package/dist/errors/invalid-email.d.ts +0 -7
- package/dist/errors/invalid-email.d.ts.map +0 -1
- package/dist/errors/invalid-email.js +0 -14
- package/dist/errors/invalid-email.js.map +0 -1
- package/dist/errors/length.d.ts +0 -7
- package/dist/errors/length.d.ts.map +0 -1
- package/dist/errors/length.js +0 -14
- package/dist/errors/length.js.map +0 -1
- package/dist/errors/member.d.ts +0 -7
- package/dist/errors/member.d.ts.map +0 -1
- package/dist/errors/member.js +0 -14
- package/dist/errors/member.js.map +0 -1
- package/dist/errors/pbkdf2.d.ts +0 -7
- package/dist/errors/pbkdf2.d.ts.map +0 -1
- package/dist/errors/pbkdf2.js +0 -14
- package/dist/errors/pbkdf2.js.map +0 -1
- package/dist/errors/secure-storage.d.ts +0 -7
- package/dist/errors/secure-storage.d.ts.map +0 -1
- package/dist/errors/secure-storage.js +0 -15
- package/dist/errors/secure-storage.js.map +0 -1
- package/dist/errors/simple-ecies.d.ts +0 -6
- package/dist/errors/simple-ecies.d.ts.map +0 -1
- package/dist/errors/simple-ecies.js +0 -15
- package/dist/errors/simple-ecies.js.map +0 -1
- package/dist/errors/simple-test-error.d.ts +0 -4
- package/dist/errors/simple-test-error.d.ts.map +0 -1
- package/dist/errors/simple-test-error.js +0 -11
- package/dist/errors/simple-test-error.js.map +0 -1
- package/dist/guid.d.ts +0 -153
- package/dist/guid.d.ts.map +0 -1
- package/dist/guid.js +0 -647
- package/dist/guid.js.map +0 -1
- package/dist/i18n-setup.d.ts +0 -24
- package/dist/i18n-setup.d.ts.map +0 -1
- package/dist/i18n-setup.js +0 -837
- package/dist/i18n-setup.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -32
- package/dist/index.js.map +0 -1
- package/dist/interfaces/checksum-config.d.ts +0 -5
- package/dist/interfaces/checksum-config.d.ts.map +0 -1
- package/dist/interfaces/checksum-config.js +0 -3
- package/dist/interfaces/checksum-config.js.map +0 -1
- package/dist/interfaces/checksum-consts.d.ts +0 -11
- package/dist/interfaces/checksum-consts.d.ts.map +0 -1
- package/dist/interfaces/checksum-consts.js +0 -3
- package/dist/interfaces/checksum-consts.js.map +0 -1
- package/dist/interfaces/constants.d.ts +0 -45
- package/dist/interfaces/constants.d.ts.map +0 -1
- package/dist/interfaces/constants.js +0 -3
- package/dist/interfaces/constants.js.map +0 -1
- package/dist/interfaces/ecies-config.d.ts +0 -9
- package/dist/interfaces/ecies-config.d.ts.map +0 -1
- package/dist/interfaces/ecies-config.js +0 -3
- package/dist/interfaces/ecies-config.js.map +0 -1
- package/dist/interfaces/ecies-consts.d.ts +0 -58
- package/dist/interfaces/ecies-consts.d.ts.map +0 -1
- package/dist/interfaces/ecies-consts.js +0 -3
- package/dist/interfaces/ecies-consts.js.map +0 -1
- package/dist/interfaces/ecies-file-service.d.ts +0 -7
- package/dist/interfaces/ecies-file-service.d.ts.map +0 -1
- package/dist/interfaces/ecies-file-service.js +0 -3
- package/dist/interfaces/ecies-file-service.js.map +0 -1
- package/dist/interfaces/guid.d.ts +0 -45
- package/dist/interfaces/guid.d.ts.map +0 -1
- package/dist/interfaces/guid.js +0 -3
- package/dist/interfaces/guid.js.map +0 -1
- package/dist/interfaces/index.d.ts.map +0 -1
- package/dist/interfaces/index.js +0 -30
- package/dist/interfaces/index.js.map +0 -1
- package/dist/interfaces/library-error.d.ts +0 -23
- package/dist/interfaces/library-error.d.ts.map +0 -1
- package/dist/interfaces/library-error.js +0 -3
- package/dist/interfaces/library-error.js.map +0 -1
- package/dist/interfaces/member-operational.d.ts +0 -40
- package/dist/interfaces/member-operational.d.ts.map +0 -1
- package/dist/interfaces/member-operational.js +0 -3
- package/dist/interfaces/member-operational.js.map +0 -1
- package/dist/interfaces/member-storage.d.ts.map +0 -1
- package/dist/interfaces/member-storage.js +0 -3
- package/dist/interfaces/member-storage.js.map +0 -1
- package/dist/interfaces/member-with-mnemonic.d.ts.map +0 -1
- package/dist/interfaces/member-with-mnemonic.js +0 -3
- package/dist/interfaces/member-with-mnemonic.js.map +0 -1
- package/dist/interfaces/pbkdf2-config.d.ts +0 -7
- package/dist/interfaces/pbkdf2-config.d.ts.map +0 -1
- package/dist/interfaces/pbkdf2-config.js +0 -3
- package/dist/interfaces/pbkdf2-config.js.map +0 -1
- package/dist/interfaces/pbkdf2-consts.d.ts +0 -9
- package/dist/interfaces/pbkdf2-consts.d.ts.map +0 -1
- package/dist/interfaces/pbkdf2-consts.js +0 -3
- package/dist/interfaces/pbkdf2-consts.js.map +0 -1
- package/dist/interfaces/pbkdf2-result.d.ts +0 -6
- package/dist/interfaces/pbkdf2-result.d.ts.map +0 -1
- package/dist/interfaces/pbkdf2-result.js +0 -3
- package/dist/interfaces/pbkdf2-result.js.map +0 -1
- package/dist/member.d.ts +0 -66
- package/dist/member.d.ts.map +0 -1
- package/dist/member.js +0 -271
- package/dist/member.js.map +0 -1
- package/dist/pbkdf2-profiles.d.ts.map +0 -1
- package/dist/pbkdf2-profiles.js +0 -3
- package/dist/pbkdf2-profiles.js.map +0 -1
- package/dist/phone-number.d.ts +0 -6
- package/dist/phone-number.d.ts.map +0 -1
- package/dist/phone-number.js +0 -22
- package/dist/phone-number.js.map +0 -1
- package/dist/regexes.d.ts +0 -7
- package/dist/regexes.d.ts.map +0 -1
- package/dist/regexes.js +0 -10
- package/dist/regexes.js.map +0 -1
- package/dist/secure-buffer.d.ts +0 -38
- package/dist/secure-buffer.d.ts.map +0 -1
- package/dist/secure-buffer.js +0 -168
- package/dist/secure-buffer.js.map +0 -1
- package/dist/secure-string.d.ts +0 -39
- package/dist/secure-string.d.ts.map +0 -1
- package/dist/secure-string.js +0 -195
- package/dist/secure-string.js.map +0 -1
- package/dist/services/aes-gcm.d.ts +0 -57
- package/dist/services/aes-gcm.d.ts.map +0 -1
- package/dist/services/aes-gcm.js +0 -111
- package/dist/services/aes-gcm.js.map +0 -1
- package/dist/services/ecies/crypto-core.d.ts +0 -51
- package/dist/services/ecies/crypto-core.d.ts.map +0 -1
- package/dist/services/ecies/crypto-core.js +0 -139
- package/dist/services/ecies/crypto-core.js.map +0 -1
- package/dist/services/ecies/example.d.ts +0 -25
- package/dist/services/ecies/example.d.ts.map +0 -1
- package/dist/services/ecies/example.js +0 -128
- package/dist/services/ecies/example.js.map +0 -1
- package/dist/services/ecies/file.d.ts +0 -18
- package/dist/services/ecies/file.d.ts.map +0 -1
- package/dist/services/ecies/file.js +0 -110
- package/dist/services/ecies/file.js.map +0 -1
- package/dist/services/ecies/index.d.ts.map +0 -1
- package/dist/services/ecies/index.js +0 -57
- package/dist/services/ecies/index.js.map +0 -1
- package/dist/services/ecies/integration.d.ts +0 -59
- package/dist/services/ecies/integration.d.ts.map +0 -1
- package/dist/services/ecies/integration.js +0 -172
- package/dist/services/ecies/integration.js.map +0 -1
- package/dist/services/ecies/interfaces.d.ts +0 -51
- package/dist/services/ecies/interfaces.d.ts.map +0 -1
- package/dist/services/ecies/interfaces.js +0 -6
- package/dist/services/ecies/interfaces.js.map +0 -1
- package/dist/services/ecies/manual-test.d.ts +0 -29
- package/dist/services/ecies/manual-test.d.ts.map +0 -1
- package/dist/services/ecies/manual-test.js +0 -171
- package/dist/services/ecies/manual-test.js.map +0 -1
- package/dist/services/ecies/multi-recipient.d.ts +0 -52
- package/dist/services/ecies/multi-recipient.d.ts.map +0 -1
- package/dist/services/ecies/multi-recipient.js +0 -243
- package/dist/services/ecies/multi-recipient.js.map +0 -1
- package/dist/services/ecies/service.d.ts +0 -104
- package/dist/services/ecies/service.d.ts.map +0 -1
- package/dist/services/ecies/service.js +0 -192
- package/dist/services/ecies/service.js.map +0 -1
- package/dist/services/ecies/signature.d.ts +0 -27
- package/dist/services/ecies/signature.d.ts.map +0 -1
- package/dist/services/ecies/signature.js +0 -76
- package/dist/services/ecies/signature.js.map +0 -1
- package/dist/services/ecies/single-recipient.d.ts +0 -46
- package/dist/services/ecies/single-recipient.d.ts.map +0 -1
- package/dist/services/ecies/single-recipient.js +0 -212
- package/dist/services/ecies/single-recipient.js.map +0 -1
- package/dist/services/index.d.ts.map +0 -1
- package/dist/services/index.js +0 -22
- package/dist/services/index.js.map +0 -1
- package/dist/services/password-login.d.ts +0 -49
- package/dist/services/password-login.d.ts.map +0 -1
- package/dist/services/password-login.js +0 -121
- package/dist/services/password-login.js.map +0 -1
- package/dist/services/pbkdf2.d.ts +0 -56
- package/dist/services/pbkdf2.d.ts.map +0 -1
- package/dist/services/pbkdf2.js +0 -114
- package/dist/services/pbkdf2.js.map +0 -1
- package/dist/services/xor.d.ts +0 -37
- package/dist/services/xor.d.ts.map +0 -1
- package/dist/services/xor.js +0 -67
- package/dist/services/xor.js.map +0 -1
- package/dist/types/deep-partial.d.ts +0 -4
- package/dist/types/deep-partial.d.ts.map +0 -1
- package/dist/types/deep-partial.js +0 -3
- package/dist/types/deep-partial.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
- package/dist/utils.d.ts +0 -68
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -288
- package/dist/utils.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-core.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/crypto-core.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAIhE;;;GAGG;AACH,qBAAa,eAAe;IAC1B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IACzC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;gBAErC,MAAM,EAAE,YAAY,EAAE,WAAW,GAAE,eAAiC;IAOhF,IAAW,MAAM,IAAI,YAAY,CAEhC;IAED;;OAEG;IACI,kBAAkB,CAAC,SAAS,EAAE,UAAU,GAAG,UAAU;IA4B5D;;OAEG;IACI,mBAAmB,IAAI,YAAY;IAM1C;;OAEG;IACI,yBAAyB,CAAC,QAAQ,EAAE,YAAY,GAAG,WAAW;IAyBrE;;OAEG;IACI,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc;IAkB5D;;OAEG;IACI,uBAAuB,CAAC,QAAQ,EAAE,YAAY,GAAG,cAAc;IAKtE;;OAEG;IACI,kBAAkB,IAAI,UAAU;IAIvC;;OAEG;IACI,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU;IAMvD;;OAEG;IACU,wBAAwB,IAAI,OAAO,CAAC,cAAc,CAAC;IAMhE;;OAEG;IACI,mBAAmB,CACxB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,UAAU,GACpB,UAAU;CAcd"}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EciesCryptoCore = void 0;
|
|
4
|
-
const wallet_1 = require("@ethereumjs/wallet");
|
|
5
|
-
const bip32_1 = require("@scure/bip32");
|
|
6
|
-
const bip39_1 = require("@scure/bip39");
|
|
7
|
-
const english_1 = require("@scure/bip39/wordlists/english");
|
|
8
|
-
const constants_1 = require("../../constants");
|
|
9
|
-
const secure_string_1 = require("../../secure-string");
|
|
10
|
-
const secp256k1_js_1 = require("@noble/curves/secp256k1.js");
|
|
11
|
-
const i18n_setup_1 = require("../../i18n-setup");
|
|
12
|
-
const enumerations_1 = require("../../enumerations");
|
|
13
|
-
/**
|
|
14
|
-
* Browser-compatible crypto core for ECIES operations
|
|
15
|
-
* Uses @scure libraries for browser compatibility
|
|
16
|
-
*/
|
|
17
|
-
class EciesCryptoCore {
|
|
18
|
-
_config;
|
|
19
|
-
_eciesConsts;
|
|
20
|
-
constructor(config, eciesParams = constants_1.Constants.ECIES) {
|
|
21
|
-
this._config = config;
|
|
22
|
-
this._eciesConsts = eciesParams;
|
|
23
|
-
}
|
|
24
|
-
get config() {
|
|
25
|
-
return this._config;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Validates and normalizes a public key for ECIES operations
|
|
29
|
-
*/
|
|
30
|
-
normalizePublicKey(publicKey) {
|
|
31
|
-
if (!publicKey) {
|
|
32
|
-
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
33
|
-
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_ReceivedNullOrUndefinedPublicKey));
|
|
34
|
-
}
|
|
35
|
-
const keyLength = publicKey.length;
|
|
36
|
-
// Already in correct format (65 bytes with 0x04 prefix)
|
|
37
|
-
if (keyLength === this._eciesConsts.PUBLIC_KEY_LENGTH &&
|
|
38
|
-
publicKey[0] === this._eciesConsts.PUBLIC_KEY_MAGIC) {
|
|
39
|
-
return publicKey;
|
|
40
|
-
}
|
|
41
|
-
// Raw key without prefix (64 bytes) - add the 0x04 prefix
|
|
42
|
-
if (keyLength === this._eciesConsts.RAW_PUBLIC_KEY_LENGTH) {
|
|
43
|
-
const result = new Uint8Array(this._eciesConsts.PUBLIC_KEY_LENGTH);
|
|
44
|
-
result[0] = this._eciesConsts.PUBLIC_KEY_MAGIC;
|
|
45
|
-
result.set(publicKey, 1);
|
|
46
|
-
return result;
|
|
47
|
-
}
|
|
48
|
-
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
49
|
-
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidPublicKeyFormatOrLengthTemplate, { keyLength }));
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Generate a new mnemonic
|
|
53
|
-
*/
|
|
54
|
-
generateNewMnemonic() {
|
|
55
|
-
return new secure_string_1.SecureString((0, bip39_1.generateMnemonic)(english_1.wordlist, this._config.mnemonicStrength));
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Generate wallet and seed from mnemonic
|
|
59
|
-
*/
|
|
60
|
-
walletAndSeedFromMnemonic(mnemonic) {
|
|
61
|
-
if (!mnemonic || !(0, bip39_1.validateMnemonic)(mnemonic.value ?? '', english_1.wordlist)) {
|
|
62
|
-
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
63
|
-
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidMnemonic));
|
|
64
|
-
}
|
|
65
|
-
const seed = (0, bip39_1.mnemonicToSeedSync)(mnemonic.value ?? '');
|
|
66
|
-
const hdKey = bip32_1.HDKey.fromMasterSeed(seed);
|
|
67
|
-
const derivedKey = hdKey.derive(this._config.primaryKeyDerivationPath);
|
|
68
|
-
if (!derivedKey.privateKey) {
|
|
69
|
-
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
70
|
-
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_FailedToDervivePrivateKey));
|
|
71
|
-
}
|
|
72
|
-
const privateKey = derivedKey.privateKey;
|
|
73
|
-
const wallet = new wallet_1.Wallet(privateKey);
|
|
74
|
-
return {
|
|
75
|
-
wallet,
|
|
76
|
-
seed,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Create a simple key pair from a seed
|
|
81
|
-
*/
|
|
82
|
-
seedToSimpleKeyPair(seed) {
|
|
83
|
-
const hdKey = bip32_1.HDKey.fromMasterSeed(seed);
|
|
84
|
-
const derivedKey = hdKey.derive(this._config.primaryKeyDerivationPath);
|
|
85
|
-
if (!derivedKey.privateKey) {
|
|
86
|
-
const engine = (0, i18n_setup_1.getEciesI18nEngine)();
|
|
87
|
-
throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_FailedToDervivePrivateKey));
|
|
88
|
-
}
|
|
89
|
-
const privateKey = derivedKey.privateKey;
|
|
90
|
-
const publicKey = secp256k1_js_1.secp256k1.getPublicKey(privateKey, false); // uncompressed with 0x04 prefix
|
|
91
|
-
return {
|
|
92
|
-
privateKey,
|
|
93
|
-
publicKey,
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Create a simple key pair from a mnemonic
|
|
98
|
-
*/
|
|
99
|
-
mnemonicToSimpleKeyPair(mnemonic) {
|
|
100
|
-
const { seed } = this.walletAndSeedFromMnemonic(mnemonic);
|
|
101
|
-
return this.seedToSimpleKeyPair(seed);
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Generate a random private key
|
|
105
|
-
*/
|
|
106
|
-
generatePrivateKey() {
|
|
107
|
-
return secp256k1_js_1.secp256k1.utils.randomSecretKey();
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Get public key from private key
|
|
111
|
-
*/
|
|
112
|
-
getPublicKey(privateKey) {
|
|
113
|
-
const publicKeyPoint = secp256k1_js_1.secp256k1.getPublicKey(privateKey, false); // uncompressed
|
|
114
|
-
// publicKeyPoint already includes the 0x04 prefix, so return as-is
|
|
115
|
-
return publicKeyPoint;
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Generate ephemeral key pair for ECIES
|
|
119
|
-
*/
|
|
120
|
-
async generateEphemeralKeyPair() {
|
|
121
|
-
const privateKey = this.generatePrivateKey();
|
|
122
|
-
const publicKey = this.getPublicKey(privateKey);
|
|
123
|
-
return { privateKey, publicKey };
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Compute ECDH shared secret
|
|
127
|
-
*/
|
|
128
|
-
computeSharedSecret(privateKey, publicKey) {
|
|
129
|
-
// Normalize the public key to ensure it has the correct format
|
|
130
|
-
const normalizedPublicKey = this.normalizePublicKey(publicKey);
|
|
131
|
-
// Use uncompressed shared secret to match Node.js ECDH behavior
|
|
132
|
-
// Node.js ECDH.computeSecret() returns the x-coordinate of the shared point
|
|
133
|
-
const sharedSecret = secp256k1_js_1.secp256k1.getSharedSecret(privateKey, normalizedPublicKey, false);
|
|
134
|
-
// Return only the x-coordinate (first 32 bytes after the 0x04 prefix)
|
|
135
|
-
return sharedSecret.slice(1, 33);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
exports.EciesCryptoCore = EciesCryptoCore;
|
|
139
|
-
//# sourceMappingURL=crypto-core.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-core.js","sourceRoot":"","sources":["../../../src/services/ecies/crypto-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Example usage of the browser-compatible ECIES service
|
|
3
|
-
* This file demonstrates how to use the web-based ECIES implementation
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Example: Basic encryption and decryption
|
|
7
|
-
*/
|
|
8
|
-
export declare function basicEncryptionExample(): Promise<void>;
|
|
9
|
-
/**
|
|
10
|
-
* Example: Simple mode encryption (without CRC)
|
|
11
|
-
*/
|
|
12
|
-
export declare function simpleEncryptionExample(): Promise<void>;
|
|
13
|
-
/**
|
|
14
|
-
* Example: Digital signature
|
|
15
|
-
*/
|
|
16
|
-
export declare function signatureExample(): Promise<void>;
|
|
17
|
-
/**
|
|
18
|
-
* Example: Wallet derivation from mnemonic
|
|
19
|
-
*/
|
|
20
|
-
export declare function walletDerivationExample(): Promise<void>;
|
|
21
|
-
/**
|
|
22
|
-
* Run all examples
|
|
23
|
-
*/
|
|
24
|
-
export declare function runAllExamples(): Promise<void>;
|
|
25
|
-
//# sourceMappingURL=example.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/example.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsC5D;AAED;;GAEG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsC7D;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CA+BtD;AAED;;GAEG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CA6B7D;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAUpD"}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Example usage of the browser-compatible ECIES service
|
|
4
|
-
* This file demonstrates how to use the web-based ECIES implementation
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.basicEncryptionExample = basicEncryptionExample;
|
|
8
|
-
exports.simpleEncryptionExample = simpleEncryptionExample;
|
|
9
|
-
exports.signatureExample = signatureExample;
|
|
10
|
-
exports.walletDerivationExample = walletDerivationExample;
|
|
11
|
-
exports.runAllExamples = runAllExamples;
|
|
12
|
-
const secure_string_1 = require("../../secure-string");
|
|
13
|
-
const utils_1 = require("../../utils");
|
|
14
|
-
const service_1 = require("./service");
|
|
15
|
-
// https://docs.rs/bip39/latest/src/bip39/lib.rs.html
|
|
16
|
-
/**
|
|
17
|
-
* Example: Basic encryption and decryption
|
|
18
|
-
*/
|
|
19
|
-
async function basicEncryptionExample() {
|
|
20
|
-
console.log('=== Basic ECIES Encryption Example ===');
|
|
21
|
-
// Create ECIES service instance
|
|
22
|
-
const ecies = new service_1.ECIESService();
|
|
23
|
-
// Generate a mnemonic and derive keys
|
|
24
|
-
const mnemonic = ecies.generateNewMnemonic();
|
|
25
|
-
console.log('Generated mnemonic:', mnemonic);
|
|
26
|
-
const { privateKey, publicKey } = ecies.mnemonicToSimpleKeyPair(mnemonic);
|
|
27
|
-
console.log('Private key hash:', (0, utils_1.uint8ArrayToHex)(privateKey).slice(0, 16) + '...');
|
|
28
|
-
console.log('Public key:', (0, utils_1.uint8ArrayToHex)(publicKey));
|
|
29
|
-
// Message to encrypt
|
|
30
|
-
const message = (0, utils_1.stringToUint8Array)('Hello, Digital Defiance!');
|
|
31
|
-
console.log('Original message:', (0, utils_1.uint8ArrayToString)(message));
|
|
32
|
-
// Encrypt using single mode (with CRC and length)
|
|
33
|
-
const encrypted = await ecies.encryptSimpleOrSingle(false, publicKey, message);
|
|
34
|
-
console.log('Encrypted data length:', encrypted.length);
|
|
35
|
-
console.log('Encrypted data (hex):', (0, utils_1.uint8ArrayToHex)(encrypted));
|
|
36
|
-
// Decrypt the message
|
|
37
|
-
const decrypted = await ecies.decryptSimpleOrSingleWithHeader(false, privateKey, encrypted);
|
|
38
|
-
console.log('Decrypted message:', (0, utils_1.uint8ArrayToString)(decrypted));
|
|
39
|
-
// Verify the message matches
|
|
40
|
-
const matches = (0, utils_1.uint8ArrayToString)(message) === (0, utils_1.uint8ArrayToString)(decrypted);
|
|
41
|
-
console.log('Encryption/Decryption successful:', matches);
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Example: Simple mode encryption (without CRC)
|
|
45
|
-
*/
|
|
46
|
-
async function simpleEncryptionExample() {
|
|
47
|
-
console.log('\n=== Simple ECIES Encryption Example ===');
|
|
48
|
-
const ecies = new service_1.ECIESService();
|
|
49
|
-
// Generate keys for sender and receiver
|
|
50
|
-
const senderMnemonic = ecies.generateNewMnemonic();
|
|
51
|
-
const receiverMnemonic = ecies.generateNewMnemonic();
|
|
52
|
-
const senderKeys = ecies.mnemonicToSimpleKeyPair(senderMnemonic);
|
|
53
|
-
const receiverKeys = ecies.mnemonicToSimpleKeyPair(receiverMnemonic);
|
|
54
|
-
console.log('Sender public key:', (0, utils_1.uint8ArrayToHex)(senderKeys.publicKey));
|
|
55
|
-
console.log('Receiver public key:', (0, utils_1.uint8ArrayToHex)(receiverKeys.publicKey));
|
|
56
|
-
// Message to encrypt
|
|
57
|
-
const message = (0, utils_1.stringToUint8Array)('This is a simple encrypted message');
|
|
58
|
-
console.log('Original message:', (0, utils_1.uint8ArrayToString)(message));
|
|
59
|
-
// Encrypt using simple mode (no CRC, no length prefix)
|
|
60
|
-
const encrypted = await ecies.encryptSimpleOrSingle(true, receiverKeys.publicKey, message);
|
|
61
|
-
console.log('Encrypted data length:', encrypted.length);
|
|
62
|
-
// Decrypt the message
|
|
63
|
-
const decrypted = await ecies.decryptSimpleOrSingleWithHeader(true, receiverKeys.privateKey, encrypted);
|
|
64
|
-
console.log('Decrypted message:', (0, utils_1.uint8ArrayToString)(decrypted));
|
|
65
|
-
// Verify the message matches
|
|
66
|
-
const matches = (0, utils_1.uint8ArrayToString)(message) === (0, utils_1.uint8ArrayToString)(decrypted);
|
|
67
|
-
console.log('Simple encryption/decryption successful:', matches);
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Example: Digital signature
|
|
71
|
-
*/
|
|
72
|
-
async function signatureExample() {
|
|
73
|
-
console.log('\n=== Digital Signature Example ===');
|
|
74
|
-
const ecies = new service_1.ECIESService();
|
|
75
|
-
// Generate keys
|
|
76
|
-
const mnemonic = ecies.generateNewMnemonic();
|
|
77
|
-
const { privateKey, publicKey } = ecies.mnemonicToSimpleKeyPair(mnemonic);
|
|
78
|
-
// Message to sign
|
|
79
|
-
const message = (0, utils_1.stringToUint8Array)('This message is digitally signed');
|
|
80
|
-
console.log('Message to sign:', (0, utils_1.uint8ArrayToString)(message));
|
|
81
|
-
// Sign the message
|
|
82
|
-
const signature = ecies.signMessage(privateKey, message);
|
|
83
|
-
console.log('Signature:', (0, utils_1.uint8ArrayToHex)(signature));
|
|
84
|
-
// Verify the signature
|
|
85
|
-
const isValid = ecies.verifyMessage(publicKey, message, signature);
|
|
86
|
-
console.log('Signature valid:', isValid);
|
|
87
|
-
// Test with tampered message
|
|
88
|
-
const tamperedMessage = (0, utils_1.stringToUint8Array)('This message has been tampered with');
|
|
89
|
-
const isTamperedValid = ecies.verifyMessage(publicKey, tamperedMessage, signature);
|
|
90
|
-
console.log('Tampered message signature valid:', isTamperedValid);
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Example: Wallet derivation from mnemonic
|
|
94
|
-
*/
|
|
95
|
-
async function walletDerivationExample() {
|
|
96
|
-
console.log('\n=== Wallet Derivation Example ===');
|
|
97
|
-
const ecies = new service_1.ECIESService();
|
|
98
|
-
// Use a known mnemonic for reproducible results
|
|
99
|
-
const mnemonic = new secure_string_1.SecureString('abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about');
|
|
100
|
-
console.log('Test mnemonic: [REDACTED - known test mnemonic]');
|
|
101
|
-
// Derive wallet
|
|
102
|
-
const { wallet, seed } = ecies.walletAndSeedFromMnemonic(mnemonic);
|
|
103
|
-
console.log('Seed:', (0, utils_1.uint8ArrayToHex)(seed));
|
|
104
|
-
console.log('Private key hash:', (0, utils_1.uint8ArrayToHex)(wallet.getPrivateKey()).slice(0, 16) + '...');
|
|
105
|
-
console.log('Public key:', (0, utils_1.uint8ArrayToHex)(wallet.getPublicKey()));
|
|
106
|
-
// Derive the same keys using the simple method
|
|
107
|
-
const simpleKeys = ecies.mnemonicToSimpleKeyPair(mnemonic);
|
|
108
|
-
console.log('Simple private key matches:', (0, utils_1.uint8ArrayToHex)(wallet.getPrivateKey()) ===
|
|
109
|
-
(0, utils_1.uint8ArrayToHex)(simpleKeys.privateKey));
|
|
110
|
-
console.log('Simple public key matches:', (0, utils_1.uint8ArrayToHex)(wallet.getPublicKey()) ===
|
|
111
|
-
(0, utils_1.uint8ArrayToHex)(simpleKeys.publicKey));
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Run all examples
|
|
115
|
-
*/
|
|
116
|
-
async function runAllExamples() {
|
|
117
|
-
try {
|
|
118
|
-
await basicEncryptionExample();
|
|
119
|
-
await simpleEncryptionExample();
|
|
120
|
-
await signatureExample();
|
|
121
|
-
await walletDerivationExample();
|
|
122
|
-
console.log('\n=== All examples completed successfully! ===');
|
|
123
|
-
}
|
|
124
|
-
catch (error) {
|
|
125
|
-
console.error('Example failed:', error);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
//# sourceMappingURL=example.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"example.js","sourceRoot":"","sources":["../../../src/services/ecies/example.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAeH,wDAsCC;AAKD,0DAsCC;AAKD,4CA+BC;AAKD,0DA6BC;AAKD,wCAUC;AAnLD,uDAAmD;AACnD,uCAIqB;AACrB,uCAAyC;AAEzC,qDAAqD;AAErD;;GAEG;AACI,KAAK,UAAU,sBAAsB;IAC1C,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAEtD,gCAAgC;IAChC,MAAM,KAAK,GAAG,IAAI,sBAAY,EAAE,CAAC;IAEjC,sCAAsC;IACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IAE7C,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAA,uBAAe,EAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,CAAC,CAAC;IAEvD,qBAAqB;IACrB,MAAM,OAAO,GAAG,IAAA,0BAAkB,EAAC,0BAA0B,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAA,0BAAkB,EAAC,OAAO,CAAC,CAAC,CAAC;IAE9D,kDAAkD;IAClD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,qBAAqB,CACjD,KAAK,EACL,SAAS,EACT,OAAO,CACR,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,CAAC,CAAC;IAEjE,sBAAsB;IACtB,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,+BAA+B,CAC3D,KAAK,EACL,UAAU,EACV,SAAS,CACV,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAA,0BAAkB,EAAC,SAAS,CAAC,CAAC,CAAC;IAEjE,6BAA6B;IAC7B,MAAM,OAAO,GAAG,IAAA,0BAAkB,EAAC,OAAO,CAAC,KAAK,IAAA,0BAAkB,EAAC,SAAS,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,uBAAuB;IAC3C,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAEzD,MAAM,KAAK,GAAG,IAAI,sBAAY,EAAE,CAAC;IAEjC,wCAAwC;IACxC,MAAM,cAAc,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;IACnD,MAAM,gBAAgB,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;IAErD,MAAM,UAAU,GAAG,KAAK,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,KAAK,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;IAErE,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAA,uBAAe,EAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAA,uBAAe,EAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IAE7E,qBAAqB;IACrB,MAAM,OAAO,GAAG,IAAA,0BAAkB,EAAC,oCAAoC,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAA,0BAAkB,EAAC,OAAO,CAAC,CAAC,CAAC;IAE9D,uDAAuD;IACvD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,qBAAqB,CACjD,IAAI,EACJ,YAAY,CAAC,SAAS,EACtB,OAAO,CACR,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAExD,sBAAsB;IACtB,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,+BAA+B,CAC3D,IAAI,EACJ,YAAY,CAAC,UAAU,EACvB,SAAS,CACV,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAA,0BAAkB,EAAC,SAAS,CAAC,CAAC,CAAC;IAEjE,6BAA6B;IAC7B,MAAM,OAAO,GAAG,IAAA,0BAAkB,EAAC,OAAO,CAAC,KAAK,IAAA,0BAAkB,EAAC,SAAS,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,gBAAgB;IACpC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAEnD,MAAM,KAAK,GAAG,IAAI,sBAAY,EAAE,CAAC;IAEjC,gBAAgB;IAChB,MAAM,QAAQ,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;IAC7C,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAE1E,kBAAkB;IAClB,MAAM,OAAO,GAAG,IAAA,0BAAkB,EAAC,kCAAkC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAA,0BAAkB,EAAC,OAAO,CAAC,CAAC,CAAC;IAE7D,mBAAmB;IACnB,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,CAAC,CAAC;IAEtD,uBAAuB;IACvB,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAEzC,6BAA6B;IAC7B,MAAM,eAAe,GAAG,IAAA,0BAAkB,EACxC,qCAAqC,CACtC,CAAC;IACF,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CACzC,SAAS,EACT,eAAe,EACf,SAAS,CACV,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,eAAe,CAAC,CAAC;AACpE,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,uBAAuB;IAC3C,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAEnD,MAAM,KAAK,GAAG,IAAI,sBAAY,EAAE,CAAC;IAEjC,gDAAgD;IAChD,MAAM,QAAQ,GAAG,IAAI,4BAAY,CAC/B,+FAA+F,CAChG,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAE/D,gBAAgB;IAChB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAA,uBAAe,EAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAA,uBAAe,EAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAEnE,+CAA+C;IAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CACT,6BAA6B,EAC7B,IAAA,uBAAe,EAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QACrC,IAAA,uBAAe,EAAC,UAAU,CAAC,UAAU,CAAC,CACzC,CAAC;IACF,OAAO,CAAC,GAAG,CACT,4BAA4B,EAC5B,IAAA,uBAAe,EAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACpC,IAAA,uBAAe,EAAC,UAAU,CAAC,SAAS,CAAC,CACxC,CAAC;AACJ,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC;QACH,MAAM,sBAAsB,EAAE,CAAC;QAC/B,MAAM,uBAAuB,EAAE,CAAC;QAChC,MAAM,gBAAgB,EAAE,CAAC;QACzB,MAAM,uBAAuB,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { IEciesFileService } from '../../interfaces/ecies-file-service';
|
|
2
|
-
import { ECIESService } from './service';
|
|
3
|
-
export declare class EciesFileService implements IEciesFileService {
|
|
4
|
-
private eciesService;
|
|
5
|
-
private userPrivateKey;
|
|
6
|
-
private static readonly CHUNK_SIZE;
|
|
7
|
-
private static readonly HEADER_SIZE;
|
|
8
|
-
constructor(eciesService: ECIESService, userPrivateKey: Uint8Array);
|
|
9
|
-
encryptFile(file: File, recipientPublicKey: Uint8Array): Promise<Uint8Array>;
|
|
10
|
-
decryptFile(encryptedData: Uint8Array): Promise<Uint8Array>;
|
|
11
|
-
downloadEncryptedFile(encryptedData: Uint8Array, filename: string): void;
|
|
12
|
-
downloadDecryptedFile(decryptedData: Uint8Array, filename: string): void;
|
|
13
|
-
private serializeHeader;
|
|
14
|
-
private deserializeHeader;
|
|
15
|
-
private parseEncryptedFile;
|
|
16
|
-
private downloadFile;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=file.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AASzC,qBAAa,gBAAiB,YAAW,iBAAiB;IAKtD,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,cAAc;IALxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAe;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAM;gBAG/B,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,UAAU;IAG9B,WAAW,CACf,IAAI,EAAE,IAAI,EACV,kBAAkB,EAAE,UAAU,GAC7B,OAAO,CAAC,UAAU,CAAC;IAwChB,WAAW,CAAC,aAAa,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAuBjE,qBAAqB,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIxE,qBAAqB,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIxE,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,iBAAiB;YAcX,kBAAkB;IAsChC,OAAO,CAAC,YAAY;CAWrB"}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EciesFileService = void 0;
|
|
4
|
-
class EciesFileService {
|
|
5
|
-
eciesService;
|
|
6
|
-
userPrivateKey;
|
|
7
|
-
static CHUNK_SIZE = 1024 * 1024; // 1MB chunks
|
|
8
|
-
static HEADER_SIZE = 20; // 4 bytes each: version, chunkSize, totalChunks, originalSize, padding
|
|
9
|
-
constructor(eciesService, userPrivateKey) {
|
|
10
|
-
this.eciesService = eciesService;
|
|
11
|
-
this.userPrivateKey = userPrivateKey;
|
|
12
|
-
}
|
|
13
|
-
async encryptFile(file, recipientPublicKey) {
|
|
14
|
-
const totalChunks = Math.ceil(file.size / EciesFileService.CHUNK_SIZE);
|
|
15
|
-
const header = {
|
|
16
|
-
version: 1,
|
|
17
|
-
chunkSize: EciesFileService.CHUNK_SIZE,
|
|
18
|
-
totalChunks,
|
|
19
|
-
originalSize: file.size,
|
|
20
|
-
};
|
|
21
|
-
const headerBytes = this.serializeHeader(header);
|
|
22
|
-
const encryptedHeader = await this.eciesService.encryptSimpleOrSingle(false, recipientPublicKey, headerBytes);
|
|
23
|
-
const chunks = [encryptedHeader];
|
|
24
|
-
for (let i = 0; i < totalChunks; i++) {
|
|
25
|
-
const offset = i * EciesFileService.CHUNK_SIZE;
|
|
26
|
-
const chunk = file.slice(offset, offset + EciesFileService.CHUNK_SIZE);
|
|
27
|
-
const chunkData = new Uint8Array(await chunk.arrayBuffer());
|
|
28
|
-
const encryptedChunk = await this.eciesService.encryptSimpleOrSingle(false, recipientPublicKey, chunkData);
|
|
29
|
-
chunks.push(encryptedChunk);
|
|
30
|
-
}
|
|
31
|
-
const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
|
|
32
|
-
const result = new Uint8Array(totalLength);
|
|
33
|
-
let offset = 0;
|
|
34
|
-
for (const chunk of chunks) {
|
|
35
|
-
result.set(chunk, offset);
|
|
36
|
-
offset += chunk.length;
|
|
37
|
-
}
|
|
38
|
-
return result;
|
|
39
|
-
}
|
|
40
|
-
async decryptFile(encryptedData) {
|
|
41
|
-
const { header, chunks } = await this.parseEncryptedFile(encryptedData);
|
|
42
|
-
const decryptedChunks = [];
|
|
43
|
-
for (const chunk of chunks) {
|
|
44
|
-
const decrypted = await this.eciesService.decryptSimpleOrSingleWithHeader(false, this.userPrivateKey, chunk);
|
|
45
|
-
decryptedChunks.push(decrypted);
|
|
46
|
-
}
|
|
47
|
-
const result = new Uint8Array(header.originalSize);
|
|
48
|
-
let offset = 0;
|
|
49
|
-
for (const chunk of decryptedChunks) {
|
|
50
|
-
const copyLength = Math.min(chunk.length, header.originalSize - offset);
|
|
51
|
-
result.set(chunk.subarray(0, copyLength), offset);
|
|
52
|
-
offset += copyLength;
|
|
53
|
-
}
|
|
54
|
-
return result;
|
|
55
|
-
}
|
|
56
|
-
downloadEncryptedFile(encryptedData, filename) {
|
|
57
|
-
this.downloadFile(encryptedData, `${filename}.encrypted`);
|
|
58
|
-
}
|
|
59
|
-
downloadDecryptedFile(decryptedData, filename) {
|
|
60
|
-
this.downloadFile(decryptedData, filename);
|
|
61
|
-
}
|
|
62
|
-
serializeHeader(header) {
|
|
63
|
-
const buffer = new ArrayBuffer(EciesFileService.HEADER_SIZE);
|
|
64
|
-
const view = new DataView(buffer);
|
|
65
|
-
view.setUint32(0, header.version, false);
|
|
66
|
-
view.setUint32(4, header.chunkSize, false);
|
|
67
|
-
view.setUint32(8, header.totalChunks, false);
|
|
68
|
-
view.setUint32(12, header.originalSize, false);
|
|
69
|
-
return new Uint8Array(buffer);
|
|
70
|
-
}
|
|
71
|
-
deserializeHeader(data) {
|
|
72
|
-
const view = new DataView(data.buffer, data.byteOffset, EciesFileService.HEADER_SIZE);
|
|
73
|
-
return {
|
|
74
|
-
version: view.getUint32(0, false),
|
|
75
|
-
chunkSize: view.getUint32(4, false),
|
|
76
|
-
totalChunks: view.getUint32(8, false),
|
|
77
|
-
originalSize: view.getUint32(12, false),
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
async parseEncryptedFile(encryptedData) {
|
|
81
|
-
// First, decrypt the header to get metadata
|
|
82
|
-
const headerLength = this.eciesService.computeEncryptedLengthFromDataLength(EciesFileService.HEADER_SIZE, 'single');
|
|
83
|
-
const encryptedHeader = encryptedData.subarray(0, headerLength);
|
|
84
|
-
const decryptedHeaderBytes = await this.eciesService.decryptSimpleOrSingleWithHeader(false, this.userPrivateKey, encryptedHeader);
|
|
85
|
-
const header = this.deserializeHeader(decryptedHeaderBytes);
|
|
86
|
-
const chunks = [];
|
|
87
|
-
let offset = headerLength;
|
|
88
|
-
for (let i = 0; i < header.totalChunks; i++) {
|
|
89
|
-
const chunkLength = this.eciesService.computeEncryptedLengthFromDataLength(i === header.totalChunks - 1
|
|
90
|
-
? header.originalSize % header.chunkSize || header.chunkSize
|
|
91
|
-
: header.chunkSize, 'single');
|
|
92
|
-
chunks.push(encryptedData.subarray(offset, offset + chunkLength));
|
|
93
|
-
offset += chunkLength;
|
|
94
|
-
}
|
|
95
|
-
return { header, chunks };
|
|
96
|
-
}
|
|
97
|
-
downloadFile(data, filename) {
|
|
98
|
-
const blob = new Blob([data.slice()]);
|
|
99
|
-
const url = URL.createObjectURL(blob);
|
|
100
|
-
const a = document.createElement('a');
|
|
101
|
-
a.href = url;
|
|
102
|
-
a.download = filename;
|
|
103
|
-
document.body.appendChild(a);
|
|
104
|
-
a.click();
|
|
105
|
-
document.body.removeChild(a);
|
|
106
|
-
URL.revokeObjectURL(url);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
exports.EciesFileService = EciesFileService;
|
|
110
|
-
//# sourceMappingURL=file.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/services/ecies/file.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AAGnC,OAAO,EAAE,YAAY,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Browser-compatible ECIES service exports
|
|
4
|
-
*
|
|
5
|
-
* This module provides a web-based implementation of the ECIES (Elliptic Curve Integrated Encryption Scheme)
|
|
6
|
-
* service that mirrors the functionality of the server-side implementation but uses browser-compatible libraries.
|
|
7
|
-
*
|
|
8
|
-
* Key features:
|
|
9
|
-
* - Mnemonic generation and wallet derivation using @scure/bip39 and @scure/bip32
|
|
10
|
-
* - ECDH key exchange using @noble/curves/secp256k1
|
|
11
|
-
* - AES-GCM encryption using Web Crypto API
|
|
12
|
-
* - ECDSA signatures using @noble/curves/secp256k1
|
|
13
|
-
* - Single and simple recipient encryption modes
|
|
14
|
-
* - CRC16 validation for data integrity
|
|
15
|
-
*
|
|
16
|
-
* Usage:
|
|
17
|
-
* ```typescript
|
|
18
|
-
* import { ECIESService } from './services/ecies';
|
|
19
|
-
*
|
|
20
|
-
* const ecies = new ECIESService();
|
|
21
|
-
* const mnemonic = ecies.generateNewMnemonic();
|
|
22
|
-
* const { privateKey, publicKey } = ecies.mnemonicToSimpleKeyPair(mnemonic);
|
|
23
|
-
*
|
|
24
|
-
* const message = new TextEncoder().encode('Hello, World!');
|
|
25
|
-
* const encrypted = await ecies.encryptSimpleOrSingle(false, publicKey, message);
|
|
26
|
-
* const decrypted = await ecies.decryptSimpleOrSingleWithHeader(false, privateKey, encrypted);
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
30
|
-
if (k2 === undefined) k2 = k;
|
|
31
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
32
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
33
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
34
|
-
}
|
|
35
|
-
Object.defineProperty(o, k2, desc);
|
|
36
|
-
}) : (function(o, m, k, k2) {
|
|
37
|
-
if (k2 === undefined) k2 = k;
|
|
38
|
-
o[k2] = m[k];
|
|
39
|
-
}));
|
|
40
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
41
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
42
|
-
};
|
|
43
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
-
exports.default = void 0;
|
|
45
|
-
__exportStar(require("./crypto-core"), exports);
|
|
46
|
-
__exportStar(require("./example"), exports);
|
|
47
|
-
__exportStar(require("./file"), exports);
|
|
48
|
-
__exportStar(require("./integration"), exports);
|
|
49
|
-
__exportStar(require("./interfaces"), exports);
|
|
50
|
-
__exportStar(require("./multi-recipient"), exports);
|
|
51
|
-
__exportStar(require("./service"), exports);
|
|
52
|
-
__exportStar(require("./signature"), exports);
|
|
53
|
-
__exportStar(require("./single-recipient"), exports);
|
|
54
|
-
// Main service export
|
|
55
|
-
var service_1 = require("./service");
|
|
56
|
-
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return service_1.ECIESService; } });
|
|
57
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/ecies/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;;;;;;;;;;;;;;;;AAEH,gDAA8B;AAC9B,4CAA0B;AAC1B,yCAAuB;AACvB,gDAA8B;AAC9B,+CAA6B;AAC7B,oDAAkC;AAClC,4CAA0B;AAC1B,8CAA4B;AAC5B,qDAAmC;AAEnC,sBAAsB;AACtB,qCAAoD;AAA3C,kGAAA,YAAY,OAAW"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Integration helpers for using the browser ECIES service with existing web-crypto functionality
|
|
3
|
-
*/
|
|
4
|
-
import { SecureString } from '../../secure-string';
|
|
5
|
-
import { IWalletSeed } from './interfaces';
|
|
6
|
-
/**
|
|
7
|
-
* Enhanced web crypto service that uses the new ECIES implementation
|
|
8
|
-
*/
|
|
9
|
-
export declare class EnhancedWebCryptoService {
|
|
10
|
-
private ecies;
|
|
11
|
-
constructor();
|
|
12
|
-
/**
|
|
13
|
-
* Derive wallet from mnemonic using the new ECIES service
|
|
14
|
-
* This replaces the existing walletFromMnemonic method with better browser compatibility
|
|
15
|
-
*/
|
|
16
|
-
walletFromMnemonic(mnemonic: SecureString): Promise<IWalletSeed>;
|
|
17
|
-
/**
|
|
18
|
-
* Decrypt challenge using the new ECIES service
|
|
19
|
-
* This provides better compatibility and error handling than the original implementation
|
|
20
|
-
*/
|
|
21
|
-
decryptChallenge(encryptedHex: string, privateKey: Uint8Array): Promise<Uint8Array>;
|
|
22
|
-
/**
|
|
23
|
-
* Encrypt data for a recipient
|
|
24
|
-
*/
|
|
25
|
-
encryptForRecipient(recipientPublicKey: Uint8Array, data: Uint8Array, useSimpleMode?: boolean): Promise<string>;
|
|
26
|
-
/**
|
|
27
|
-
* Sign data with private key
|
|
28
|
-
*/
|
|
29
|
-
signData(privateKey: Uint8Array, data: Uint8Array): string;
|
|
30
|
-
/**
|
|
31
|
-
* Verify signature
|
|
32
|
-
*/
|
|
33
|
-
verifySignature(publicKey: Uint8Array, data: Uint8Array, signatureHex: string): boolean;
|
|
34
|
-
/**
|
|
35
|
-
* Generate new mnemonic
|
|
36
|
-
*/
|
|
37
|
-
generateMnemonic(): SecureString;
|
|
38
|
-
/**
|
|
39
|
-
* Complete client-side challenge verification (enhanced version)
|
|
40
|
-
*/
|
|
41
|
-
verifyChallengeResponse(encryptedChallenge: string, mnemonic: SecureString, systemPublicKeyHex: string): Promise<string>;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Migration helper to transition from old WebCryptoService to new ECIES service
|
|
45
|
-
*/
|
|
46
|
-
export declare class MigrationHelper {
|
|
47
|
-
/**
|
|
48
|
-
* Test compatibility between old and new implementations
|
|
49
|
-
*/
|
|
50
|
-
static testCompatibility(mnemonic: SecureString): Promise<{
|
|
51
|
-
compatible: boolean;
|
|
52
|
-
details: {
|
|
53
|
-
mnemonicValid: boolean;
|
|
54
|
-
keysMatch: boolean;
|
|
55
|
-
encryptionWorks: boolean;
|
|
56
|
-
};
|
|
57
|
-
}>;
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=integration.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/integration.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAQnD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAI3C;;GAEG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,KAAK,CAAe;;IAM5B;;;OAGG;IACU,kBAAkB,CAC7B,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,WAAW,CAAC;IAQvB;;;OAGG;IACU,gBAAgB,CAC3B,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,UAAU,CAAC;IAyBtB;;OAEG;IACU,mBAAmB,CAC9B,kBAAkB,EAAE,UAAU,EAC9B,IAAI,EAAE,UAAU,EAChB,aAAa,GAAE,OAAe,GAC7B,OAAO,CAAC,MAAM,CAAC;IASlB;;OAEG;IACI,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM;IAKjE;;OAEG;IACI,eAAe,CACpB,SAAS,EAAE,UAAU,EACrB,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO;IAKV;;OAEG;IACI,gBAAgB,IAAI,YAAY;IAIvC;;OAEG;IACU,uBAAuB,CAClC,kBAAkB,EAAE,MAAM,EAC1B,QAAQ,EAAE,YAAY,EACtB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,MAAM,CAAC;CA+BnB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B;;OAEG;WACiB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC;QACrE,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE;YACP,aAAa,EAAE,OAAO,CAAC;YACvB,SAAS,EAAE,OAAO,CAAC;YACnB,eAAe,EAAE,OAAO,CAAC;SAC1B,CAAC;KACH,CAAC;CAsEH"}
|