@metamask-previews/seedless-onboarding-controller 2.4.0-preview-4aa55b88 → 2.4.0-preview-defa214d
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/CHANGELOG.md +0 -9
- package/dist/SeedlessOnboardingController.cjs +55 -87
- package/dist/SeedlessOnboardingController.cjs.map +1 -1
- package/dist/SeedlessOnboardingController.d.cts +13 -6
- package/dist/SeedlessOnboardingController.d.cts.map +1 -1
- package/dist/SeedlessOnboardingController.d.mts +13 -6
- package/dist/SeedlessOnboardingController.d.mts.map +1 -1
- package/dist/SeedlessOnboardingController.mjs +56 -88
- package/dist/SeedlessOnboardingController.mjs.map +1 -1
- package/dist/assertions.cjs +1 -16
- package/dist/assertions.cjs.map +1 -1
- package/dist/assertions.d.cts +0 -7
- package/dist/assertions.d.cts.map +1 -1
- package/dist/assertions.d.mts +0 -7
- package/dist/assertions.d.mts.map +1 -1
- package/dist/assertions.mjs +0 -14
- package/dist/assertions.mjs.map +1 -1
- package/dist/constants.cjs +1 -3
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +2 -4
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.mts +2 -4
- package/dist/constants.d.mts.map +1 -1
- package/dist/constants.mjs +1 -3
- package/dist/constants.mjs.map +1 -1
- package/dist/index.cjs +1 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +0 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +0 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +0 -1
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +0 -6
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +0 -6
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,15 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
### Added
|
|
11
|
-
|
|
12
|
-
- Added an optional parameter, `passwordOutdatedCacheTTL` to the constructor params and exported `SecretMetadata` class from the controller.([#6169](https://github.com/MetaMask/core/pull/6169))
|
|
13
|
-
|
|
14
|
-
### Removed
|
|
15
|
-
|
|
16
|
-
- Removed `syncLatestGlobalPassword` from the Controller. ([#6180](https://github.com/MetaMask/core/pull/6180))
|
|
17
|
-
- Moved the vault syncing to the `submitGlobalPassword` method
|
|
18
|
-
|
|
19
10
|
## [2.4.0]
|
|
20
11
|
|
|
21
12
|
### Fixed
|
|
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
10
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
11
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
12
|
};
|
|
13
|
-
var _SeedlessOnboardingController_instances, _SeedlessOnboardingController_vaultEncryptor, _SeedlessOnboardingController_controllerOperationMutex, _SeedlessOnboardingController_vaultOperationMutex, _SeedlessOnboardingController_refreshJWTToken, _SeedlessOnboardingController_revokeRefreshToken, _SeedlessOnboardingController_isUnlocked,
|
|
13
|
+
var _SeedlessOnboardingController_instances, _SeedlessOnboardingController_vaultEncryptor, _SeedlessOnboardingController_controllerOperationMutex, _SeedlessOnboardingController_vaultOperationMutex, _SeedlessOnboardingController_refreshJWTToken, _SeedlessOnboardingController_revokeRefreshToken, _SeedlessOnboardingController_isUnlocked, _SeedlessOnboardingController_submitGlobalPassword, _SeedlessOnboardingController_getAccessToken, _SeedlessOnboardingController_setUnlocked, _SeedlessOnboardingController_persistOprfKey, _SeedlessOnboardingController_persistAuthPubKey, _SeedlessOnboardingController_storeKeyringEncryptionKey, _SeedlessOnboardingController_loadKeyringEncryptionKey, _SeedlessOnboardingController_loadSeedlessEncryptionKey, _SeedlessOnboardingController_recoverAuthPubKey, _SeedlessOnboardingController_recoverEncKey, _SeedlessOnboardingController_fetchAllSecretDataFromMetadataStore, _SeedlessOnboardingController_changeEncryptionKey, _SeedlessOnboardingController_encryptAndStoreSecretData, _SeedlessOnboardingController_unlockVaultAndGetVaultData, _SeedlessOnboardingController_withPersistedSecretMetadataBackupsState, _SeedlessOnboardingController_filterDupesAndUpdateSocialBackupsMetadata, _SeedlessOnboardingController_createNewVaultWithAuthData, _SeedlessOnboardingController_updateVault, _SeedlessOnboardingController_withControllerLock, _SeedlessOnboardingController_withVaultLock, _SeedlessOnboardingController_serializeKeyData, _SeedlessOnboardingController_parseVaultData, _SeedlessOnboardingController_assertIsUnlocked, _SeedlessOnboardingController_assertIsAuthenticatedUser, _SeedlessOnboardingController_assertIsSRPBackedUpUser, _SeedlessOnboardingController_assertPasswordInSync, _SeedlessOnboardingController_resetPasswordOutdatedCache, _SeedlessOnboardingController_revokeRefreshTokenAndUpdateState, _SeedlessOnboardingController_isTokenExpiredError, _SeedlessOnboardingController_isMaxKeyChainLengthError, _SeedlessOnboardingController_executeWithTokenRefresh;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.SeedlessOnboardingController = exports.getDefaultSeedlessOnboardingControllerState = void 0;
|
|
16
16
|
const auth_network_utils_1 = require("@metamask/auth-network-utils");
|
|
@@ -136,9 +136,8 @@ class SeedlessOnboardingController extends base_controller_1.BaseController {
|
|
|
136
136
|
* @param options.network - The network to be used for the Seedless Onboarding flow.
|
|
137
137
|
* @param options.refreshJWTToken - A function to get a new jwt token using refresh token.
|
|
138
138
|
* @param options.revokeRefreshToken - A function to revoke the refresh token.
|
|
139
|
-
* @param options.passwordOutdatedCacheTTL - The TTL of the password outdated cache in milliseconds.,
|
|
140
139
|
*/
|
|
141
|
-
constructor({ messenger, state, encryptor, toprfKeyDeriver, network = constants_1.Web3AuthNetwork.Mainnet, refreshJWTToken, revokeRefreshToken,
|
|
140
|
+
constructor({ messenger, state, encryptor, toprfKeyDeriver, network = constants_1.Web3AuthNetwork.Mainnet, refreshJWTToken, revokeRefreshToken, }) {
|
|
142
141
|
super({
|
|
143
142
|
name: constants_1.controllerName,
|
|
144
143
|
metadata: seedlessOnboardingMetadata,
|
|
@@ -160,12 +159,6 @@ class SeedlessOnboardingController extends base_controller_1.BaseController {
|
|
|
160
159
|
* The controller lock is synchronized with the keyring lock.
|
|
161
160
|
*/
|
|
162
161
|
_SeedlessOnboardingController_isUnlocked.set(this, false);
|
|
163
|
-
/**
|
|
164
|
-
* The TTL of the password outdated cache in milliseconds.
|
|
165
|
-
*/
|
|
166
|
-
_SeedlessOnboardingController_passwordOutdatedCacheTTL.set(this, void 0);
|
|
167
|
-
(0, assertions_1.assertIsPasswordOutdatedCacheValid)(passwordOutdatedCacheTTL);
|
|
168
|
-
__classPrivateFieldSet(this, _SeedlessOnboardingController_passwordOutdatedCacheTTL, passwordOutdatedCacheTTL, "f");
|
|
169
162
|
__classPrivateFieldSet(this, _SeedlessOnboardingController_vaultEncryptor, encryptor, "f");
|
|
170
163
|
this.toprfClient = new toprf_secure_backup_1.ToprfSecureBackup({
|
|
171
164
|
network,
|
|
@@ -398,7 +391,7 @@ class SeedlessOnboardingController extends base_controller_1.BaseController {
|
|
|
398
391
|
await this.verifyVaultPassword(oldPassword, {
|
|
399
392
|
skipLock: true, // skip lock since we already have the lock
|
|
400
393
|
});
|
|
401
|
-
|
|
394
|
+
await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_assertPasswordInSync).call(this, {
|
|
402
395
|
skipCache: true,
|
|
403
396
|
skipLock: true, // skip lock since we already have the lock
|
|
404
397
|
});
|
|
@@ -412,7 +405,6 @@ class SeedlessOnboardingController extends base_controller_1.BaseController {
|
|
|
412
405
|
const { encKey: newEncKey, pwEncKey: newPwEncKey, authKeyPair: newAuthKeyPair, } = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_changeEncryptionKey).call(this, {
|
|
413
406
|
oldPassword,
|
|
414
407
|
newPassword,
|
|
415
|
-
latestKeyIndex,
|
|
416
408
|
});
|
|
417
409
|
// update and encrypt the vault with new password
|
|
418
410
|
await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_createNewVaultWithAuthData).call(this, {
|
|
@@ -521,6 +513,33 @@ class SeedlessOnboardingController extends base_controller_1.BaseController {
|
|
|
521
513
|
});
|
|
522
514
|
__classPrivateFieldSet(this, _SeedlessOnboardingController_isUnlocked, false, "f");
|
|
523
515
|
}
|
|
516
|
+
/**
|
|
517
|
+
* Sync the latest global password to the controller.
|
|
518
|
+
* reset vault with latest globalPassword,
|
|
519
|
+
* persist the latest global password authPubKey
|
|
520
|
+
*
|
|
521
|
+
* @param params - The parameters for syncing the latest global password.
|
|
522
|
+
* @param params.globalPassword - The latest global password.
|
|
523
|
+
* @returns A promise that resolves to the success of the operation.
|
|
524
|
+
*/
|
|
525
|
+
async syncLatestGlobalPassword({ globalPassword, }) {
|
|
526
|
+
return await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_withControllerLock).call(this, async () => {
|
|
527
|
+
__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_assertIsUnlocked).call(this);
|
|
528
|
+
const doSyncPassword = async () => {
|
|
529
|
+
// update vault with latest globalPassword
|
|
530
|
+
const { encKey, pwEncKey, authKeyPair } = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_recoverEncKey).call(this, globalPassword);
|
|
531
|
+
// update and encrypt the vault with new password
|
|
532
|
+
await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_createNewVaultWithAuthData).call(this, {
|
|
533
|
+
password: globalPassword,
|
|
534
|
+
rawToprfEncryptionKey: encKey,
|
|
535
|
+
rawToprfPwEncryptionKey: pwEncKey,
|
|
536
|
+
rawToprfAuthKeyPair: authKeyPair,
|
|
537
|
+
});
|
|
538
|
+
__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_resetPasswordOutdatedCache).call(this);
|
|
539
|
+
};
|
|
540
|
+
return await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_executeWithTokenRefresh).call(this, doSyncPassword, 'syncLatestGlobalPassword');
|
|
541
|
+
});
|
|
542
|
+
}
|
|
524
543
|
/**
|
|
525
544
|
* @description Unlock the controller with the latest global password.
|
|
526
545
|
*
|
|
@@ -545,8 +564,6 @@ class SeedlessOnboardingController extends base_controller_1.BaseController {
|
|
|
545
564
|
* @description Check if the current password is outdated compare to the global password.
|
|
546
565
|
*
|
|
547
566
|
* @param options - Optional options object.
|
|
548
|
-
* @param options.globalAuthPubKey - The global auth public key to compare with the current auth public key.
|
|
549
|
-
* If not provided, the global auth public key will be fetched from the backend.
|
|
550
567
|
* @param options.skipCache - If true, bypass the cache and force a fresh check.
|
|
551
568
|
* @param options.skipLock - Whether to skip the lock acquisition. (to prevent deadlock in case the caller already acquired the lock)
|
|
552
569
|
* @returns A promise that resolves to true if the password is outdated, false otherwise.
|
|
@@ -561,28 +578,19 @@ class SeedlessOnboardingController extends base_controller_1.BaseController {
|
|
|
561
578
|
const now = Date.now();
|
|
562
579
|
const isCacheValid = passwordOutdatedCache &&
|
|
563
580
|
now - passwordOutdatedCache.timestamp <
|
|
564
|
-
|
|
581
|
+
constants_1.PASSWORD_OUTDATED_CACHE_TTL_MS;
|
|
565
582
|
if (isCacheValid) {
|
|
566
583
|
return passwordOutdatedCache.isExpiredPwd;
|
|
567
584
|
}
|
|
568
585
|
}
|
|
569
586
|
const { nodeAuthTokens, authConnectionId, groupedAuthConnectionId, userId, } = this.state;
|
|
570
587
|
const currentDeviceAuthPubKey = __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_recoverAuthPubKey).call(this);
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
groupedAuthConnectionId,
|
|
578
|
-
userId,
|
|
579
|
-
})
|
|
580
|
-
.catch((error) => {
|
|
581
|
-
log('Error fetching auth pub key', error);
|
|
582
|
-
throw new Error(constants_1.SeedlessOnboardingControllerErrorMessage.FailedToFetchAuthPubKey);
|
|
583
|
-
});
|
|
584
|
-
globalAuthPubKey = authPubKey;
|
|
585
|
-
}
|
|
588
|
+
const { authPubKey: globalAuthPubKey } = await this.toprfClient.fetchAuthPubKey({
|
|
589
|
+
nodeAuthTokens,
|
|
590
|
+
authConnectionId,
|
|
591
|
+
groupedAuthConnectionId,
|
|
592
|
+
userId,
|
|
593
|
+
});
|
|
586
594
|
// use noble lib to deserialize and compare curve point
|
|
587
595
|
const isExpiredPwd = !secp256k1_1.secp256k1.ProjectivePoint.fromHex(currentDeviceAuthPubKey).equals(secp256k1_1.secp256k1.ProjectivePoint.fromHex(globalAuthPubKey));
|
|
588
596
|
// Cache the result in state
|
|
@@ -712,7 +720,7 @@ class SeedlessOnboardingController extends base_controller_1.BaseController {
|
|
|
712
720
|
}
|
|
713
721
|
}
|
|
714
722
|
exports.SeedlessOnboardingController = SeedlessOnboardingController;
|
|
715
|
-
_SeedlessOnboardingController_vaultEncryptor = new WeakMap(), _SeedlessOnboardingController_controllerOperationMutex = new WeakMap(), _SeedlessOnboardingController_vaultOperationMutex = new WeakMap(), _SeedlessOnboardingController_refreshJWTToken = new WeakMap(), _SeedlessOnboardingController_revokeRefreshToken = new WeakMap(), _SeedlessOnboardingController_isUnlocked = new WeakMap(),
|
|
723
|
+
_SeedlessOnboardingController_vaultEncryptor = new WeakMap(), _SeedlessOnboardingController_controllerOperationMutex = new WeakMap(), _SeedlessOnboardingController_vaultOperationMutex = new WeakMap(), _SeedlessOnboardingController_refreshJWTToken = new WeakMap(), _SeedlessOnboardingController_revokeRefreshToken = new WeakMap(), _SeedlessOnboardingController_isUnlocked = new WeakMap(), _SeedlessOnboardingController_instances = new WeakSet(), _SeedlessOnboardingController_submitGlobalPassword =
|
|
716
724
|
/**
|
|
717
725
|
* @description Submit the global password to the controller, verify the
|
|
718
726
|
* password validity and unlock the controller.
|
|
@@ -726,32 +734,31 @@ _SeedlessOnboardingController_vaultEncryptor = new WeakMap(), _SeedlessOnboardin
|
|
|
726
734
|
* corresponding to the current authPubKey in state.
|
|
727
735
|
*/
|
|
728
736
|
async function _SeedlessOnboardingController_submitGlobalPassword({ targetAuthPubKey, globalPassword, maxKeyChainLength, }) {
|
|
729
|
-
const { pwEncKey:
|
|
737
|
+
const { pwEncKey: curPwEncKey, authKeyPair: curAuthKeyPair } = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_recoverEncKey).call(this, globalPassword);
|
|
730
738
|
try {
|
|
731
739
|
// Recover vault encryption key.
|
|
732
|
-
const
|
|
740
|
+
const res = await this.toprfClient.recoverPwEncKey({
|
|
733
741
|
targetAuthPubKey,
|
|
734
|
-
curPwEncKey
|
|
735
|
-
curAuthKeyPair
|
|
742
|
+
curPwEncKey,
|
|
743
|
+
curAuthKeyPair,
|
|
736
744
|
maxPwChainLength: maxKeyChainLength,
|
|
737
745
|
});
|
|
746
|
+
const { pwEncKey } = res;
|
|
738
747
|
const vaultKey = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_loadSeedlessEncryptionKey).call(this, pwEncKey);
|
|
739
|
-
const keyringEncryptionKey = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_loadKeyringEncryptionKey).call(this, pwEncKey);
|
|
740
748
|
// Unlock the controller
|
|
741
|
-
const { revokeToken } = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_unlockVaultAndGetVaultData).call(this, undefined, vaultKey);
|
|
749
|
+
const { revokeToken, toprfEncryptionKey, toprfPwEncryptionKey, toprfAuthKeyPair, } = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_unlockVaultAndGetVaultData).call(this, undefined, vaultKey);
|
|
742
750
|
__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_setUnlocked).call(this);
|
|
743
751
|
if (revokeToken) {
|
|
744
752
|
// revoke and recyle refresh token after unlock to keep refresh token fresh, avoid malicious use of leaked refresh token
|
|
745
753
|
await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_revokeRefreshTokenAndUpdateState).call(this, revokeToken);
|
|
754
|
+
// re-creating vault to persist the new revoke token
|
|
755
|
+
await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_createNewVaultWithAuthData).call(this, {
|
|
756
|
+
password: globalPassword,
|
|
757
|
+
rawToprfEncryptionKey: toprfEncryptionKey,
|
|
758
|
+
rawToprfPwEncryptionKey: toprfPwEncryptionKey,
|
|
759
|
+
rawToprfAuthKeyPair: toprfAuthKeyPair,
|
|
760
|
+
});
|
|
746
761
|
}
|
|
747
|
-
// re-creating vault to persist the new revoke token
|
|
748
|
-
await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_createNewVaultWithAuthData).call(this, {
|
|
749
|
-
password: globalPassword,
|
|
750
|
-
rawToprfEncryptionKey: latestEncKey,
|
|
751
|
-
rawToprfPwEncryptionKey: latestPwEncKey,
|
|
752
|
-
rawToprfAuthKeyPair: latestAuthKeyPair,
|
|
753
|
-
});
|
|
754
|
-
await this.storeKeyringEncryptionKey(keyringEncryptionKey);
|
|
755
762
|
}
|
|
756
763
|
catch (error) {
|
|
757
764
|
if (__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_isTokenExpiredError).call(this, error)) {
|
|
@@ -925,31 +932,12 @@ async function _SeedlessOnboardingController_recoverEncKey(password) {
|
|
|
925
932
|
* @param params - The function parameters.
|
|
926
933
|
* @param params.oldPassword - The old password to verify.
|
|
927
934
|
* @param params.newPassword - The new password to update.
|
|
928
|
-
* @param params.latestKeyIndex - The key index of the latest key.
|
|
929
935
|
* @returns A promise that resolves to new encryption key and authentication key pair.
|
|
930
936
|
*/
|
|
931
|
-
async function _SeedlessOnboardingController_changeEncryptionKey({ oldPassword, newPassword,
|
|
937
|
+
async function _SeedlessOnboardingController_changeEncryptionKey({ oldPassword, newPassword, }) {
|
|
932
938
|
__classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_assertIsAuthenticatedUser).call(this, this.state);
|
|
933
939
|
const { authConnectionId, groupedAuthConnectionId, userId } = this.state;
|
|
934
|
-
|
|
935
|
-
let pwEncKey;
|
|
936
|
-
let authKeyPair;
|
|
937
|
-
let globalKeyIndex = latestKeyIndex;
|
|
938
|
-
if (!globalKeyIndex) {
|
|
939
|
-
({
|
|
940
|
-
encKey,
|
|
941
|
-
pwEncKey,
|
|
942
|
-
authKeyPair,
|
|
943
|
-
keyShareIndex: globalKeyIndex,
|
|
944
|
-
} = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_recoverEncKey).call(this, oldPassword));
|
|
945
|
-
}
|
|
946
|
-
else {
|
|
947
|
-
({
|
|
948
|
-
toprfEncryptionKey: encKey,
|
|
949
|
-
toprfPwEncryptionKey: pwEncKey,
|
|
950
|
-
toprfAuthKeyPair: authKeyPair,
|
|
951
|
-
} = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_unlockVaultAndGetVaultData).call(this, oldPassword));
|
|
952
|
-
}
|
|
940
|
+
const { encKey, pwEncKey, authKeyPair, keyShareIndex: newKeyShareIndex, } = await __classPrivateFieldGet(this, _SeedlessOnboardingController_instances, "m", _SeedlessOnboardingController_recoverEncKey).call(this, oldPassword);
|
|
953
941
|
const result = await this.toprfClient.changeEncKey({
|
|
954
942
|
nodeAuthTokens: this.state.nodeAuthTokens,
|
|
955
943
|
authConnectionId,
|
|
@@ -958,7 +946,7 @@ async function _SeedlessOnboardingController_changeEncryptionKey({ oldPassword,
|
|
|
958
946
|
oldEncKey: encKey,
|
|
959
947
|
oldPwEncKey: pwEncKey,
|
|
960
948
|
oldAuthKeyPair: authKeyPair,
|
|
961
|
-
newKeyShareIndex
|
|
949
|
+
newKeyShareIndex,
|
|
962
950
|
newPassword,
|
|
963
951
|
});
|
|
964
952
|
return result;
|
|
@@ -1300,33 +1288,13 @@ async function _SeedlessOnboardingController_withVaultLock(callback) {
|
|
|
1300
1288
|
* @param options - The options for asserting the password is in sync.
|
|
1301
1289
|
* @param options.skipCache - Whether to skip the cache check.
|
|
1302
1290
|
* @param options.skipLock - Whether to skip the lock acquisition. (to prevent deadlock in case the caller already acquired the lock)
|
|
1303
|
-
* @returns The global auth public key and the latest key index.
|
|
1304
1291
|
* @throws If the password is outdated.
|
|
1305
1292
|
*/
|
|
1306
1293
|
async function _SeedlessOnboardingController_assertPasswordInSync(options) {
|
|
1307
|
-
const
|
|
1308
|
-
if (!nodeAuthTokens || !authConnectionId || !userId) {
|
|
1309
|
-
throw new Error(constants_1.SeedlessOnboardingControllerErrorMessage.MissingAuthUserInfo);
|
|
1310
|
-
}
|
|
1311
|
-
const { authPubKey, keyIndex: latestKeyIndex } = await this.toprfClient
|
|
1312
|
-
.fetchAuthPubKey({
|
|
1313
|
-
nodeAuthTokens,
|
|
1314
|
-
authConnectionId,
|
|
1315
|
-
groupedAuthConnectionId,
|
|
1316
|
-
userId,
|
|
1317
|
-
})
|
|
1318
|
-
.catch((error) => {
|
|
1319
|
-
log('Error fetching auth pub key', error);
|
|
1320
|
-
throw new Error(constants_1.SeedlessOnboardingControllerErrorMessage.FailedToFetchAuthPubKey);
|
|
1321
|
-
});
|
|
1322
|
-
const isPasswordOutdated = await this.checkIsPasswordOutdated({
|
|
1323
|
-
...options,
|
|
1324
|
-
globalAuthPubKey: authPubKey,
|
|
1325
|
-
});
|
|
1294
|
+
const isPasswordOutdated = await this.checkIsPasswordOutdated(options);
|
|
1326
1295
|
if (isPasswordOutdated) {
|
|
1327
1296
|
throw new Error(constants_1.SeedlessOnboardingControllerErrorMessage.OutdatedPassword);
|
|
1328
1297
|
}
|
|
1329
|
-
return { authPubKey, latestKeyIndex };
|
|
1330
1298
|
}, _SeedlessOnboardingController_resetPasswordOutdatedCache = function _SeedlessOnboardingController_resetPasswordOutdatedCache() {
|
|
1331
1299
|
this.update((state) => {
|
|
1332
1300
|
delete state.passwordOutdatedCache;
|