@digitaldefiance/ecies-lib 1.0.15 → 1.0.17
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/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +6 -5
- package/dist/constants.js.map +1 -1
- package/dist/email-string.d.ts.map +1 -1
- package/dist/email-string.js +4 -3
- package/dist/email-string.js.map +1 -1
- package/dist/enumerations/ecies-encryption-type.d.ts.map +1 -1
- package/dist/enumerations/ecies-encryption-type.js +5 -4
- package/dist/enumerations/ecies-encryption-type.js.map +1 -1
- package/dist/enumerations/ecies-string-key.d.ts +68 -0
- package/dist/enumerations/ecies-string-key.d.ts.map +1 -0
- package/dist/enumerations/ecies-string-key.js +74 -0
- package/dist/enumerations/ecies-string-key.js.map +1 -0
- package/dist/enumerations/index.d.ts +2 -0
- package/dist/enumerations/index.d.ts.map +1 -1
- package/dist/enumerations/index.js +2 -0
- package/dist/enumerations/index.js.map +1 -1
- package/dist/enumerations/password-login-error-type.d.ts +5 -0
- package/dist/enumerations/password-login-error-type.d.ts.map +1 -0
- package/dist/enumerations/password-login-error-type.js +6 -0
- package/dist/enumerations/password-login-error-type.js.map +1 -0
- package/dist/errors/ecies.d.ts +5 -4
- package/dist/errors/ecies.d.ts.map +1 -1
- package/dist/errors/ecies.js +6 -52
- package/dist/errors/ecies.js.map +1 -1
- package/dist/errors/guid.d.ts +5 -5
- package/dist/errors/guid.d.ts.map +1 -1
- package/dist/errors/guid.js +9 -41
- package/dist/errors/guid.js.map +1 -1
- package/dist/errors/handleable.d.ts +1 -1
- package/dist/errors/handleable.d.ts.map +1 -1
- package/dist/errors/handleable.js +2 -2
- package/dist/errors/handleable.js.map +1 -1
- package/dist/errors/invalid-email.d.ts +5 -4
- package/dist/errors/invalid-email.d.ts.map +1 -1
- package/dist/errors/invalid-email.js +6 -25
- package/dist/errors/invalid-email.js.map +1 -1
- package/dist/errors/length.d.ts +5 -4
- package/dist/errors/length.d.ts.map +1 -1
- package/dist/errors/length.js +6 -35
- package/dist/errors/length.js.map +1 -1
- package/dist/errors/member.d.ts +5 -4
- package/dist/errors/member.d.ts.map +1 -1
- package/dist/errors/member.js +6 -43
- package/dist/errors/member.js.map +1 -1
- package/dist/errors/pbkdf2.d.ts +5 -4
- package/dist/errors/pbkdf2.d.ts.map +1 -1
- package/dist/errors/pbkdf2.js +6 -24
- package/dist/errors/pbkdf2.js.map +1 -1
- package/dist/errors/secure-storage.d.ts +5 -4
- package/dist/errors/secure-storage.d.ts.map +1 -1
- package/dist/errors/secure-storage.js +7 -25
- package/dist/errors/secure-storage.js.map +1 -1
- package/dist/errors/simple-ecies.d.ts +6 -5
- package/dist/errors/simple-ecies.d.ts.map +1 -1
- package/dist/errors/simple-ecies.js +5 -14
- package/dist/errors/simple-ecies.js.map +1 -1
- package/dist/errors/translatable.d.ts +3 -2
- package/dist/errors/translatable.d.ts.map +1 -1
- package/dist/errors/translatable.js +2 -2
- package/dist/errors/translatable.js.map +1 -1
- package/dist/errors/typed-handleable.d.ts +5 -6
- package/dist/errors/typed-handleable.d.ts.map +1 -1
- package/dist/errors/typed-handleable.js +5 -5
- package/dist/errors/typed-handleable.js.map +1 -1
- package/dist/guid.d.ts.map +1 -1
- package/dist/guid.js +32 -26
- package/dist/guid.js.map +1 -1
- package/dist/i18n-setup.d.ts +7 -9
- package/dist/i18n-setup.d.ts.map +1 -1
- package/dist/i18n-setup.js +35 -29
- package/dist/i18n-setup.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/library-error.d.ts +23 -0
- package/dist/interfaces/library-error.d.ts.map +1 -0
- package/dist/interfaces/library-error.js +2 -0
- package/dist/interfaces/library-error.js.map +1 -0
- package/dist/member.d.ts.map +1 -1
- package/dist/member.js +23 -15
- package/dist/member.js.map +1 -1
- package/dist/secure-buffer.d.ts.map +1 -1
- package/dist/secure-buffer.js +16 -13
- package/dist/secure-buffer.js.map +1 -1
- package/dist/secure-string.d.ts.map +1 -1
- package/dist/secure-string.js +17 -14
- package/dist/secure-string.js.map +1 -1
- package/dist/services/ecies/example.js +3 -3
- package/dist/services/ecies/example.js.map +1 -1
- package/dist/services/password-login.d.ts +7 -2
- package/dist/services/password-login.d.ts.map +1 -1
- package/dist/services/password-login.js +24 -10
- package/dist/services/password-login.js.map +1 -1
- package/dist/services/pbkdf2.d.ts +9 -5
- package/dist/services/pbkdf2.d.ts.map +1 -1
- package/dist/services/pbkdf2.js +13 -9
- package/dist/services/pbkdf2.js.map +1 -1
- package/dist/utils.d.ts +6 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +38 -14
- package/dist/utils.js.map +1 -1
- package/package.json +2 -2
package/dist/member.js
CHANGED
|
@@ -6,6 +6,7 @@ import { MemberError } from './errors/member';
|
|
|
6
6
|
import { GuidV4 } from './guid';
|
|
7
7
|
import { SecureBuffer } from './secure-buffer';
|
|
8
8
|
import { base64ToUint8Array, uint8ArrayToBase64, uint8ArrayToHex, } from './utils';
|
|
9
|
+
import { getEciesI18nEngine } from './i18n-setup';
|
|
9
10
|
/**
|
|
10
11
|
* A member of Brightchain.
|
|
11
12
|
* In the Owner Free Filesystem (OFF), members are used to:
|
|
@@ -38,10 +39,10 @@ export class Member {
|
|
|
38
39
|
this._id = id ?? GuidV4.new();
|
|
39
40
|
this._name = name;
|
|
40
41
|
if (!this._name || this._name.length == 0) {
|
|
41
|
-
throw new MemberError(MemberErrorType.MissingMemberName);
|
|
42
|
+
throw new MemberError(MemberErrorType.MissingMemberName, getEciesI18nEngine());
|
|
42
43
|
}
|
|
43
44
|
if (this._name.trim() != this._name) {
|
|
44
|
-
throw new MemberError(MemberErrorType.InvalidMemberNameWhitespace);
|
|
45
|
+
throw new MemberError(MemberErrorType.InvalidMemberNameWhitespace, getEciesI18nEngine());
|
|
45
46
|
}
|
|
46
47
|
this._email = email;
|
|
47
48
|
this._publicKey = publicKey;
|
|
@@ -90,7 +91,7 @@ export class Member {
|
|
|
90
91
|
}
|
|
91
92
|
get wallet() {
|
|
92
93
|
if (!this._wallet) {
|
|
93
|
-
throw new MemberError(MemberErrorType.NoWallet);
|
|
94
|
+
throw new MemberError(MemberErrorType.NoWallet, getEciesI18nEngine());
|
|
94
95
|
}
|
|
95
96
|
return this._wallet;
|
|
96
97
|
}
|
|
@@ -112,7 +113,7 @@ export class Member {
|
|
|
112
113
|
}
|
|
113
114
|
loadWallet(mnemonic) {
|
|
114
115
|
if (this._wallet) {
|
|
115
|
-
throw new MemberError(MemberErrorType.WalletAlreadyLoaded);
|
|
116
|
+
throw new MemberError(MemberErrorType.WalletAlreadyLoaded, getEciesI18nEngine());
|
|
116
117
|
}
|
|
117
118
|
const { wallet } = this._eciesService.walletAndSeedFromMnemonic(mnemonic);
|
|
118
119
|
const privateKey = wallet.getPrivateKey();
|
|
@@ -121,9 +122,10 @@ export class Member {
|
|
|
121
122
|
publicKeyWithPrefix[0] = ECIES.PUBLIC_KEY_MAGIC;
|
|
122
123
|
publicKeyWithPrefix.set(publicKey, 1);
|
|
123
124
|
if (uint8ArrayToHex(publicKeyWithPrefix) !== uint8ArrayToHex(this._publicKey)) {
|
|
124
|
-
throw new MemberError(MemberErrorType.InvalidMnemonic);
|
|
125
|
+
throw new MemberError(MemberErrorType.InvalidMnemonic, getEciesI18nEngine());
|
|
125
126
|
}
|
|
126
127
|
this._wallet = wallet;
|
|
128
|
+
this._privateKey?.dispose();
|
|
127
129
|
this._privateKey = new SecureBuffer(privateKey);
|
|
128
130
|
}
|
|
129
131
|
/**
|
|
@@ -137,13 +139,13 @@ export class Member {
|
|
|
137
139
|
}
|
|
138
140
|
sign(data) {
|
|
139
141
|
if (!this._privateKey) {
|
|
140
|
-
throw new MemberError(MemberErrorType.MissingPrivateKey);
|
|
142
|
+
throw new MemberError(MemberErrorType.MissingPrivateKey, getEciesI18nEngine());
|
|
141
143
|
}
|
|
142
144
|
return this._eciesService.signMessage(this._privateKey.value, data);
|
|
143
145
|
}
|
|
144
146
|
signData(data) {
|
|
145
147
|
if (!this._privateKey) {
|
|
146
|
-
throw new MemberError(MemberErrorType.MissingPrivateKey);
|
|
148
|
+
throw new MemberError(MemberErrorType.MissingPrivateKey, getEciesI18nEngine());
|
|
147
149
|
}
|
|
148
150
|
return this._eciesService.signMessage(new Uint8Array(this._privateKey.value), data);
|
|
149
151
|
}
|
|
@@ -158,12 +160,12 @@ export class Member {
|
|
|
158
160
|
async encryptData(data, recipientPublicKey) {
|
|
159
161
|
// Validate input
|
|
160
162
|
if (!data) {
|
|
161
|
-
throw new MemberError(MemberErrorType.MissingEncryptionData);
|
|
163
|
+
throw new MemberError(MemberErrorType.MissingEncryptionData, getEciesI18nEngine());
|
|
162
164
|
}
|
|
163
165
|
// Check size limit
|
|
164
166
|
const arr = data instanceof Uint8Array ? data : new TextEncoder().encode(data);
|
|
165
167
|
if (arr.length > Member.MAX_ENCRYPTION_SIZE) {
|
|
166
|
-
throw new MemberError(MemberErrorType.EncryptionDataTooLarge);
|
|
168
|
+
throw new MemberError(MemberErrorType.EncryptionDataTooLarge, getEciesI18nEngine());
|
|
167
169
|
}
|
|
168
170
|
// Use recipient public key or self public key
|
|
169
171
|
const targetPublicKey = recipientPublicKey || this._publicKey;
|
|
@@ -171,7 +173,7 @@ export class Member {
|
|
|
171
173
|
}
|
|
172
174
|
async decryptData(encryptedData) {
|
|
173
175
|
if (!this._privateKey) {
|
|
174
|
-
throw new MemberError(MemberErrorType.MissingPrivateKey);
|
|
176
|
+
throw new MemberError(MemberErrorType.MissingPrivateKey, getEciesI18nEngine());
|
|
175
177
|
}
|
|
176
178
|
// decryptSingleWithHeader now returns the Uint8Array directly
|
|
177
179
|
return await this._eciesService.decryptSimpleOrSingleWithHeader(false, new Uint8Array(this._privateKey.value), encryptedData);
|
|
@@ -201,7 +203,13 @@ export class Member {
|
|
|
201
203
|
static fromJson(json,
|
|
202
204
|
// Add injected services as parameters
|
|
203
205
|
eciesService) {
|
|
204
|
-
|
|
206
|
+
let storage;
|
|
207
|
+
try {
|
|
208
|
+
storage = JSON.parse(json);
|
|
209
|
+
}
|
|
210
|
+
catch (error) {
|
|
211
|
+
throw new MemberError(MemberErrorType.InvalidMemberData, getEciesI18nEngine());
|
|
212
|
+
}
|
|
205
213
|
const email = new EmailString(storage.email);
|
|
206
214
|
// Pass injected services to constructor
|
|
207
215
|
const dateCreated = new Date(storage.dateCreated);
|
|
@@ -223,16 +231,16 @@ export class Member {
|
|
|
223
231
|
type, name, email, forceMnemonic, createdBy) {
|
|
224
232
|
// Validate inputs first
|
|
225
233
|
if (!name || name.length == 0) {
|
|
226
|
-
throw new MemberError(MemberErrorType.MissingMemberName);
|
|
234
|
+
throw new MemberError(MemberErrorType.MissingMemberName, getEciesI18nEngine());
|
|
227
235
|
}
|
|
228
236
|
if (name.trim() != name) {
|
|
229
|
-
throw new MemberError(MemberErrorType.InvalidMemberNameWhitespace);
|
|
237
|
+
throw new MemberError(MemberErrorType.InvalidMemberNameWhitespace, getEciesI18nEngine());
|
|
230
238
|
}
|
|
231
239
|
if (!email || email.toString().length == 0) {
|
|
232
|
-
throw new MemberError(MemberErrorType.MissingEmail);
|
|
240
|
+
throw new MemberError(MemberErrorType.MissingEmail, getEciesI18nEngine());
|
|
233
241
|
}
|
|
234
242
|
if (email.toString().trim() != email.toString()) {
|
|
235
|
-
throw new MemberError(MemberErrorType.InvalidEmailWhitespace);
|
|
243
|
+
throw new MemberError(MemberErrorType.InvalidEmailWhitespace, getEciesI18nEngine());
|
|
236
244
|
}
|
|
237
245
|
// Use injected services
|
|
238
246
|
const mnemonic = forceMnemonic ?? eciesService.generateNewMnemonic();
|
package/dist/member.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member.js","sourceRoot":"","sources":["../src/member.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAC/D,OAAO,UAAU,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,GAChB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"member.js","sourceRoot":"","sources":["../src/member.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secure-buffer.d.ts","sourceRoot":"","sources":["../src/secure-buffer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"secure-buffer.d.ts","sourceRoot":"","sources":["../src/secure-buffer.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGzD;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAa;IAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAa;IACjD,OAAO,CAAC,WAAW,CAAC,CAAS;gBACjB,IAAI,CAAC,EAAE,UAAU;IAgBtB,OAAO,IAAI,IAAI;IAWtB,OAAO,CAAC,iBAAiB;WAWX,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;IAGpD,IAAW,eAAe,IAAI,MAAM,GAAG,SAAS,CAE/C;IACD,IAAW,EAAE,IAAI,WAAW,CAG3B;IACD,IAAW,YAAY,IAAI,iBAAiB,CAG3C;IACD,IAAW,cAAc,IAAI,MAAM,CAGlC;IACD,IAAW,KAAK,IAAI,UAAU,CA4B7B;IACD,IAAW,aAAa,IAAI,MAAM,CAGjC;IACD,IAAW,gBAAgB,IAAI,MAAM,CAGpC;IACD,IAAW,mBAAmB,IAAI,MAAM,CAGvC;IACD,IAAW,QAAQ,IAAI,MAAM,CAM5B;IACD,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,8BAA8B;IAOtC,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,0BAA0B;IAMlC,OAAO,CAAC,aAAa;IAGrB,OAAO,CAAC,eAAe;IAGvB,IAAW,MAAM,IAAI,MAAM,CAG1B;CACF"}
|
package/dist/secure-buffer.js
CHANGED
|
@@ -2,6 +2,7 @@ import { SecureStorageErrorType } from './enumerations/secure-storage-error-type
|
|
|
2
2
|
import { DisposedError } from './errors/disposed';
|
|
3
3
|
import { SecureStorageError } from './errors/secure-storage';
|
|
4
4
|
import { GuidV4 } from './guid';
|
|
5
|
+
import { getEciesI18nEngine } from './i18n-setup';
|
|
5
6
|
import { XorService } from './services/xor';
|
|
6
7
|
import { uint8ArrayToHex } from './utils';
|
|
7
8
|
/**
|
|
@@ -46,16 +47,16 @@ export class SecureBuffer {
|
|
|
46
47
|
this._disposed = true;
|
|
47
48
|
}
|
|
48
49
|
assertNotDisposed() {
|
|
49
|
-
if (
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
50
|
+
if (this._disposed) {
|
|
51
|
+
const e = new DisposedError();
|
|
52
|
+
try {
|
|
53
|
+
e.disposedAt = this._disposedAt;
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
// ignore if Error object is sealed/frozen
|
|
57
|
+
}
|
|
58
|
+
throw e;
|
|
57
59
|
}
|
|
58
|
-
throw e;
|
|
59
60
|
}
|
|
60
61
|
static fromString(data) {
|
|
61
62
|
return new SecureBuffer(new TextEncoder().encode(data));
|
|
@@ -83,10 +84,10 @@ export class SecureBuffer {
|
|
|
83
84
|
try {
|
|
84
85
|
const deobfuscatedResult = this.deobfuscateData(this._obfuscatedValue);
|
|
85
86
|
if (deobfuscatedResult.length !== this._length) {
|
|
86
|
-
throw new SecureStorageError(SecureStorageErrorType.DecryptedValueLengthMismatch);
|
|
87
|
+
throw new SecureStorageError(SecureStorageErrorType.DecryptedValueLengthMismatch, getEciesI18nEngine());
|
|
87
88
|
}
|
|
88
89
|
if (!this.validateObfuscatedChecksum(deobfuscatedResult)) {
|
|
89
|
-
throw new SecureStorageError(SecureStorageErrorType.DecryptedValueChecksumMismatch);
|
|
90
|
+
throw new SecureStorageError(SecureStorageErrorType.DecryptedValueChecksumMismatch, getEciesI18nEngine());
|
|
90
91
|
}
|
|
91
92
|
return deobfuscatedResult;
|
|
92
93
|
}
|
|
@@ -96,7 +97,7 @@ export class SecureBuffer {
|
|
|
96
97
|
throw error;
|
|
97
98
|
}
|
|
98
99
|
// Convert any other error (including AES-GCM authentication errors) to SecureStorageError
|
|
99
|
-
throw new SecureStorageError(SecureStorageErrorType.DecryptedValueChecksumMismatch);
|
|
100
|
+
throw new SecureStorageError(SecureStorageErrorType.DecryptedValueChecksumMismatch, getEciesI18nEngine());
|
|
100
101
|
}
|
|
101
102
|
}
|
|
102
103
|
get valueAsString() {
|
|
@@ -131,7 +132,9 @@ export class SecureBuffer {
|
|
|
131
132
|
}
|
|
132
133
|
validateSimpleChecksum(data, checksum) {
|
|
133
134
|
const generatedChecksum = this.generateSimpleChecksum(data);
|
|
134
|
-
|
|
135
|
+
const a = new TextEncoder().encode(generatedChecksum);
|
|
136
|
+
const b = new TextEncoder().encode(checksum);
|
|
137
|
+
return this.timingSafeEqual(a, b);
|
|
135
138
|
}
|
|
136
139
|
timingSafeEqual(a, b) {
|
|
137
140
|
if (a.length !== b.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secure-buffer.js","sourceRoot":"","sources":["../src/secure-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,OAAO,YAAY;IACf,SAAS,GAAY,KAAK,CAAC;IAClB,GAAG,CAAS;IACZ,OAAO,CAAS;IAChB,gBAAgB,CAAa;IAC7B,IAAI,CAAa;IACjB,mBAAmB,CAAa;IACzC,WAAW,CAAU;IAC7B,YAAY,IAAiB;QAC3B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;QACxB,0CAA0C;QAC1C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,gBAAgB,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACjD,oEAAoE;QACpE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC;IACM,OAAO;QACZ,MAAM,GAAG,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,IAAI,OAAQ,KAAa,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;YAC1D,KAAa,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,KAAK,IAAI,mBAAmB,CAAC;QACpD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IACO,iBAAiB;QACvB,IAAI,
|
|
1
|
+
{"version":3,"file":"secure-buffer.js","sourceRoot":"","sources":["../src/secure-buffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secure-string.d.ts","sourceRoot":"","sources":["../src/secure-string.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"secure-string.d.ts","sourceRoot":"","sources":["../src/secure-string.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGzD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAa;IAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAa;IACjD,OAAO,CAAC,WAAW,CAAC,CAAS;gBACjB,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAuB7C,OAAO,CAAC,iBAAiB;IAWlB,OAAO,IAAI,IAAI;IAWtB,IAAW,eAAe,IAAI,MAAM,GAAG,SAAS,CAE/C;IACD,IAAW,EAAE,IAAI,WAAW,CAG3B;IACD,IAAW,YAAY,IAAI,iBAAiB,CAG3C;IACD,IAAW,cAAc,IAAI,MAAM,CAGlC;IACD,IAAW,iBAAiB,IAAI,UAAU,CAuCzC;IACD,IAAW,KAAK,IAAI,MAAM,GAAG,IAAI,CAMhC;IACD,IAAW,YAAY,IAAI,MAAM,CAMhC;IACD,IAAW,gBAAgB,IAAI,MAAM,CAGpC;IACD,IAAW,mBAAmB,IAAI,MAAM,CAGvC;IACD,IAAW,QAAQ,IAAI,OAAO,CAG7B;IACD,IAAW,QAAQ,IAAI,MAAM,CAM5B;IACD,IAAW,MAAM,IAAI,MAAM,CAG1B;YACa,gBAAgB;IAS9B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,8BAA8B;YASxB,wBAAwB;YAOxB,gBAAgB;IAQ9B,OAAO,CAAC,eAAe;YAUT,0BAA0B;IAQxC,OAAO,CAAC,aAAa;IAGrB,OAAO,CAAC,eAAe;CAGxB"}
|
package/dist/secure-string.js
CHANGED
|
@@ -2,6 +2,7 @@ import { SecureStorageErrorType } from './enumerations/secure-storage-error-type
|
|
|
2
2
|
import { DisposedError } from './errors/disposed';
|
|
3
3
|
import { SecureStorageError } from './errors/secure-storage';
|
|
4
4
|
import { GuidV4 } from './guid';
|
|
5
|
+
import { getEciesI18nEngine } from './i18n-setup';
|
|
5
6
|
import { XorService } from './services/xor';
|
|
6
7
|
import { uint8ArrayToHex } from './utils';
|
|
7
8
|
/**
|
|
@@ -39,16 +40,16 @@ export class SecureString {
|
|
|
39
40
|
this.createSimpleObfuscatedChecksum(dataAsUint8Array);
|
|
40
41
|
}
|
|
41
42
|
assertNotDisposed() {
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
43
|
+
if (this._disposed) {
|
|
44
|
+
const e = new DisposedError();
|
|
45
|
+
try {
|
|
46
|
+
e.disposedAt = this._disposedAt;
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// ignore if Error object is sealed/frozen
|
|
50
|
+
}
|
|
51
|
+
throw e;
|
|
50
52
|
}
|
|
51
|
-
throw e;
|
|
52
53
|
}
|
|
53
54
|
dispose() {
|
|
54
55
|
const err = new DisposedError();
|
|
@@ -84,13 +85,15 @@ export class SecureString {
|
|
|
84
85
|
try {
|
|
85
86
|
const deobfuscatedResult = this.deobfuscateData(this._obfuscatedValue);
|
|
86
87
|
if (deobfuscatedResult.length !== this._length) {
|
|
87
|
-
throw new SecureStorageError(SecureStorageErrorType.DecryptedValueLengthMismatch);
|
|
88
|
+
throw new SecureStorageError(SecureStorageErrorType.DecryptedValueLengthMismatch, getEciesI18nEngine());
|
|
88
89
|
}
|
|
89
90
|
// Validate checksum
|
|
90
91
|
const expectedChecksum = this.createSimpleChecksum(deobfuscatedResult);
|
|
91
92
|
const storedChecksum = new TextDecoder().decode(this.deobfuscateData(this._obfuscatedChecksum));
|
|
92
|
-
|
|
93
|
-
|
|
93
|
+
const expectedBytes = new TextEncoder().encode(expectedChecksum);
|
|
94
|
+
const storedBytes = new TextEncoder().encode(storedChecksum);
|
|
95
|
+
if (!this.timingSafeEqual(expectedBytes, storedBytes)) {
|
|
96
|
+
throw new SecureStorageError(SecureStorageErrorType.DecryptedValueChecksumMismatch, getEciesI18nEngine());
|
|
94
97
|
}
|
|
95
98
|
return deobfuscatedResult;
|
|
96
99
|
}
|
|
@@ -100,7 +103,7 @@ export class SecureString {
|
|
|
100
103
|
throw error;
|
|
101
104
|
}
|
|
102
105
|
// Convert any other error to SecureStorageError
|
|
103
|
-
throw new SecureStorageError(SecureStorageErrorType.DecryptedValueChecksumMismatch);
|
|
106
|
+
throw new SecureStorageError(SecureStorageErrorType.DecryptedValueChecksumMismatch, getEciesI18nEngine());
|
|
104
107
|
}
|
|
105
108
|
}
|
|
106
109
|
get value() {
|
|
@@ -113,7 +116,7 @@ export class SecureString {
|
|
|
113
116
|
get notNullValue() {
|
|
114
117
|
this.assertNotDisposed();
|
|
115
118
|
if (this._isNull) {
|
|
116
|
-
throw new SecureStorageError(SecureStorageErrorType.ValueIsNull);
|
|
119
|
+
throw new SecureStorageError(SecureStorageErrorType.ValueIsNull, getEciesI18nEngine());
|
|
117
120
|
}
|
|
118
121
|
return new TextDecoder().decode(this.valueAsUint8Array);
|
|
119
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secure-string.js","sourceRoot":"","sources":["../src/secure-string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,SAAS,GAAY,KAAK,CAAC;IAClB,OAAO,CAAU;IACjB,GAAG,CAAS;IACZ,OAAO,CAAS;IAChB,gBAAgB,CAAa;IAC7B,IAAI,CAAa;IACjB,mBAAmB,CAAa;IACzC,WAAW,CAAU;IAC7B,YAAY,IAAiC;QAC3C,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;QACxB,+EAA+E;QAC/E,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,gBAAgB,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9B,MAAM,gBAAgB,GACpB,OAAO,IAAI,KAAK,QAAQ;YACtB,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;YAChC,CAAC,CAAE,IAAmB,CAAC;QAC3B,kDAAkD;QAClD,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC;QACvC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAC7D,IAAI,CAAC,mBAAmB;YACtB,IAAI,CAAC,8BAA8B,CAAC,gBAAgB,CAAC,CAAC;IAC1D,CAAC;IACO,iBAAiB;QACvB,IAAI,
|
|
1
|
+
{"version":3,"file":"secure-string.js","sourceRoot":"","sources":["../src/secure-string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,SAAS,GAAY,KAAK,CAAC;IAClB,OAAO,CAAU;IACjB,GAAG,CAAS;IACZ,OAAO,CAAS;IAChB,gBAAgB,CAAa;IAC7B,IAAI,CAAa;IACjB,mBAAmB,CAAa;IACzC,WAAW,CAAU;IAC7B,YAAY,IAAiC;QAC3C,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;QACxB,+EAA+E;QAC/E,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,gBAAgB,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9B,MAAM,gBAAgB,GACpB,OAAO,IAAI,KAAK,QAAQ;YACtB,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;YAChC,CAAC,CAAE,IAAmB,CAAC;QAC3B,kDAAkD;QAClD,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC;QACvC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAC7D,IAAI,CAAC,mBAAmB;YACtB,IAAI,CAAC,8BAA8B,CAAC,gBAAgB,CAAC,CAAC;IAC1D,CAAC;IACO,iBAAiB;QACvB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,IAAI,aAAa,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACF,CAAS,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,0CAA0C;YAC5C,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IACM,OAAO;QACZ,MAAM,GAAG,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,IAAI,OAAQ,KAAa,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;YAC1D,KAAa,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,KAAK,IAAI,mBAAmB,CAAC;QACpD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IACD,IAAW,eAAe;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IACD,IAAW,EAAE;QACX,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;IAChC,CAAC;IACD,IAAW,YAAY;QACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC;IACtC,CAAC;IACD,IAAW,cAAc;QACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,IAAW,iBAAiB;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC;YACH,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACvE,IAAI,kBAAkB,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC/C,MAAM,IAAI,kBAAkB,CAC1B,sBAAsB,CAAC,4BAA4B,EAAE,kBAAkB,EAAE,CAC1E,CAAC;YACJ,CAAC;YAED,oBAAoB;YACpB,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;YACvE,MAAM,cAAc,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAC7C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAC/C,CAAC;YAEF,MAAM,aAAa,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACjE,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,kBAAkB,CAC1B,sBAAsB,CAAC,8BAA8B,EAAE,kBAAkB,EAAE,CAC5E,CAAC;YACJ,CAAC;YAED,OAAO,kBAAkB,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oDAAoD;YACpD,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;gBACxC,MAAM,KAAK,CAAC;YACd,CAAC;YACD,gDAAgD;YAChD,MAAM,IAAI,kBAAkB,CAC1B,sBAAsB,CAAC,8BAA8B,EACrD,kBAAkB,EAAE,CACrB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAW,KAAK;QACd,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC1D,CAAC;IACD,IAAW,YAAY;QACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,kBAAkB,CAAC,sBAAsB,CAAC,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC1D,CAAC;IACD,IAAW,gBAAgB;QACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjD,CAAC;IACD,IAAW,mBAAmB;QAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,IAAW,QAAQ;QACjB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IAC3C,CAAC;IACD,IAAW,QAAQ;QACjB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,oBAAoB,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CACnD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAC/C,CAAC;QACF,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACD,IAAW,MAAM;QACf,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACO,KAAK,CAAC,gBAAgB,CAAC,IAAyB;QACtD,MAAM,SAAS,GACb,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAC1C,SAAS,EACT,IAAI,UAAU,CAAC,SAAS,CAAC,CAC1B,CAAC;QACF,OAAO,eAAe,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACpD,CAAC;IACO,oBAAoB,CAAC,IAAgB;QAC3C,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAEO,8BAA8B,CACpC,IAAyB;QAEzB,MAAM,SAAS,GACb,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChE,CAAC;IAEO,KAAK,CAAC,wBAAwB,CACpC,IAAyB;QAEzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtE,OAAO,MAAM,CAAC;IAChB,CAAC;IACO,KAAK,CAAC,gBAAgB,CAC5B,IAAyB,EACzB,QAAgB;QAEhB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,iBAAiB,KAAK,QAAQ,CAAC;IACxC,CAAC;IAEO,eAAe,CAAC,CAAa,EAAE,CAAa;QAClD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,MAAM,KAAK,CAAC,CAAC;IACtB,CAAC;IACO,KAAK,CAAC,0BAA0B,CACtC,IAAyB;QAEzB,MAAM,oBAAoB,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CACnD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAC/C,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IAC3D,CAAC;IACO,aAAa,CAAC,IAAgB;QACpC,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACO,eAAe,CAAC,IAAgB;QACtC,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -17,7 +17,7 @@ export async function basicEncryptionExample() {
|
|
|
17
17
|
const mnemonic = ecies.generateNewMnemonic();
|
|
18
18
|
console.log('Generated mnemonic:', mnemonic);
|
|
19
19
|
const { privateKey, publicKey } = ecies.mnemonicToSimpleKeyPair(mnemonic);
|
|
20
|
-
console.log('Private key:', uint8ArrayToHex(privateKey));
|
|
20
|
+
console.log('Private key hash:', uint8ArrayToHex(privateKey).slice(0, 16) + '...');
|
|
21
21
|
console.log('Public key:', uint8ArrayToHex(publicKey));
|
|
22
22
|
// Message to encrypt
|
|
23
23
|
const message = stringToUint8Array('Hello, Digital Defiance!');
|
|
@@ -90,11 +90,11 @@ export async function walletDerivationExample() {
|
|
|
90
90
|
const ecies = new ECIESService();
|
|
91
91
|
// Use a known mnemonic for reproducible results
|
|
92
92
|
const mnemonic = new SecureString('abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about');
|
|
93
|
-
console.log('Test mnemonic:
|
|
93
|
+
console.log('Test mnemonic: [REDACTED - known test mnemonic]');
|
|
94
94
|
// Derive wallet
|
|
95
95
|
const { wallet, seed } = ecies.walletAndSeedFromMnemonic(mnemonic);
|
|
96
96
|
console.log('Seed:', uint8ArrayToHex(seed));
|
|
97
|
-
console.log('Private key:', uint8ArrayToHex(wallet.getPrivateKey()));
|
|
97
|
+
console.log('Private key hash:', uint8ArrayToHex(wallet.getPrivateKey()).slice(0, 16) + '...');
|
|
98
98
|
console.log('Public key:', uint8ArrayToHex(wallet.getPublicKey()));
|
|
99
99
|
// Derive the same keys using the simple method
|
|
100
100
|
const simpleKeys = ecies.mnemonicToSimpleKeyPair(mnemonic);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example.js","sourceRoot":"","sources":["../../../src/services/ecies/example.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,qDAAqD;AAErD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAEtD,gCAAgC;IAChC,MAAM,KAAK,GAAG,IAAI,YAAY,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,
|
|
1
|
+
{"version":3,"file":"example.js","sourceRoot":"","sources":["../../../src/services/ecies/example.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,18 @@ import { Wallet } from '@ethereumjs/wallet';
|
|
|
2
2
|
import { Pbkdf2ProfileEnum } from '../enumerations/pbkdf2-profile';
|
|
3
3
|
import { SecureString } from '../secure-string';
|
|
4
4
|
import { ECIESService } from './ecies/service';
|
|
5
|
+
import { Pbkdf2Service } from './pbkdf2';
|
|
6
|
+
import { EciesStringKey } from '../enumerations';
|
|
7
|
+
import { I18nEngine, Language } from '@digitaldefiance/i18n-lib';
|
|
5
8
|
export declare class PasswordLoginService {
|
|
6
|
-
|
|
9
|
+
protected readonly eciesService: ECIESService;
|
|
10
|
+
protected readonly pbkdf2Service: Pbkdf2Service;
|
|
11
|
+
protected readonly engine: I18nEngine<EciesStringKey, Language, any, any>;
|
|
7
12
|
static readonly privateKeyStorageKey = "encryptedPrivateKey";
|
|
8
13
|
static readonly saltStorageKey = "passwordLoginSalt";
|
|
9
14
|
static readonly encryptedMnemonicStorageKey = "encryptedMnemonic";
|
|
10
15
|
static readonly profileStorageKey = "pbkdf2Profile";
|
|
11
|
-
constructor(eciesService: ECIESService);
|
|
16
|
+
constructor(eciesService: ECIESService, pbkdf2Service: Pbkdf2Service, engine: I18nEngine<EciesStringKey, Language, any, any>);
|
|
12
17
|
createPasswordLoginBundle(mnemonic: SecureString, password: SecureString, profile?: Pbkdf2ProfileEnum): Promise<{
|
|
13
18
|
salt: Uint8Array;
|
|
14
19
|
encryptedPrivateKey: Uint8Array;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password-login.d.ts","sourceRoot":"","sources":["../../src/services/password-login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"password-login.d.ts","sourceRoot":"","sources":["../../src/services/password-login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,cAAc,EAA8B,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAkB,UAAU,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGjF,qBAAa,oBAAoB;IAC/B,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAChD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1E,gBAAuB,oBAAoB,yBAAyB;IACpE,gBAAuB,cAAc,uBAAuB;IAC5D,gBAAuB,2BAA2B,uBAAuB;IACzE,gBAAuB,iBAAiB,mBAAmB;gBAE/C,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,CAAC,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC;IAM/G,yBAAyB,CACpC,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,iBAAsD,GAC9D,OAAO,CAAC;QACT,IAAI,EAAE,UAAU,CAAC;QACjB,mBAAmB,EAAE,UAAU,CAAC;QAChC,iBAAiB,EAAE,UAAU,CAAC;QAC9B,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAwCF;;;;OAIG;IACU,oCAAoC,CAC/C,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,iBAAsD,GAC9D,OAAO,CAAC,MAAM,CAAC;IA4BL,+CAA+C,CAC1D,IAAI,EAAE,UAAU,EAChB,mBAAmB,EAAE,UAAU,EAC/B,iBAAiB,EAAE,UAAU,EAC7B,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,iBAAsD,GAC9D,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;IAqCtD;;;;OAIG;IACU,0CAA0C,CACrD,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;IAmCtD;;;OAGG;WACW,oBAAoB,IAAI,OAAO;CAkB9C"}
|
|
@@ -4,22 +4,31 @@ import { Pbkdf2ProfileEnum } from '../enumerations/pbkdf2-profile';
|
|
|
4
4
|
import { SecureString } from '../secure-string';
|
|
5
5
|
import { hexToUint8Array, uint8ArrayToHex } from '../utils';
|
|
6
6
|
import { AESGCMService } from './aes-gcm';
|
|
7
|
-
import {
|
|
7
|
+
import { TranslatableError, TypedHandleableError } from '../errors';
|
|
8
|
+
import { EciesStringKey, PasswordLoginErrorTypeEnum } from '../enumerations';
|
|
9
|
+
import { buildReasonMap } from '@digitaldefiance/i18n-lib';
|
|
8
10
|
export class PasswordLoginService {
|
|
9
11
|
eciesService;
|
|
12
|
+
pbkdf2Service;
|
|
13
|
+
engine;
|
|
10
14
|
static privateKeyStorageKey = 'encryptedPrivateKey';
|
|
11
15
|
static saltStorageKey = 'passwordLoginSalt';
|
|
12
16
|
static encryptedMnemonicStorageKey = 'encryptedMnemonic';
|
|
13
17
|
static profileStorageKey = 'pbkdf2Profile';
|
|
14
|
-
constructor(eciesService) {
|
|
18
|
+
constructor(eciesService, pbkdf2Service, engine) {
|
|
15
19
|
this.eciesService = eciesService;
|
|
20
|
+
this.pbkdf2Service = pbkdf2Service;
|
|
21
|
+
this.engine = engine;
|
|
16
22
|
}
|
|
17
23
|
async createPasswordLoginBundle(mnemonic, password, profile = Pbkdf2ProfileEnum.BROWSER_PASSWORD) {
|
|
18
24
|
const { wallet } = this.eciesService.walletAndSeedFromMnemonic(mnemonic);
|
|
19
|
-
const derivedKey = await
|
|
25
|
+
const derivedKey = await this.pbkdf2Service.deriveKeyFromPasswordWithProfileAsync(password.valueAsUint8Array, profile);
|
|
20
26
|
// Encrypt private key with derived key
|
|
21
27
|
const privateKeyBytes = wallet.getPrivateKey();
|
|
22
28
|
const { encrypted, iv, tag } = await AESGCMService.encrypt(privateKeyBytes, derivedKey.hash, true);
|
|
29
|
+
if (!tag) {
|
|
30
|
+
throw new TranslatableError(EciesStringKey.Error_Utils_EncryptionFailedNoAuthTag, this.engine);
|
|
31
|
+
}
|
|
23
32
|
const encryptedPrivateKey = AESGCMService.combineIvTagAndEncryptedData(iv, encrypted, tag);
|
|
24
33
|
// now use the public key to encrypt the mnemonic and store it
|
|
25
34
|
const encryptedMnemonic = await this.eciesService.encrypt(EciesEncryptionTypeEnum.Simple, [{ publicKey: wallet.getPublicKey() }], mnemonic.valueAsUint8Array);
|
|
@@ -38,17 +47,22 @@ export class PasswordLoginService {
|
|
|
38
47
|
async setupPasswordLoginLocalStorageBundle(mnemonic, password, profile = Pbkdf2ProfileEnum.BROWSER_PASSWORD) {
|
|
39
48
|
const { salt, encryptedPrivateKey, encryptedMnemonic, wallet } = await this.createPasswordLoginBundle(mnemonic, password, profile);
|
|
40
49
|
// store the salt and encrypted private key in local storage
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
50
|
+
try {
|
|
51
|
+
localStorage.setItem(PasswordLoginService.saltStorageKey, uint8ArrayToHex(salt));
|
|
52
|
+
localStorage.setItem(PasswordLoginService.privateKeyStorageKey, uint8ArrayToHex(encryptedPrivateKey));
|
|
53
|
+
localStorage.setItem(PasswordLoginService.encryptedMnemonicStorageKey, uint8ArrayToHex(encryptedMnemonic));
|
|
54
|
+
localStorage.setItem(PasswordLoginService.profileStorageKey, profile);
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
throw new TypedHandleableError(PasswordLoginErrorTypeEnum.FailedToStoreLoginData, buildReasonMap(PasswordLoginErrorTypeEnum, ['Error', 'PasswordLoginError']), this.engine, undefined, undefined, undefined, error instanceof Error ? error : undefined);
|
|
58
|
+
}
|
|
45
59
|
return wallet;
|
|
46
60
|
}
|
|
47
61
|
async getWalletAndMnemonicFromEncryptedPasswordBundle(salt, encryptedPrivateKey, encryptedMnemonic, password, profile = Pbkdf2ProfileEnum.BROWSER_PASSWORD) {
|
|
48
62
|
if (!salt || !encryptedPrivateKey || !encryptedMnemonic) {
|
|
49
|
-
throw new
|
|
63
|
+
throw new TypedHandleableError(PasswordLoginErrorTypeEnum.PasswordLoginNotSetUp, buildReasonMap(PasswordLoginErrorTypeEnum, ['Error', 'PasswordLoginError']), this.engine);
|
|
50
64
|
}
|
|
51
|
-
const derivedKey = await
|
|
65
|
+
const derivedKey = await this.pbkdf2Service.deriveKeyFromPasswordWithProfileAsync(password.valueAsUint8Array, profile, salt);
|
|
52
66
|
// Decrypt private key with derived key
|
|
53
67
|
const { iv, encryptedDataWithTag } = AESGCMService.splitEncryptedData(encryptedPrivateKey, true);
|
|
54
68
|
const privateKeyBytes = await AESGCMService.decrypt(iv, encryptedDataWithTag, derivedKey.hash, true);
|
|
@@ -73,7 +87,7 @@ export class PasswordLoginService {
|
|
|
73
87
|
saltHex === '' ||
|
|
74
88
|
encryptedPrivateKeyHex === '' ||
|
|
75
89
|
encryptedMnemonicHex === '') {
|
|
76
|
-
throw new
|
|
90
|
+
throw new TypedHandleableError(PasswordLoginErrorTypeEnum.PasswordLoginNotSetUp, buildReasonMap(PasswordLoginErrorTypeEnum, ['Error', 'PasswordLoginError']), this.engine);
|
|
77
91
|
}
|
|
78
92
|
const salt = hexToUint8Array(saltHex);
|
|
79
93
|
const encryptedPrivateKey = hexToUint8Array(encryptedPrivateKeyHex);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password-login.js","sourceRoot":"","sources":["../../src/services/password-login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"password-login.js","sourceRoot":"","sources":["../../src/services/password-login.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { I18nEngine, Language } from '@digitaldefiance/i18n-lib';
|
|
1
2
|
import { PBKDF2_PROFILES } from '../constants';
|
|
2
3
|
import { Pbkdf2ProfileEnum } from '../enumerations/pbkdf2-profile';
|
|
3
4
|
import { IPbkdf2Config } from '../interfaces/pbkdf2-config';
|
|
4
5
|
import { IPbkdf2Result } from '../interfaces/pbkdf2-result';
|
|
6
|
+
import { EciesStringKey } from '../enumerations';
|
|
5
7
|
/**
|
|
6
8
|
* Service for handling PBKDF2 (Password-Based Key Derivation Function 2) operations.
|
|
7
9
|
* This service provides functionality for:
|
|
@@ -10,13 +12,15 @@ import { IPbkdf2Result } from '../interfaces/pbkdf2-result';
|
|
|
10
12
|
* - Managing salt and iteration parameters
|
|
11
13
|
* - Both synchronous and asynchronous key derivation
|
|
12
14
|
*/
|
|
13
|
-
export declare
|
|
15
|
+
export declare class Pbkdf2Service {
|
|
16
|
+
protected readonly engine: I18nEngine<EciesStringKey, Language, any, any>;
|
|
17
|
+
constructor(engine: I18nEngine<EciesStringKey, Language, any, any>);
|
|
14
18
|
/**
|
|
15
19
|
* Get a predefined configuration profile for common use cases
|
|
16
20
|
* @param profile The name of the profile to use
|
|
17
21
|
* @returns Configuration object for the specified profile
|
|
18
22
|
*/
|
|
19
|
-
|
|
23
|
+
getProfileConfig(profile: keyof typeof PBKDF2_PROFILES): IPbkdf2Config;
|
|
20
24
|
/**
|
|
21
25
|
* Generate an options object for pbkdf2
|
|
22
26
|
* @param iterations Optional number of iterations (defaults to Pbkdf2IterationsPerSecond)
|
|
@@ -25,7 +29,7 @@ export declare abstract class Pbkdf2Service {
|
|
|
25
29
|
* @param algorithm Optional hash algorithm (defaults to PBKDF2.ALGORITHM)
|
|
26
30
|
* @returns Configuration object for PBKDF2
|
|
27
31
|
*/
|
|
28
|
-
|
|
32
|
+
getConfig(iterations?: number, saltBytes?: number, hashBytes?: number, algorithm?: string): IPbkdf2Config;
|
|
29
33
|
/**
|
|
30
34
|
* Given a password, use pbkdf2 to generate an appropriately sized key for AES encryption
|
|
31
35
|
* @param password The password to derive a key from
|
|
@@ -36,7 +40,7 @@ export declare abstract class Pbkdf2Service {
|
|
|
36
40
|
* @param algorithm Optional hash algorithm
|
|
37
41
|
* @returns Object containing the derived key, salt, and iteration count
|
|
38
42
|
*/
|
|
39
|
-
|
|
43
|
+
deriveKeyFromPasswordAsync(password: Uint8Array, salt?: Uint8Array, iterations?: number, saltBytes?: number, keySize?: number, algorithm?: string): Promise<IPbkdf2Result>;
|
|
40
44
|
/**
|
|
41
45
|
* Derive a key using a predefined configuration profile
|
|
42
46
|
* @param password The password to derive a key from
|
|
@@ -44,6 +48,6 @@ export declare abstract class Pbkdf2Service {
|
|
|
44
48
|
* @param salt Optional salt (will be randomly generated if not provided)
|
|
45
49
|
* @returns Object containing the derived key, salt, and iteration count
|
|
46
50
|
*/
|
|
47
|
-
|
|
51
|
+
deriveKeyFromPasswordWithProfileAsync(password: Uint8Array, profile: Pbkdf2ProfileEnum, salt?: Uint8Array): Promise<IPbkdf2Result>;
|
|
48
52
|
}
|
|
49
53
|
//# sourceMappingURL=pbkdf2.d.ts.map
|