@digitaldefiance/ecies-lib 1.0.16 → 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/errors/ecies.d.ts +1 -1
- package/dist/errors/ecies.d.ts.map +1 -1
- package/dist/errors/ecies.js +2 -3
- package/dist/errors/ecies.js.map +1 -1
- package/dist/errors/guid.d.ts +1 -1
- package/dist/errors/guid.d.ts.map +1 -1
- package/dist/errors/guid.js +3 -3
- package/dist/errors/guid.js.map +1 -1
- package/dist/errors/invalid-email.d.ts +1 -1
- package/dist/errors/invalid-email.d.ts.map +1 -1
- package/dist/errors/invalid-email.js +2 -3
- package/dist/errors/invalid-email.js.map +1 -1
- package/dist/errors/length.d.ts +1 -1
- package/dist/errors/length.d.ts.map +1 -1
- package/dist/errors/length.js +2 -3
- package/dist/errors/length.js.map +1 -1
- package/dist/errors/member.d.ts +1 -1
- package/dist/errors/member.d.ts.map +1 -1
- package/dist/errors/member.js +2 -3
- package/dist/errors/member.js.map +1 -1
- package/dist/errors/pbkdf2.d.ts +1 -1
- package/dist/errors/pbkdf2.d.ts.map +1 -1
- package/dist/errors/pbkdf2.js +2 -3
- package/dist/errors/pbkdf2.js.map +1 -1
- package/dist/errors/secure-storage.d.ts +1 -1
- package/dist/errors/secure-storage.d.ts.map +1 -1
- package/dist/errors/secure-storage.js +2 -3
- package/dist/errors/secure-storage.js.map +1 -1
- package/dist/errors/simple-ecies.d.ts +1 -1
- package/dist/errors/simple-ecies.d.ts.map +1 -1
- package/dist/errors/simple-ecies.js +2 -3
- package/dist/errors/simple-ecies.js.map +1 -1
- package/dist/errors/translatable.d.ts +1 -1
- package/dist/errors/translatable.d.ts.map +1 -1
- package/dist/errors/translatable.js +1 -2
- package/dist/errors/translatable.js.map +1 -1
- package/dist/errors/typed-handleable.d.ts +1 -1
- package/dist/errors/typed-handleable.d.ts.map +1 -1
- package/dist/errors/typed-handleable.js +4 -6
- 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.map +1 -1
- package/dist/i18n-setup.js +0 -1
- package/dist/i18n-setup.js.map +1 -1
- package/dist/member.d.ts.map +1 -1
- package/dist/member.js +16 -15
- package/dist/member.js.map +1 -1
- package/dist/secure-buffer.d.ts.map +1 -1
- package/dist/secure-buffer.js +4 -3
- package/dist/secure-buffer.js.map +1 -1
- package/dist/secure-string.d.ts.map +1 -1
- package/dist/secure-string.js +5 -4
- package/dist/secure-string.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 +11 -8
- 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.map +1 -1
- package/dist/utils.js +11 -10
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -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
|
/**
|
|
@@ -84,7 +85,7 @@ 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);
|
|
@@ -92,7 +93,7 @@ export class SecureString {
|
|
|
92
93
|
const expectedBytes = new TextEncoder().encode(expectedChecksum);
|
|
93
94
|
const storedBytes = new TextEncoder().encode(storedChecksum);
|
|
94
95
|
if (!this.timingSafeEqual(expectedBytes, storedBytes)) {
|
|
95
|
-
throw new SecureStorageError(SecureStorageErrorType.DecryptedValueChecksumMismatch);
|
|
96
|
+
throw new SecureStorageError(SecureStorageErrorType.DecryptedValueChecksumMismatch, getEciesI18nEngine());
|
|
96
97
|
}
|
|
97
98
|
return deobfuscatedResult;
|
|
98
99
|
}
|
|
@@ -102,7 +103,7 @@ export class SecureString {
|
|
|
102
103
|
throw error;
|
|
103
104
|
}
|
|
104
105
|
// Convert any other error to SecureStorageError
|
|
105
|
-
throw new SecureStorageError(SecureStorageErrorType.DecryptedValueChecksumMismatch);
|
|
106
|
+
throw new SecureStorageError(SecureStorageErrorType.DecryptedValueChecksumMismatch, getEciesI18nEngine());
|
|
106
107
|
}
|
|
107
108
|
}
|
|
108
109
|
get value() {
|
|
@@ -115,7 +116,7 @@ export class SecureString {
|
|
|
115
116
|
get notNullValue() {
|
|
116
117
|
this.assertNotDisposed();
|
|
117
118
|
if (this._isNull) {
|
|
118
|
-
throw new SecureStorageError(SecureStorageErrorType.ValueIsNull);
|
|
119
|
+
throw new SecureStorageError(SecureStorageErrorType.ValueIsNull, getEciesI18nEngine());
|
|
119
120
|
}
|
|
120
121
|
return new TextDecoder().decode(this.valueAsUint8Array);
|
|
121
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secure-string.js","sourceRoot":"","sources":["../src/secure-string.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"secure-string.js","sourceRoot":"","sources":["../src/secure-string.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,27 +4,30 @@ 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 { Pbkdf2Service } from './pbkdf2';
|
|
8
7
|
import { TranslatableError, TypedHandleableError } from '../errors';
|
|
9
8
|
import { EciesStringKey, PasswordLoginErrorTypeEnum } from '../enumerations';
|
|
10
9
|
import { buildReasonMap } from '@digitaldefiance/i18n-lib';
|
|
11
10
|
export class PasswordLoginService {
|
|
12
11
|
eciesService;
|
|
12
|
+
pbkdf2Service;
|
|
13
|
+
engine;
|
|
13
14
|
static privateKeyStorageKey = 'encryptedPrivateKey';
|
|
14
15
|
static saltStorageKey = 'passwordLoginSalt';
|
|
15
16
|
static encryptedMnemonicStorageKey = 'encryptedMnemonic';
|
|
16
17
|
static profileStorageKey = 'pbkdf2Profile';
|
|
17
|
-
constructor(eciesService) {
|
|
18
|
+
constructor(eciesService, pbkdf2Service, engine) {
|
|
18
19
|
this.eciesService = eciesService;
|
|
20
|
+
this.pbkdf2Service = pbkdf2Service;
|
|
21
|
+
this.engine = engine;
|
|
19
22
|
}
|
|
20
23
|
async createPasswordLoginBundle(mnemonic, password, profile = Pbkdf2ProfileEnum.BROWSER_PASSWORD) {
|
|
21
24
|
const { wallet } = this.eciesService.walletAndSeedFromMnemonic(mnemonic);
|
|
22
|
-
const derivedKey = await
|
|
25
|
+
const derivedKey = await this.pbkdf2Service.deriveKeyFromPasswordWithProfileAsync(password.valueAsUint8Array, profile);
|
|
23
26
|
// Encrypt private key with derived key
|
|
24
27
|
const privateKeyBytes = wallet.getPrivateKey();
|
|
25
28
|
const { encrypted, iv, tag } = await AESGCMService.encrypt(privateKeyBytes, derivedKey.hash, true);
|
|
26
29
|
if (!tag) {
|
|
27
|
-
throw new TranslatableError(EciesStringKey.Error_Utils_EncryptionFailedNoAuthTag);
|
|
30
|
+
throw new TranslatableError(EciesStringKey.Error_Utils_EncryptionFailedNoAuthTag, this.engine);
|
|
28
31
|
}
|
|
29
32
|
const encryptedPrivateKey = AESGCMService.combineIvTagAndEncryptedData(iv, encrypted, tag);
|
|
30
33
|
// now use the public key to encrypt the mnemonic and store it
|
|
@@ -51,15 +54,15 @@ export class PasswordLoginService {
|
|
|
51
54
|
localStorage.setItem(PasswordLoginService.profileStorageKey, profile);
|
|
52
55
|
}
|
|
53
56
|
catch (error) {
|
|
54
|
-
throw new TypedHandleableError(PasswordLoginErrorTypeEnum.FailedToStoreLoginData, buildReasonMap(PasswordLoginErrorTypeEnum, ['Error', 'PasswordLoginError']),
|
|
57
|
+
throw new TypedHandleableError(PasswordLoginErrorTypeEnum.FailedToStoreLoginData, buildReasonMap(PasswordLoginErrorTypeEnum, ['Error', 'PasswordLoginError']), this.engine, undefined, undefined, undefined, error instanceof Error ? error : undefined);
|
|
55
58
|
}
|
|
56
59
|
return wallet;
|
|
57
60
|
}
|
|
58
61
|
async getWalletAndMnemonicFromEncryptedPasswordBundle(salt, encryptedPrivateKey, encryptedMnemonic, password, profile = Pbkdf2ProfileEnum.BROWSER_PASSWORD) {
|
|
59
62
|
if (!salt || !encryptedPrivateKey || !encryptedMnemonic) {
|
|
60
|
-
throw new TypedHandleableError(PasswordLoginErrorTypeEnum.PasswordLoginNotSetUp, buildReasonMap(PasswordLoginErrorTypeEnum, ['Error', 'PasswordLoginError']));
|
|
63
|
+
throw new TypedHandleableError(PasswordLoginErrorTypeEnum.PasswordLoginNotSetUp, buildReasonMap(PasswordLoginErrorTypeEnum, ['Error', 'PasswordLoginError']), this.engine);
|
|
61
64
|
}
|
|
62
|
-
const derivedKey = await
|
|
65
|
+
const derivedKey = await this.pbkdf2Service.deriveKeyFromPasswordWithProfileAsync(password.valueAsUint8Array, profile, salt);
|
|
63
66
|
// Decrypt private key with derived key
|
|
64
67
|
const { iv, encryptedDataWithTag } = AESGCMService.splitEncryptedData(encryptedPrivateKey, true);
|
|
65
68
|
const privateKeyBytes = await AESGCMService.decrypt(iv, encryptedDataWithTag, derivedKey.hash, true);
|
|
@@ -84,7 +87,7 @@ export class PasswordLoginService {
|
|
|
84
87
|
saltHex === '' ||
|
|
85
88
|
encryptedPrivateKeyHex === '' ||
|
|
86
89
|
encryptedMnemonicHex === '') {
|
|
87
|
-
throw new TypedHandleableError(PasswordLoginErrorTypeEnum.PasswordLoginNotSetUp, buildReasonMap(PasswordLoginErrorTypeEnum, ['Error', 'PasswordLoginError']));
|
|
90
|
+
throw new TypedHandleableError(PasswordLoginErrorTypeEnum.PasswordLoginNotSetUp, buildReasonMap(PasswordLoginErrorTypeEnum, ['Error', 'PasswordLoginError']), this.engine);
|
|
88
91
|
}
|
|
89
92
|
const salt = hexToUint8Array(saltHex);
|
|
90
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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbkdf2.d.ts","sourceRoot":"","sources":["../../src/services/pbkdf2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,eAAe,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"pbkdf2.d.ts","sourceRoot":"","sources":["../../src/services/pbkdf2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAiB,eAAe,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;;GAOG;AACH,qBAAa,aAAa;IACxB,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC9D,MAAM,EAAE,UAAU,CAAC,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC;IAGlE;;;;OAIG;IACI,gBAAgB,CACrB,OAAO,EAAE,MAAM,OAAO,eAAe,GACpC,aAAa;IAUhB;;;;;;;OAOG;IACI,SAAS,CACd,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,aAAa;IAkBhB;;;;;;;;;OASG;IACU,0BAA0B,CACrC,QAAQ,EAAE,UAAU,EACpB,IAAI,CAAC,EAAE,UAAU,EACjB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC;IA8CzB;;;;;;OAMG;IACU,qCAAqC,CAChD,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,aAAa,CAAC;CAW1B"}
|
package/dist/services/pbkdf2.js
CHANGED
|
@@ -10,12 +10,16 @@ import { Pbkdf2Error } from '../errors/pbkdf2';
|
|
|
10
10
|
* - Both synchronous and asynchronous key derivation
|
|
11
11
|
*/
|
|
12
12
|
export class Pbkdf2Service {
|
|
13
|
+
engine;
|
|
14
|
+
constructor(engine) {
|
|
15
|
+
this.engine = engine;
|
|
16
|
+
}
|
|
13
17
|
/**
|
|
14
18
|
* Get a predefined configuration profile for common use cases
|
|
15
19
|
* @param profile The name of the profile to use
|
|
16
20
|
* @returns Configuration object for the specified profile
|
|
17
21
|
*/
|
|
18
|
-
|
|
22
|
+
getProfileConfig(profile) {
|
|
19
23
|
const profileConfig = PBKDF2_PROFILES[profile];
|
|
20
24
|
return {
|
|
21
25
|
hashBytes: profileConfig.hashBytes,
|
|
@@ -32,7 +36,7 @@ export class Pbkdf2Service {
|
|
|
32
36
|
* @param algorithm Optional hash algorithm (defaults to PBKDF2.ALGORITHM)
|
|
33
37
|
* @returns Configuration object for PBKDF2
|
|
34
38
|
*/
|
|
35
|
-
|
|
39
|
+
getConfig(iterations, saltBytes, hashBytes, algorithm) {
|
|
36
40
|
// larger numbers mean better security, less
|
|
37
41
|
return {
|
|
38
42
|
// size of the generated hash
|
|
@@ -59,11 +63,11 @@ export class Pbkdf2Service {
|
|
|
59
63
|
* @param algorithm Optional hash algorithm
|
|
60
64
|
* @returns Object containing the derived key, salt, and iteration count
|
|
61
65
|
*/
|
|
62
|
-
|
|
63
|
-
const config =
|
|
66
|
+
async deriveKeyFromPasswordAsync(password, salt, iterations, saltBytes, keySize, algorithm) {
|
|
67
|
+
const config = this.getConfig(iterations, saltBytes, keySize, algorithm);
|
|
64
68
|
const saltBytes_ = salt ?? crypto.getRandomValues(new Uint8Array(config.saltBytes));
|
|
65
69
|
if (saltBytes_.length !== config.saltBytes) {
|
|
66
|
-
throw new Pbkdf2Error(Pbkdf2ErrorType.InvalidSaltLength);
|
|
70
|
+
throw new Pbkdf2Error(Pbkdf2ErrorType.InvalidSaltLength, this.engine);
|
|
67
71
|
}
|
|
68
72
|
const keyMaterial = await crypto.subtle.importKey('raw', new Uint8Array(password), 'PBKDF2', false, ['deriveBits']);
|
|
69
73
|
const keyArray = await crypto.subtle.deriveBits({
|
|
@@ -74,7 +78,7 @@ export class Pbkdf2Service {
|
|
|
74
78
|
}, keyMaterial, config.hashBytes * 8);
|
|
75
79
|
const keyBytes = new Uint8Array(keyArray);
|
|
76
80
|
if (keyBytes.length !== config.hashBytes) {
|
|
77
|
-
throw new Pbkdf2Error(Pbkdf2ErrorType.InvalidHashLength);
|
|
81
|
+
throw new Pbkdf2Error(Pbkdf2ErrorType.InvalidHashLength, this.engine);
|
|
78
82
|
}
|
|
79
83
|
return {
|
|
80
84
|
salt: saltBytes_,
|
|
@@ -89,9 +93,9 @@ export class Pbkdf2Service {
|
|
|
89
93
|
* @param salt Optional salt (will be randomly generated if not provided)
|
|
90
94
|
* @returns Object containing the derived key, salt, and iteration count
|
|
91
95
|
*/
|
|
92
|
-
|
|
93
|
-
const config =
|
|
94
|
-
return await
|
|
96
|
+
async deriveKeyFromPasswordWithProfileAsync(password, profile, salt) {
|
|
97
|
+
const config = this.getProfileConfig(profile);
|
|
98
|
+
return await this.deriveKeyFromPasswordAsync(password, salt, config.iterations, config.saltBytes, config.hashBytes, config.algorithm);
|
|
95
99
|
}
|
|
96
100
|
}
|
|
97
101
|
//# sourceMappingURL=pbkdf2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbkdf2.js","sourceRoot":"","sources":["../../src/services/pbkdf2.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pbkdf2.js","sourceRoot":"","sources":["../../src/services/pbkdf2.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAK/C;;;;;;;GAOG;AACH,MAAM,OAAO,aAAa;IACL,MAAM,CAAiD;IAC1E,YAAY,MAAsD;QAChE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IACD;;;;OAIG;IACI,gBAAgB,CACrB,OAAqC;QAErC,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO;YACL,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,UAAU,EAAE,aAAa,CAAC,UAAU;YACpC,SAAS,EAAE,aAAa,CAAC,SAAS;SACnC,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACI,SAAS,CACd,UAAmB,EACnB,SAAkB,EAClB,SAAkB,EAClB,SAAkB;QAElB,4CAA4C;QAC5C,OAAO;YACL,6BAA6B;YAC7B,SAAS,EAAE,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ;YAChD,8EAA8E;YAC9E,0CAA0C;YAC1C,SAAS,EAAE,SAAS,IAAI,MAAM,CAAC,UAAU;YACzC,yEAAyE;YACzE,8EAA8E;YAC9E,wEAAwE;YACxE,SAAS;YACT,UAAU,EAAE,UAAU,IAAI,MAAM,CAAC,qBAAqB;YACtD,iBAAiB;YACjB,SAAS,EAAE,SAAS,IAAI,MAAM,CAAC,SAAS;SACzC,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACI,KAAK,CAAC,0BAA0B,CACrC,QAAoB,EACpB,IAAiB,EACjB,UAAmB,EACnB,SAAkB,EAClB,OAAgB,EAChB,SAAkB;QAElB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAC3B,UAAU,EACV,SAAS,EACT,OAAO,EACP,SAAS,CACV,CAAC;QACF,MAAM,UAAU,GACd,IAAI,IAAI,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAEnE,IAAI,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;YAC3C,MAAM,IAAI,WAAW,CAAC,eAAe,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAC/C,KAAK,EACL,IAAI,UAAU,CAAC,QAAQ,CAAC,EACxB,QAAQ,EACR,KAAK,EACL,CAAC,YAAY,CAAC,CACf,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,CAC7C;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,IAAI,UAAU,CAAC,UAAU,CAAC;YAChC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,IAAI,EAAE,MAAM,CAAC,SAAS;SACvB,EACD,WAAW,EACX,MAAM,CAAC,SAAS,GAAG,CAAC,CACrB,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE1C,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,IAAI,WAAW,CAAC,eAAe,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACxE,CAAC;QAED,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,qCAAqC,CAChD,QAAoB,EACpB,OAA0B,EAC1B,IAAiB;QAEjB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC9C,OAAO,MAAM,IAAI,CAAC,0BAA0B,CAC1C,QAAQ,EACR,IAAI,EACJ,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,CACjB,CAAC;IACJ,CAAC;CACF"}
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAKzE;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAuBvD;AAED,wBAAgB,uBAAuB,CACrC,UAAU,SAAS,MAAM,EACzB,SAAS,SAAS,MAAM,EAExB,MAAM,EAAE,MAAM,GACb;IACD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CA0CA;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAMjE;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,CAQnE;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAI9D;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAgB7D;AAED;;GAEG;AAEH;;;GAGG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAoBlD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAE1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAEtD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAOjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CASrE;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,SAAS,MAAM,EACzB,SAAS,SAAS,MAAM,EACxB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,kBAAkB,CA4B7C;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,SAAS,MAAM,EACzB,SAAS,SAAS,MAAM,EACxB,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAOnC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQxD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,SAAS,MAAM,EACzB,SAAS,SAAS,MAAM,EACxB,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAalC"}
|
package/dist/utils.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { LengthEncodingType } from './enumerations/length-encoding-type';
|
|
2
2
|
import { LengthErrorType } from './enumerations/length-error-type';
|
|
3
3
|
import { LengthError } from './errors';
|
|
4
|
+
import { getEciesI18nEngine } from './i18n-setup';
|
|
4
5
|
/**
|
|
5
6
|
* Encodes the length of the data in the buffer
|
|
6
7
|
* @param buffer The buffer to encode
|
|
@@ -30,12 +31,12 @@ export function lengthEncodeData(buffer) {
|
|
|
30
31
|
}
|
|
31
32
|
export function decodeLengthEncodedData(buffer) {
|
|
32
33
|
if (buffer.length < 1) {
|
|
33
|
-
throw new LengthError(LengthErrorType.LengthIsTooShort);
|
|
34
|
+
throw new LengthError(LengthErrorType.LengthIsTooShort, getEciesI18nEngine());
|
|
34
35
|
}
|
|
35
36
|
const lengthType = getLengthEncodingTypeFromValue(buffer.readUint8(0));
|
|
36
37
|
const lengthTypeSize = getLengthForLengthType(lengthType);
|
|
37
38
|
if (buffer.length < 1 + lengthTypeSize) {
|
|
38
|
-
throw new LengthError(LengthErrorType.LengthIsTooShort);
|
|
39
|
+
throw new LengthError(LengthErrorType.LengthIsTooShort, getEciesI18nEngine());
|
|
39
40
|
}
|
|
40
41
|
let length;
|
|
41
42
|
switch (lengthType) {
|
|
@@ -51,15 +52,15 @@ export function decodeLengthEncodedData(buffer) {
|
|
|
51
52
|
case LengthEncodingType.UInt64:
|
|
52
53
|
length = buffer.readBigUInt64BE(1);
|
|
53
54
|
if (length.valueOf() > BigInt(Number.MAX_SAFE_INTEGER)) {
|
|
54
|
-
throw new LengthError(LengthErrorType.LengthIsTooLong);
|
|
55
|
+
throw new LengthError(LengthErrorType.LengthIsTooLong, getEciesI18nEngine());
|
|
55
56
|
}
|
|
56
57
|
break;
|
|
57
58
|
default:
|
|
58
|
-
throw new LengthError(LengthErrorType.LengthIsInvalidType);
|
|
59
|
+
throw new LengthError(LengthErrorType.LengthIsInvalidType, getEciesI18nEngine());
|
|
59
60
|
}
|
|
60
61
|
const totalLength = 1 + lengthTypeSize + Number(length);
|
|
61
62
|
if (totalLength > buffer.length) {
|
|
62
|
-
throw new LengthError(LengthErrorType.LengthIsTooShort);
|
|
63
|
+
throw new LengthError(LengthErrorType.LengthIsTooShort, getEciesI18nEngine());
|
|
63
64
|
}
|
|
64
65
|
return {
|
|
65
66
|
data: buffer.subarray(1 + lengthTypeSize, totalLength),
|
|
@@ -194,7 +195,7 @@ export function getLengthEncodingTypeForLength(length) {
|
|
|
194
195
|
return LengthEncodingType.UInt64;
|
|
195
196
|
}
|
|
196
197
|
else {
|
|
197
|
-
throw new LengthError(LengthErrorType.LengthIsTooLong);
|
|
198
|
+
throw new LengthError(LengthErrorType.LengthIsTooLong, getEciesI18nEngine());
|
|
198
199
|
}
|
|
199
200
|
}
|
|
200
201
|
else if (typeof length === 'bigint') {
|
|
@@ -211,11 +212,11 @@ export function getLengthEncodingTypeForLength(length) {
|
|
|
211
212
|
return LengthEncodingType.UInt64;
|
|
212
213
|
}
|
|
213
214
|
else {
|
|
214
|
-
throw new LengthError(LengthErrorType.LengthIsTooLong);
|
|
215
|
+
throw new LengthError(LengthErrorType.LengthIsTooLong, getEciesI18nEngine());
|
|
215
216
|
}
|
|
216
217
|
}
|
|
217
218
|
else {
|
|
218
|
-
throw new LengthError(LengthErrorType.LengthIsInvalidType);
|
|
219
|
+
throw new LengthError(LengthErrorType.LengthIsInvalidType, getEciesI18nEngine());
|
|
219
220
|
}
|
|
220
221
|
}
|
|
221
222
|
/**
|
|
@@ -229,7 +230,7 @@ export function getLengthEncodingTypeFromValue(value) {
|
|
|
229
230
|
return length;
|
|
230
231
|
}
|
|
231
232
|
}
|
|
232
|
-
throw new LengthError(LengthErrorType.LengthIsInvalidType);
|
|
233
|
+
throw new LengthError(LengthErrorType.LengthIsInvalidType, getEciesI18nEngine());
|
|
233
234
|
}
|
|
234
235
|
/**
|
|
235
236
|
* Safely converts BigInt to Number, throwing if value exceeds safe integer range
|
|
@@ -261,7 +262,7 @@ export function getLengthForLengthType(type) {
|
|
|
261
262
|
case LengthEncodingType.UInt64:
|
|
262
263
|
return 8;
|
|
263
264
|
default:
|
|
264
|
-
throw new LengthError(LengthErrorType.LengthIsInvalidType);
|
|
265
|
+
throw new LengthError(LengthErrorType.LengthIsInvalidType, getEciesI18nEngine());
|
|
265
266
|
}
|
|
266
267
|
}
|
|
267
268
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|