@digitaldefiance/ecies-lib 3.0.7 → 3.7.2
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 +8 -0
- package/package.json +4 -3
- package/src/builders/ecies-builder.js +5 -9
- package/src/builders/ecies-builder.js.map +1 -1
- package/src/builders/index.js +2 -5
- package/src/builders/index.js.map +1 -1
- package/src/builders/member-builder.js +12 -16
- package/src/builders/member-builder.js.map +1 -1
- package/src/constants.d.ts +14 -0
- package/src/constants.d.ts.map +1 -1
- package/src/constants.js +150 -74
- package/src/constants.js.map +1 -1
- package/src/core/errors/crypto-error.js +10 -14
- package/src/core/errors/crypto-error.js.map +1 -1
- package/src/core/index.js +2 -5
- package/src/core/index.js.map +1 -1
- package/src/core/types/result.js +1 -5
- package/src/core/types/result.js.map +1 -1
- package/src/email-string.js +8 -13
- package/src/email-string.js.map +1 -1
- package/src/enumerations/disposed-error-type.d.ts +12 -0
- package/src/enumerations/disposed-error-type.d.ts.map +1 -0
- package/src/enumerations/disposed-error-type.js +13 -0
- package/src/enumerations/disposed-error-type.js.map +1 -0
- package/src/enumerations/ecies-encryption-type.js +20 -27
- package/src/enumerations/ecies-encryption-type.js.map +1 -1
- package/src/enumerations/ecies-error-type.js +2 -5
- package/src/enumerations/ecies-error-type.js.map +1 -1
- package/src/enumerations/ecies-string-key.d.ts +19 -1
- package/src/enumerations/ecies-string-key.d.ts.map +1 -1
- package/src/enumerations/ecies-string-key.js +21 -5
- package/src/enumerations/ecies-string-key.js.map +1 -1
- package/src/enumerations/guid-brand-type.d.ts +27 -0
- package/src/enumerations/guid-brand-type.d.ts.map +1 -0
- package/src/enumerations/guid-brand-type.js +28 -0
- package/src/enumerations/guid-brand-type.js.map +1 -0
- package/src/enumerations/guid-error-type.d.ts +7 -0
- package/src/enumerations/guid-error-type.d.ts.map +1 -0
- package/src/enumerations/guid-error-type.js +8 -0
- package/src/enumerations/guid-error-type.js.map +1 -0
- package/src/enumerations/id-provider-error-type.d.ts +43 -0
- package/src/enumerations/id-provider-error-type.d.ts.map +1 -0
- package/src/enumerations/id-provider-error-type.js +44 -0
- package/src/enumerations/id-provider-error-type.js.map +1 -0
- package/src/enumerations/index.d.ts +3 -0
- package/src/enumerations/index.d.ts.map +1 -1
- package/src/enumerations/index.js +15 -15
- package/src/enumerations/index.js.map +1 -1
- package/src/enumerations/invalid-email-type.js +2 -5
- package/src/enumerations/invalid-email-type.js.map +1 -1
- package/src/enumerations/length-encoding-type.js +2 -5
- package/src/enumerations/length-encoding-type.js.map +1 -1
- package/src/enumerations/length-error-type.js +2 -5
- package/src/enumerations/length-error-type.js.map +1 -1
- package/src/enumerations/member-error-type.js +3 -6
- package/src/enumerations/member-error-type.js.map +1 -1
- package/src/enumerations/member-type.js +3 -6
- package/src/enumerations/member-type.js.map +1 -1
- package/src/enumerations/password-login-error-type.js +2 -5
- package/src/enumerations/password-login-error-type.js.map +1 -1
- package/src/enumerations/pbkdf2-error-type.js +2 -5
- package/src/enumerations/pbkdf2-error-type.js.map +1 -1
- package/src/enumerations/pbkdf2-profile.js +2 -5
- package/src/enumerations/pbkdf2-profile.js.map +1 -1
- package/src/enumerations/secure-storage-error-type.js +2 -5
- package/src/enumerations/secure-storage-error-type.js.map +1 -1
- package/src/errors/disposed.d.ts +20 -2
- package/src/errors/disposed.d.ts.map +1 -1
- package/src/errors/disposed.js +24 -17
- package/src/errors/disposed.js.map +1 -1
- package/src/errors/ecies.d.ts +46 -1
- package/src/errors/ecies.d.ts.map +1 -1
- package/src/errors/ecies.js +65 -10
- package/src/errors/ecies.js.map +1 -1
- package/src/errors/guid.d.ts +44 -0
- package/src/errors/guid.d.ts.map +1 -0
- package/src/errors/guid.js +81 -0
- package/src/errors/guid.js.map +1 -0
- package/src/errors/id-provider.d.ts +23 -0
- package/src/errors/id-provider.d.ts.map +1 -0
- package/src/errors/id-provider.js +29 -0
- package/src/errors/id-provider.js.map +1 -0
- package/src/errors/index.d.ts +3 -0
- package/src/errors/index.d.ts.map +1 -1
- package/src/errors/index.js +9 -10
- package/src/errors/index.js.map +1 -1
- package/src/errors/invalid-email.js +5 -9
- package/src/errors/invalid-email.js.map +1 -1
- package/src/errors/length.js +5 -9
- package/src/errors/length.js.map +1 -1
- package/src/errors/member.js +5 -9
- package/src/errors/member.js.map +1 -1
- package/src/errors/pbkdf2.js +5 -9
- package/src/errors/pbkdf2.js.map +1 -1
- package/src/errors/secure-storage.js +6 -10
- package/src/errors/secure-storage.js.map +1 -1
- package/src/errors/simple-ecies.js +6 -10
- package/src/errors/simple-ecies.js.map +1 -1
- package/src/errors/simple-test-error.js +1 -5
- package/src/errors/simple-test-error.js.map +1 -1
- package/src/i18n-setup.js +29 -37
- package/src/i18n-setup.js.map +1 -1
- package/src/index.d.ts +10 -0
- package/src/index.d.ts.map +1 -1
- package/src/index.js +44 -57
- package/src/index.js.map +1 -1
- package/src/interfaces/checksum-config.js +1 -2
- package/src/interfaces/checksum-consts.js +1 -2
- package/src/interfaces/configuration-provenance.d.ts +51 -0
- package/src/interfaces/configuration-provenance.d.ts.map +1 -0
- package/src/interfaces/configuration-provenance.js +23 -0
- package/src/interfaces/configuration-provenance.js.map +1 -0
- package/src/interfaces/constants.d.ts +27 -1
- package/src/interfaces/constants.d.ts.map +1 -1
- package/src/interfaces/constants.js +1 -2
- package/src/interfaces/ecies-config.js +1 -2
- package/src/interfaces/ecies-consts.js +1 -2
- package/src/interfaces/ecies-file-service.js +1 -2
- package/src/interfaces/encrypted-chunk.js +1 -4
- package/src/interfaces/encrypted-chunk.js.map +1 -1
- package/src/interfaces/encryption-state.js +1 -4
- package/src/interfaces/encryption-state.js.map +1 -1
- package/src/interfaces/frontend-member-operational.js +1 -2
- package/src/interfaces/guid.d.ts +78 -0
- package/src/interfaces/guid.d.ts.map +1 -0
- package/src/interfaces/guid.js +2 -0
- package/src/interfaces/guid.js.map +1 -0
- package/src/interfaces/id-provider.d.ts +83 -0
- package/src/interfaces/id-provider.d.ts.map +1 -0
- package/src/interfaces/id-provider.js +35 -0
- package/src/interfaces/id-provider.js.map +1 -0
- package/src/interfaces/index.d.ts +1 -0
- package/src/interfaces/index.d.ts.map +1 -1
- package/src/interfaces/index.js +13 -15
- package/src/interfaces/index.js.map +1 -1
- package/src/interfaces/invariant.d.ts +46 -0
- package/src/interfaces/invariant.d.ts.map +1 -0
- package/src/interfaces/invariant.js +18 -0
- package/src/interfaces/invariant.js.map +1 -0
- package/src/interfaces/library-error.js +1 -2
- package/src/interfaces/member-storage.js +1 -2
- package/src/interfaces/member-with-mnemonic.js +1 -2
- package/src/interfaces/multi-recipient-chunk.d.ts +36 -12
- package/src/interfaces/multi-recipient-chunk.d.ts.map +1 -1
- package/src/interfaces/multi-recipient-chunk.js +36 -14
- package/src/interfaces/multi-recipient-chunk.js.map +1 -1
- package/src/interfaces/pbkdf2-config.js +1 -2
- package/src/interfaces/pbkdf2-consts.js +1 -2
- package/src/interfaces/pbkdf2-result.js +1 -2
- package/src/interfaces/stream-config.js +1 -4
- package/src/interfaces/stream-config.js.map +1 -1
- package/src/interfaces/stream-header.js +1 -4
- package/src/interfaces/stream-header.js.map +1 -1
- package/src/interfaces/stream-progress.js +1 -2
- package/src/lib/crypto-container.js +9 -13
- package/src/lib/crypto-container.js.map +1 -1
- package/src/lib/guid.d.ts +344 -0
- package/src/lib/guid.d.ts.map +1 -0
- package/src/lib/guid.js +914 -0
- package/src/lib/guid.js.map +1 -0
- package/src/lib/id-providers/custom-provider.d.ts +69 -0
- package/src/lib/id-providers/custom-provider.d.ts.map +1 -0
- package/src/lib/id-providers/custom-provider.js +128 -0
- package/src/lib/id-providers/custom-provider.js.map +1 -0
- package/src/lib/id-providers/guidv4-provider.d.ts +46 -0
- package/src/lib/id-providers/guidv4-provider.d.ts.map +1 -0
- package/src/lib/id-providers/guidv4-provider.js +105 -0
- package/src/lib/id-providers/guidv4-provider.js.map +1 -0
- package/src/lib/id-providers/index.d.ts +30 -0
- package/src/lib/id-providers/index.d.ts.map +1 -0
- package/src/lib/id-providers/index.js +29 -0
- package/src/lib/id-providers/index.js.map +1 -0
- package/src/lib/id-providers/objectid-provider.d.ts +33 -0
- package/src/lib/id-providers/objectid-provider.d.ts.map +1 -0
- package/src/lib/id-providers/objectid-provider.js +79 -0
- package/src/lib/id-providers/objectid-provider.js.map +1 -0
- package/src/lib/id-providers/uuid-provider.d.ts +42 -0
- package/src/lib/id-providers/uuid-provider.d.ts.map +1 -0
- package/src/lib/id-providers/uuid-provider.js +96 -0
- package/src/lib/id-providers/uuid-provider.js.map +1 -0
- package/src/lib/index.d.ts +1 -0
- package/src/lib/index.d.ts.map +1 -1
- package/src/lib/index.js +2 -4
- package/src/lib/index.js.map +1 -1
- package/src/lib/invariant-validator.d.ts +59 -0
- package/src/lib/invariant-validator.d.ts.map +1 -0
- package/src/lib/invariant-validator.js +97 -0
- package/src/lib/invariant-validator.js.map +1 -0
- package/src/lib/invariants/encryption-algorithm-consistency.d.ts +17 -0
- package/src/lib/invariants/encryption-algorithm-consistency.d.ts.map +1 -0
- package/src/lib/invariants/encryption-algorithm-consistency.js +49 -0
- package/src/lib/invariants/encryption-algorithm-consistency.js.map +1 -0
- package/src/lib/invariants/index.d.ts +4 -0
- package/src/lib/invariants/index.d.ts.map +1 -0
- package/src/lib/invariants/index.js +4 -0
- package/src/lib/invariants/index.js.map +1 -0
- package/src/lib/invariants/pbkdf2-profiles-validity.d.ts +16 -0
- package/src/lib/invariants/pbkdf2-profiles-validity.d.ts.map +1 -0
- package/src/lib/invariants/pbkdf2-profiles-validity.js +58 -0
- package/src/lib/invariants/pbkdf2-profiles-validity.js.map +1 -0
- package/src/lib/invariants/recipient-id-consistency.d.ts +18 -0
- package/src/lib/invariants/recipient-id-consistency.d.ts.map +1 -0
- package/src/lib/invariants/recipient-id-consistency.js +31 -0
- package/src/lib/invariants/recipient-id-consistency.js.map +1 -0
- package/src/member.js +43 -48
- package/src/member.js.map +1 -1
- package/src/pbkdf2-profiles.js +1 -2
- package/src/phone-number.js +7 -11
- package/src/phone-number.js.map +1 -1
- package/src/regexes.js +3 -6
- package/src/regexes.js.map +1 -1
- package/src/secure-buffer.d.ts +17 -1
- package/src/secure-buffer.d.ts.map +1 -1
- package/src/secure-buffer.js +40 -22
- package/src/secure-buffer.js.map +1 -1
- package/src/secure-string.js +20 -24
- package/src/secure-string.js.map +1 -1
- package/src/services/aes-gcm.js +21 -25
- package/src/services/aes-gcm.js.map +1 -1
- package/src/services/chunk-processor.js +32 -36
- package/src/services/chunk-processor.js.map +1 -1
- package/src/services/ecies/crypto-core.js +33 -37
- package/src/services/ecies/crypto-core.js.map +1 -1
- package/src/services/ecies/example.js +37 -44
- package/src/services/ecies/example.js.map +1 -1
- package/src/services/ecies/file.js +1 -5
- package/src/services/ecies/file.js.map +1 -1
- package/src/services/ecies/index.js +10 -15
- package/src/services/ecies/index.js.map +1 -1
- package/src/services/ecies/integration.js +23 -28
- package/src/services/ecies/integration.js.map +1 -1
- package/src/services/ecies/interfaces.js +1 -2
- package/src/services/ecies/interfaces.js.map +1 -1
- package/src/services/ecies/manual-test.js +26 -34
- package/src/services/ecies/manual-test.js.map +1 -1
- package/src/services/ecies/multi-recipient.js +47 -51
- package/src/services/ecies/multi-recipient.js.map +1 -1
- package/src/services/ecies/service.js +27 -31
- package/src/services/ecies/service.js.map +1 -1
- package/src/services/ecies/signature.js +9 -13
- package/src/services/ecies/signature.js.map +1 -1
- package/src/services/ecies/single-recipient.js +42 -46
- package/src/services/ecies/single-recipient.js.map +1 -1
- package/src/services/encryption-stream.d.ts +3 -1
- package/src/services/encryption-stream.d.ts.map +1 -1
- package/src/services/encryption-stream.js +46 -48
- package/src/services/encryption-stream.js.map +1 -1
- package/src/services/index.js +5 -8
- package/src/services/index.js.map +1 -1
- package/src/services/multi-recipient-processor.d.ts +12 -2
- package/src/services/multi-recipient-processor.d.ts.map +1 -1
- package/src/services/multi-recipient-processor.js +65 -56
- package/src/services/multi-recipient-processor.js.map +1 -1
- package/src/services/password-login.js +33 -37
- package/src/services/password-login.js.map +1 -1
- package/src/services/pbkdf2.js +8 -12
- package/src/services/pbkdf2.js.map +1 -1
- package/src/services/progress-tracker.js +5 -9
- package/src/services/progress-tracker.js.map +1 -1
- package/src/services/resumable-encryption.js +24 -28
- package/src/services/resumable-encryption.js.map +1 -1
- package/src/services/xor.js +1 -5
- package/src/services/xor.js.map +1 -1
- package/src/test-mocks/index.js +1 -4
- package/src/test-mocks/index.js.map +1 -1
- package/src/test-mocks/mock-frontend-member.js +20 -24
- package/src/test-mocks/mock-frontend-member.js.map +1 -1
- package/src/testing.js +1 -4
- package/src/testing.js.map +1 -1
- package/src/translations/de.d.ts +2 -1
- package/src/translations/de.d.ts.map +1 -1
- package/src/translations/de.js +190 -170
- package/src/translations/de.js.map +1 -1
- package/src/translations/en-US.d.ts +2 -1
- package/src/translations/en-US.d.ts.map +1 -1
- package/src/translations/en-US.js +190 -170
- package/src/translations/en-US.js.map +1 -1
- package/src/translations/es.d.ts +2 -1
- package/src/translations/es.d.ts.map +1 -1
- package/src/translations/es.js +190 -170
- package/src/translations/es.js.map +1 -1
- package/src/translations/fr.d.ts +2 -1
- package/src/translations/fr.d.ts.map +1 -1
- package/src/translations/fr.js +190 -170
- package/src/translations/fr.js.map +1 -1
- package/src/translations/ja.d.ts +2 -1
- package/src/translations/ja.d.ts.map +1 -1
- package/src/translations/ja.js +189 -170
- package/src/translations/ja.js.map +1 -1
- package/src/translations/uk.d.ts +2 -1
- package/src/translations/uk.d.ts.map +1 -1
- package/src/translations/uk.js +192 -170
- package/src/translations/uk.js.map +1 -1
- package/src/translations/zh-cn.d.ts +2 -1
- package/src/translations/zh-cn.d.ts.map +1 -1
- package/src/translations/zh-cn.js +189 -170
- package/src/translations/zh-cn.js.map +1 -1
- package/src/types/deep-partial.js +1 -2
- package/src/types.d.ts +31 -0
- package/src/types.d.ts.map +1 -1
- package/src/types.js +1 -2
- package/src/utils.js +59 -77
- package/src/utils.js.map +1 -1
|
@@ -1,119 +1,112 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Example usage of the browser-compatible ECIES service
|
|
4
3
|
* This file demonstrates how to use the web-based ECIES implementation
|
|
5
4
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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");
|
|
5
|
+
import { SecureString } from '../../secure-string';
|
|
6
|
+
import { stringToUint8Array, uint8ArrayToHex, uint8ArrayToString, } from '../../utils';
|
|
7
|
+
import { ECIESService } from './service';
|
|
15
8
|
// https://docs.rs/bip39/latest/src/bip39/lib.rs.html
|
|
16
9
|
/**
|
|
17
10
|
* Example: Basic encryption and decryption
|
|
18
11
|
*/
|
|
19
|
-
async function basicEncryptionExample() {
|
|
12
|
+
export async function basicEncryptionExample() {
|
|
20
13
|
console.log('=== Basic ECIES Encryption Example ===');
|
|
21
14
|
// Create ECIES service instance
|
|
22
|
-
const ecies = new
|
|
15
|
+
const ecies = new ECIESService();
|
|
23
16
|
// Generate a mnemonic and derive keys
|
|
24
17
|
const mnemonic = ecies.generateNewMnemonic();
|
|
25
18
|
console.log('Generated mnemonic:', mnemonic);
|
|
26
19
|
const { privateKey, publicKey } = ecies.mnemonicToSimpleKeyPair(mnemonic);
|
|
27
|
-
console.log('Private key hash:',
|
|
28
|
-
console.log('Public key:',
|
|
20
|
+
console.log('Private key hash:', uint8ArrayToHex(privateKey).slice(0, 16) + '...');
|
|
21
|
+
console.log('Public key:', uint8ArrayToHex(publicKey));
|
|
29
22
|
// Message to encrypt
|
|
30
|
-
const message =
|
|
31
|
-
console.log('Original message:',
|
|
23
|
+
const message = stringToUint8Array('Hello, Digital Defiance!');
|
|
24
|
+
console.log('Original message:', uint8ArrayToString(message));
|
|
32
25
|
// Encrypt using single mode (with CRC and length)
|
|
33
26
|
const encrypted = await ecies.encryptSimpleOrSingle(false, publicKey, message);
|
|
34
27
|
console.log('Encrypted data length:', encrypted.length);
|
|
35
|
-
console.log('Encrypted data (hex):',
|
|
28
|
+
console.log('Encrypted data (hex):', uint8ArrayToHex(encrypted));
|
|
36
29
|
// Decrypt the message
|
|
37
30
|
const decrypted = await ecies.decryptSimpleOrSingleWithHeader(false, privateKey, encrypted);
|
|
38
|
-
console.log('Decrypted message:',
|
|
31
|
+
console.log('Decrypted message:', uint8ArrayToString(decrypted));
|
|
39
32
|
// Verify the message matches
|
|
40
|
-
const matches =
|
|
33
|
+
const matches = uint8ArrayToString(message) === uint8ArrayToString(decrypted);
|
|
41
34
|
console.log('Encryption/Decryption successful:', matches);
|
|
42
35
|
}
|
|
43
36
|
/**
|
|
44
37
|
* Example: Simple mode encryption (without CRC)
|
|
45
38
|
*/
|
|
46
|
-
async function simpleEncryptionExample() {
|
|
39
|
+
export async function simpleEncryptionExample() {
|
|
47
40
|
console.log('\n=== Simple ECIES Encryption Example ===');
|
|
48
|
-
const ecies = new
|
|
41
|
+
const ecies = new ECIESService();
|
|
49
42
|
// Generate keys for sender and receiver
|
|
50
43
|
const senderMnemonic = ecies.generateNewMnemonic();
|
|
51
44
|
const receiverMnemonic = ecies.generateNewMnemonic();
|
|
52
45
|
const senderKeys = ecies.mnemonicToSimpleKeyPair(senderMnemonic);
|
|
53
46
|
const receiverKeys = ecies.mnemonicToSimpleKeyPair(receiverMnemonic);
|
|
54
|
-
console.log('Sender public key:',
|
|
55
|
-
console.log('Receiver public key:',
|
|
47
|
+
console.log('Sender public key:', uint8ArrayToHex(senderKeys.publicKey));
|
|
48
|
+
console.log('Receiver public key:', uint8ArrayToHex(receiverKeys.publicKey));
|
|
56
49
|
// Message to encrypt
|
|
57
|
-
const message =
|
|
58
|
-
console.log('Original message:',
|
|
50
|
+
const message = stringToUint8Array('This is a simple encrypted message');
|
|
51
|
+
console.log('Original message:', uint8ArrayToString(message));
|
|
59
52
|
// Encrypt using simple mode (no CRC, no length prefix)
|
|
60
53
|
const encrypted = await ecies.encryptSimpleOrSingle(true, receiverKeys.publicKey, message);
|
|
61
54
|
console.log('Encrypted data length:', encrypted.length);
|
|
62
55
|
// Decrypt the message
|
|
63
56
|
const decrypted = await ecies.decryptSimpleOrSingleWithHeader(true, receiverKeys.privateKey, encrypted);
|
|
64
|
-
console.log('Decrypted message:',
|
|
57
|
+
console.log('Decrypted message:', uint8ArrayToString(decrypted));
|
|
65
58
|
// Verify the message matches
|
|
66
|
-
const matches =
|
|
59
|
+
const matches = uint8ArrayToString(message) === uint8ArrayToString(decrypted);
|
|
67
60
|
console.log('Simple encryption/decryption successful:', matches);
|
|
68
61
|
}
|
|
69
62
|
/**
|
|
70
63
|
* Example: Digital signature
|
|
71
64
|
*/
|
|
72
|
-
async function signatureExample() {
|
|
65
|
+
export async function signatureExample() {
|
|
73
66
|
console.log('\n=== Digital Signature Example ===');
|
|
74
|
-
const ecies = new
|
|
67
|
+
const ecies = new ECIESService();
|
|
75
68
|
// Generate keys
|
|
76
69
|
const mnemonic = ecies.generateNewMnemonic();
|
|
77
70
|
const { privateKey, publicKey } = ecies.mnemonicToSimpleKeyPair(mnemonic);
|
|
78
71
|
// Message to sign
|
|
79
|
-
const message =
|
|
80
|
-
console.log('Message to sign:',
|
|
72
|
+
const message = stringToUint8Array('This message is digitally signed');
|
|
73
|
+
console.log('Message to sign:', uint8ArrayToString(message));
|
|
81
74
|
// Sign the message
|
|
82
75
|
const signature = ecies.signMessage(privateKey, message);
|
|
83
|
-
console.log('Signature:',
|
|
76
|
+
console.log('Signature:', uint8ArrayToHex(signature));
|
|
84
77
|
// Verify the signature
|
|
85
78
|
const isValid = ecies.verifyMessage(publicKey, message, signature);
|
|
86
79
|
console.log('Signature valid:', isValid);
|
|
87
80
|
// Test with tampered message
|
|
88
|
-
const tamperedMessage =
|
|
81
|
+
const tamperedMessage = stringToUint8Array('This message has been tampered with');
|
|
89
82
|
const isTamperedValid = ecies.verifyMessage(publicKey, tamperedMessage, signature);
|
|
90
83
|
console.log('Tampered message signature valid:', isTamperedValid);
|
|
91
84
|
}
|
|
92
85
|
/**
|
|
93
86
|
* Example: Wallet derivation from mnemonic
|
|
94
87
|
*/
|
|
95
|
-
async function walletDerivationExample() {
|
|
88
|
+
export async function walletDerivationExample() {
|
|
96
89
|
console.log('\n=== Wallet Derivation Example ===');
|
|
97
|
-
const ecies = new
|
|
90
|
+
const ecies = new ECIESService();
|
|
98
91
|
// Use a known mnemonic for reproducible results
|
|
99
|
-
const mnemonic = new
|
|
92
|
+
const mnemonic = new SecureString('abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about');
|
|
100
93
|
console.log('Test mnemonic: [REDACTED - known test mnemonic]');
|
|
101
94
|
// Derive wallet
|
|
102
95
|
const { wallet, seed } = ecies.walletAndSeedFromMnemonic(mnemonic);
|
|
103
|
-
console.log('Seed:',
|
|
104
|
-
console.log('Private key hash:',
|
|
105
|
-
console.log('Public key:',
|
|
96
|
+
console.log('Seed:', uint8ArrayToHex(seed));
|
|
97
|
+
console.log('Private key hash:', uint8ArrayToHex(wallet.getPrivateKey()).slice(0, 16) + '...');
|
|
98
|
+
console.log('Public key:', uint8ArrayToHex(wallet.getPublicKey()));
|
|
106
99
|
// Derive the same keys using the simple method
|
|
107
100
|
const simpleKeys = ecies.mnemonicToSimpleKeyPair(mnemonic);
|
|
108
|
-
console.log('Simple private key matches:',
|
|
109
|
-
|
|
110
|
-
console.log('Simple public key matches:',
|
|
111
|
-
|
|
101
|
+
console.log('Simple private key matches:', uint8ArrayToHex(wallet.getPrivateKey()) ===
|
|
102
|
+
uint8ArrayToHex(simpleKeys.privateKey));
|
|
103
|
+
console.log('Simple public key matches:', uint8ArrayToHex(wallet.getPublicKey()) ===
|
|
104
|
+
uint8ArrayToHex(simpleKeys.publicKey));
|
|
112
105
|
}
|
|
113
106
|
/**
|
|
114
107
|
* Run all examples
|
|
115
108
|
*/
|
|
116
|
-
async function runAllExamples() {
|
|
109
|
+
export async function runAllExamples() {
|
|
117
110
|
try {
|
|
118
111
|
await basicEncryptionExample();
|
|
119
112
|
await simpleEncryptionExample();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/example.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"example.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/example.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EciesFileService = void 0;
|
|
4
|
-
class EciesFileService {
|
|
1
|
+
export class EciesFileService {
|
|
5
2
|
eciesService;
|
|
6
3
|
userPrivateKey;
|
|
7
4
|
static CHUNK_SIZE = 1024 * 1024; // 1MB chunks
|
|
@@ -106,5 +103,4 @@ class EciesFileService {
|
|
|
106
103
|
URL.revokeObjectURL(url);
|
|
107
104
|
}
|
|
108
105
|
}
|
|
109
|
-
exports.EciesFileService = EciesFileService;
|
|
110
106
|
//# sourceMappingURL=file.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/file.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Browser-compatible ECIES service exports
|
|
4
3
|
*
|
|
@@ -26,19 +25,15 @@
|
|
|
26
25
|
* const decrypted = await ecies.decryptSimpleOrSingleWithHeader(false, privateKey, encrypted);
|
|
27
26
|
* ```
|
|
28
27
|
*/
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
tslib_1.__exportStar(require("./service"), exports);
|
|
39
|
-
tslib_1.__exportStar(require("./signature"), exports);
|
|
40
|
-
tslib_1.__exportStar(require("./single-recipient"), exports);
|
|
28
|
+
export * from './crypto-core';
|
|
29
|
+
export * from './example';
|
|
30
|
+
export * from './file';
|
|
31
|
+
export * from './integration';
|
|
32
|
+
export * from './interfaces';
|
|
33
|
+
export * from './multi-recipient';
|
|
34
|
+
export * from './service';
|
|
35
|
+
export * from './signature';
|
|
36
|
+
export * from './single-recipient';
|
|
41
37
|
// Main service export
|
|
42
|
-
|
|
43
|
-
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return service_1.ECIESService; } });
|
|
38
|
+
export { ECIESService as default } from './service';
|
|
44
39
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/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;AAEnC,sBAAsB;AACtB,OAAO,EAAE,YAAY,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Integration helpers for using the browser ECIES service with existing web-crypto functionality
|
|
4
3
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const service_1 = require("./service");
|
|
10
|
-
const enumerations_1 = require("../../enumerations");
|
|
4
|
+
import { EciesComponentId, getEciesI18nEngine } from '../../i18n-setup';
|
|
5
|
+
import { hexToUint8Array, stringToUint8Array, uint8ArrayToHex, uint8ArrayToString, } from '../../utils';
|
|
6
|
+
import { ECIESService } from './service';
|
|
7
|
+
import { EciesStringKey } from '../../enumerations';
|
|
11
8
|
/**
|
|
12
9
|
* Enhanced web crypto service that uses the new ECIES implementation
|
|
13
10
|
*/
|
|
14
|
-
class EnhancedWebCryptoService {
|
|
11
|
+
export class EnhancedWebCryptoService {
|
|
15
12
|
ecies;
|
|
16
13
|
constructor() {
|
|
17
|
-
this.ecies = new
|
|
14
|
+
this.ecies = new ECIESService();
|
|
18
15
|
}
|
|
19
16
|
/**
|
|
20
17
|
* Derive wallet from mnemonic using the new ECIES service
|
|
@@ -33,7 +30,7 @@ class EnhancedWebCryptoService {
|
|
|
33
30
|
*/
|
|
34
31
|
async decryptChallenge(encryptedHex, privateKey) {
|
|
35
32
|
try {
|
|
36
|
-
const encryptedData =
|
|
33
|
+
const encryptedData = hexToUint8Array(encryptedHex);
|
|
37
34
|
// Try to decrypt using single mode first (most common)
|
|
38
35
|
try {
|
|
39
36
|
return await this.ecies.decryptSimpleOrSingleWithHeader(false, privateKey, encryptedData);
|
|
@@ -44,8 +41,8 @@ class EnhancedWebCryptoService {
|
|
|
44
41
|
}
|
|
45
42
|
}
|
|
46
43
|
catch (error) {
|
|
47
|
-
const engine =
|
|
48
|
-
throw new Error(engine.translate(
|
|
44
|
+
const engine = getEciesI18nEngine();
|
|
45
|
+
throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_FailedToDecryptChallengeTemplate, { error: String(error) }));
|
|
49
46
|
}
|
|
50
47
|
}
|
|
51
48
|
/**
|
|
@@ -53,20 +50,20 @@ class EnhancedWebCryptoService {
|
|
|
53
50
|
*/
|
|
54
51
|
async encryptForRecipient(recipientPublicKey, data, useSimpleMode = false) {
|
|
55
52
|
const encrypted = await this.ecies.encryptSimpleOrSingle(!useSimpleMode, recipientPublicKey, data);
|
|
56
|
-
return
|
|
53
|
+
return uint8ArrayToHex(encrypted);
|
|
57
54
|
}
|
|
58
55
|
/**
|
|
59
56
|
* Sign data with private key
|
|
60
57
|
*/
|
|
61
58
|
signData(privateKey, data) {
|
|
62
59
|
const signature = this.ecies.signMessage(privateKey, data);
|
|
63
|
-
return
|
|
60
|
+
return uint8ArrayToHex(signature);
|
|
64
61
|
}
|
|
65
62
|
/**
|
|
66
63
|
* Verify signature
|
|
67
64
|
*/
|
|
68
65
|
verifySignature(publicKey, data, signatureHex) {
|
|
69
|
-
const signature =
|
|
66
|
+
const signature = hexToUint8Array(signatureHex);
|
|
70
67
|
return this.ecies.verifyMessage(publicKey, data, signature);
|
|
71
68
|
}
|
|
72
69
|
/**
|
|
@@ -87,27 +84,26 @@ class EnhancedWebCryptoService {
|
|
|
87
84
|
const payload = decryptedPayload.slice(0, 48);
|
|
88
85
|
const signature = decryptedPayload.slice(48);
|
|
89
86
|
// Convert system public key from hex
|
|
90
|
-
const systemPubKey =
|
|
87
|
+
const systemPubKey = hexToUint8Array(systemPublicKeyHex);
|
|
91
88
|
// Verify system signature
|
|
92
|
-
const isValid = this.verifySignature(systemPubKey, payload,
|
|
89
|
+
const isValid = this.verifySignature(systemPubKey, payload, uint8ArrayToHex(signature));
|
|
93
90
|
if (!isValid) {
|
|
94
|
-
const engine =
|
|
95
|
-
const error = engine.translate(
|
|
91
|
+
const engine = getEciesI18nEngine();
|
|
92
|
+
const error = engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_InvalidChallengeSignature);
|
|
96
93
|
}
|
|
97
|
-
return
|
|
94
|
+
return uint8ArrayToHex(decryptedPayload);
|
|
98
95
|
}
|
|
99
96
|
}
|
|
100
|
-
exports.EnhancedWebCryptoService = EnhancedWebCryptoService;
|
|
101
97
|
/**
|
|
102
98
|
* Migration helper to transition from old WebCryptoService to new ECIES service
|
|
103
99
|
*/
|
|
104
|
-
class MigrationHelper {
|
|
100
|
+
export class MigrationHelper {
|
|
105
101
|
/**
|
|
106
102
|
* Test compatibility between old and new implementations
|
|
107
103
|
*/
|
|
108
104
|
static async testCompatibility(mnemonic) {
|
|
109
105
|
try {
|
|
110
|
-
const ecies = new
|
|
106
|
+
const ecies = new ECIESService();
|
|
111
107
|
const enhanced = new EnhancedWebCryptoService();
|
|
112
108
|
// Test mnemonic validation
|
|
113
109
|
let mnemonicValid = false;
|
|
@@ -125,8 +121,8 @@ class MigrationHelper {
|
|
|
125
121
|
const { wallet: wallet1 } = ecies.walletAndSeedFromMnemonic(mnemonic);
|
|
126
122
|
const { wallet: wallet2 } = await enhanced.walletFromMnemonic(mnemonic);
|
|
127
123
|
keysMatch =
|
|
128
|
-
|
|
129
|
-
|
|
124
|
+
uint8ArrayToHex(wallet1.getPrivateKey()) ===
|
|
125
|
+
uint8ArrayToHex(wallet2.getPrivateKey());
|
|
130
126
|
}
|
|
131
127
|
catch {
|
|
132
128
|
keysMatch = false;
|
|
@@ -137,11 +133,11 @@ class MigrationHelper {
|
|
|
137
133
|
if (keysMatch) {
|
|
138
134
|
try {
|
|
139
135
|
const { wallet } = await enhanced.walletFromMnemonic(mnemonic);
|
|
140
|
-
const testMessage =
|
|
136
|
+
const testMessage = stringToUint8Array('Test message');
|
|
141
137
|
const encrypted = await enhanced.encryptForRecipient(wallet.getPublicKey(), testMessage);
|
|
142
138
|
const decrypted = await enhanced.decryptChallenge(encrypted, wallet.getPrivateKey());
|
|
143
139
|
encryptionWorks =
|
|
144
|
-
|
|
140
|
+
uint8ArrayToString(testMessage) === uint8ArrayToString(decrypted);
|
|
145
141
|
}
|
|
146
142
|
catch {
|
|
147
143
|
encryptionWorks = false;
|
|
@@ -168,5 +164,4 @@ class MigrationHelper {
|
|
|
168
164
|
}
|
|
169
165
|
}
|
|
170
166
|
}
|
|
171
|
-
exports.MigrationHelper = MigrationHelper;
|
|
172
167
|
//# sourceMappingURL=integration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/integration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"integration.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/integration.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGxE,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;GAEG;AACH,MAAM,OAAO,wBAAwB;IAC3B,KAAK,CAAe;IAE5B;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;IAClC,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,kBAAkB,CAC7B,QAAsB;QAEtB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QACxE,OAAO;YACL,MAAM;YACN,IAAI;SACL,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,gBAAgB,CAC3B,YAAoB,EACpB,UAAsB;QAEtB,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAEpD,uDAAuD;YACvD,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,+BAA+B,CACrD,KAAK,EACL,UAAU,EACV,aAAa,CACd,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,0BAA0B;gBAC1B,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,+BAA+B,CACrD,IAAI,EACJ,UAAU,EACV,aAAa,CACd,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,cAAc,CAAC,iDAAiD,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAClJ,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,mBAAmB,CAC9B,kBAA8B,EAC9B,IAAgB,EAChB,gBAAyB,KAAK;QAE9B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,qBAAqB,CACtD,CAAC,aAAa,EACd,kBAAkB,EAClB,IAAI,CACL,CAAC;QACF,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,UAAsB,EAAE,IAAgB;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC3D,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,eAAe,CACpB,SAAqB,EACrB,IAAgB,EAChB,YAAoB;QAEpB,MAAM,SAAS,GAAG,eAAe,CAAC,YAAY,CAAwB,CAAC;QACvE,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACI,gBAAgB;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,uBAAuB,CAClC,kBAA0B,EAC1B,QAAsB,EACtB,kBAA0B;QAE1B,4BAA4B;QAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAE3D,wBAAwB;QACxB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAClD,kBAAkB,EAClB,MAAM,CAAC,aAAa,EAAE,CACvB,CAAC;QAEF,sEAAsE;QACtE,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAE7C,qCAAqC;QACrC,MAAM,YAAY,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;QAEzD,0BAA0B;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAClC,YAAY,EACZ,OAAO,EACP,eAAe,CAAC,SAAS,CAAC,CAC3B,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,cAAc,CAAC,0CAA0C,CAAC,CAAC;QAC9G,CAAC;QAED,OAAO,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAe;IAC1B;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAsB;QAQ1D,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,wBAAwB,EAAE,CAAC;YAEhD,2BAA2B;YAC3B,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC;gBACH,KAAK,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;gBAC1C,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,aAAa,GAAG,KAAK,CAAC;YACxB,CAAC;YAED,sBAAsB;YACtB,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;oBACtE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAC3D,QAAQ,CACT,CAAC;oBACF,SAAS;wBACP,eAAe,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;4BACxC,eAAe,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;gBAC7C,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS,GAAG,KAAK,CAAC;gBACpB,CAAC;YACH,CAAC;YAED,4BAA4B;YAC5B,IAAI,eAAe,GAAG,KAAK,CAAC;YAC5B,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC;oBACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;oBAC/D,MAAM,WAAW,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;oBACvD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CAClD,MAAM,CAAC,YAAY,EAAE,EACrB,WAAW,CACZ,CAAC;oBACF,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAC/C,SAAS,EACT,MAAM,CAAC,aAAa,EAAE,CACvB,CAAC;oBACF,eAAe;wBACb,kBAAkB,CAAC,WAAW,CAAC,KAAK,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBACtE,CAAC;gBAAC,MAAM,CAAC;oBACP,eAAe,GAAG,KAAK,CAAC;gBAC1B,CAAC;YACH,CAAC;YAED,OAAO;gBACL,UAAU,EAAE,aAAa,IAAI,SAAS,IAAI,eAAe;gBACzD,OAAO,EAAE;oBACP,aAAa;oBACb,SAAS;oBACT,eAAe;iBAChB;aACF,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,UAAU,EAAE,KAAK;gBACjB,OAAO,EAAE;oBACP,aAAa,EAAE,KAAK;oBACpB,SAAS,EAAE,KAAK;oBAChB,eAAe,EAAE,KAAK;iBACvB;aACF,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/interfaces.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/interfaces.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,30 +1,22 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Simple integration tests for the browser ECIES service
|
|
4
3
|
* These tests can be run in the browser console to verify functionality
|
|
5
4
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.testSignatures = testSignatures;
|
|
10
|
-
exports.testMnemonicValidation = testMnemonicValidation;
|
|
11
|
-
exports.testCrossPartyEncryption = testCrossPartyEncryption;
|
|
12
|
-
exports.runAllTests = runAllTests;
|
|
13
|
-
const secure_string_1 = require("../../secure-string");
|
|
14
|
-
const utils_1 = require("../../utils");
|
|
15
|
-
const service_1 = require("./service");
|
|
5
|
+
import { SecureString } from '../../secure-string';
|
|
6
|
+
import { stringToUint8Array, uint8ArrayToHex, uint8ArrayToString, } from '../../utils';
|
|
7
|
+
import { ECIESService } from './service';
|
|
16
8
|
/**
|
|
17
9
|
* Test basic encryption/decryption roundtrip
|
|
18
10
|
*/
|
|
19
|
-
async function testBasicEncryption() {
|
|
11
|
+
export async function testBasicEncryption() {
|
|
20
12
|
try {
|
|
21
|
-
const ecies = new
|
|
13
|
+
const ecies = new ECIESService();
|
|
22
14
|
const mnemonic = ecies.generateNewMnemonic();
|
|
23
15
|
const { privateKey, publicKey } = ecies.mnemonicToSimpleKeyPair(mnemonic);
|
|
24
|
-
const message =
|
|
16
|
+
const message = stringToUint8Array('Test message');
|
|
25
17
|
const encrypted = await ecies.encryptSimpleOrSingle(false, publicKey, message);
|
|
26
18
|
const decrypted = await ecies.decryptSimpleOrSingleWithHeader(false, privateKey, encrypted);
|
|
27
|
-
return
|
|
19
|
+
return uint8ArrayToString(message) === uint8ArrayToString(decrypted);
|
|
28
20
|
}
|
|
29
21
|
catch (error) {
|
|
30
22
|
console.error('Basic encryption test failed:', error);
|
|
@@ -34,15 +26,15 @@ async function testBasicEncryption() {
|
|
|
34
26
|
/**
|
|
35
27
|
* Test simple mode encryption
|
|
36
28
|
*/
|
|
37
|
-
async function testSimpleEncryption() {
|
|
29
|
+
export async function testSimpleEncryption() {
|
|
38
30
|
try {
|
|
39
|
-
const ecies = new
|
|
31
|
+
const ecies = new ECIESService();
|
|
40
32
|
const mnemonic = ecies.generateNewMnemonic();
|
|
41
33
|
const { privateKey, publicKey } = ecies.mnemonicToSimpleKeyPair(mnemonic);
|
|
42
|
-
const message =
|
|
34
|
+
const message = stringToUint8Array('Simple test message');
|
|
43
35
|
const encrypted = await ecies.encryptSimpleOrSingle(true, publicKey, message);
|
|
44
36
|
const decrypted = await ecies.decryptSimpleOrSingleWithHeader(true, privateKey, encrypted);
|
|
45
|
-
return
|
|
37
|
+
return uint8ArrayToString(message) === uint8ArrayToString(decrypted);
|
|
46
38
|
}
|
|
47
39
|
catch (error) {
|
|
48
40
|
console.error('Simple encryption test failed:', error);
|
|
@@ -52,16 +44,16 @@ async function testSimpleEncryption() {
|
|
|
52
44
|
/**
|
|
53
45
|
* Test signature operations
|
|
54
46
|
*/
|
|
55
|
-
async function testSignatures() {
|
|
47
|
+
export async function testSignatures() {
|
|
56
48
|
try {
|
|
57
|
-
const ecies = new
|
|
49
|
+
const ecies = new ECIESService();
|
|
58
50
|
const mnemonic = ecies.generateNewMnemonic();
|
|
59
51
|
const { privateKey, publicKey } = ecies.mnemonicToSimpleKeyPair(mnemonic);
|
|
60
|
-
const message =
|
|
52
|
+
const message = stringToUint8Array('Message to sign');
|
|
61
53
|
const signature = ecies.signMessage(privateKey, message);
|
|
62
54
|
const isValid = ecies.verifyMessage(publicKey, message, signature);
|
|
63
55
|
// Test with wrong message
|
|
64
|
-
const wrongMessage =
|
|
56
|
+
const wrongMessage = stringToUint8Array('Wrong message');
|
|
65
57
|
const isInvalid = ecies.verifyMessage(publicKey, wrongMessage, signature);
|
|
66
58
|
return isValid && !isInvalid;
|
|
67
59
|
}
|
|
@@ -73,19 +65,19 @@ async function testSignatures() {
|
|
|
73
65
|
/**
|
|
74
66
|
* Test mnemonic validation
|
|
75
67
|
*/
|
|
76
|
-
async function testMnemonicValidation() {
|
|
68
|
+
export async function testMnemonicValidation() {
|
|
77
69
|
try {
|
|
78
|
-
const ecies = new
|
|
70
|
+
const ecies = new ECIESService();
|
|
79
71
|
// Test valid mnemonic
|
|
80
|
-
const validMnemonic = new
|
|
72
|
+
const validMnemonic = new SecureString('abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about');
|
|
81
73
|
const { wallet: wallet1 } = ecies.walletAndSeedFromMnemonic(validMnemonic);
|
|
82
74
|
const { wallet: wallet2 } = ecies.walletAndSeedFromMnemonic(validMnemonic);
|
|
83
75
|
// Should produce same keys
|
|
84
|
-
const sameKeys =
|
|
85
|
-
|
|
76
|
+
const sameKeys = uint8ArrayToHex(wallet1.getPrivateKey()) ===
|
|
77
|
+
uint8ArrayToHex(wallet2.getPrivateKey());
|
|
86
78
|
// Test invalid mnemonic
|
|
87
79
|
try {
|
|
88
|
-
ecies.walletAndSeedFromMnemonic(new
|
|
80
|
+
ecies.walletAndSeedFromMnemonic(new SecureString('invalid mnemonic phrase'));
|
|
89
81
|
return false; // Should have thrown
|
|
90
82
|
}
|
|
91
83
|
catch {
|
|
@@ -100,9 +92,9 @@ async function testMnemonicValidation() {
|
|
|
100
92
|
/**
|
|
101
93
|
* Test cross-party encryption (Alice encrypts for Bob)
|
|
102
94
|
*/
|
|
103
|
-
async function testCrossPartyEncryption() {
|
|
95
|
+
export async function testCrossPartyEncryption() {
|
|
104
96
|
try {
|
|
105
|
-
const ecies = new
|
|
97
|
+
const ecies = new ECIESService();
|
|
106
98
|
// Alice generates her keys
|
|
107
99
|
const aliceMnemonic = ecies.generateNewMnemonic();
|
|
108
100
|
const aliceKeys = ecies.mnemonicToSimpleKeyPair(aliceMnemonic);
|
|
@@ -110,7 +102,7 @@ async function testCrossPartyEncryption() {
|
|
|
110
102
|
const bobMnemonic = ecies.generateNewMnemonic();
|
|
111
103
|
const bobKeys = ecies.mnemonicToSimpleKeyPair(bobMnemonic);
|
|
112
104
|
// Alice encrypts a message for Bob
|
|
113
|
-
const message =
|
|
105
|
+
const message = stringToUint8Array('Secret message from Alice to Bob');
|
|
114
106
|
const encrypted = await ecies.encryptSimpleOrSingle(false, bobKeys.publicKey, message);
|
|
115
107
|
// Bob decrypts the message
|
|
116
108
|
const decrypted = await ecies.decryptSimpleOrSingleWithHeader(false, bobKeys.privateKey, encrypted);
|
|
@@ -122,7 +114,7 @@ async function testCrossPartyEncryption() {
|
|
|
122
114
|
catch {
|
|
123
115
|
// Expected to fail
|
|
124
116
|
}
|
|
125
|
-
return
|
|
117
|
+
return uint8ArrayToString(message) === uint8ArrayToString(decrypted);
|
|
126
118
|
}
|
|
127
119
|
catch (error) {
|
|
128
120
|
console.error('Cross-party encryption test failed:', error);
|
|
@@ -132,7 +124,7 @@ async function testCrossPartyEncryption() {
|
|
|
132
124
|
/**
|
|
133
125
|
* Run all tests
|
|
134
126
|
*/
|
|
135
|
-
async function runAllTests() {
|
|
127
|
+
export async function runAllTests() {
|
|
136
128
|
console.log('Running browser ECIES service tests...\n');
|
|
137
129
|
const tests = [
|
|
138
130
|
{ name: 'Basic Encryption', test: testBasicEncryption },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manual-test.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/manual-test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manual-test.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/manual-test.ts"],"names":[],"mappings":"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"}
|