From 07e0cab4a840c86b55accdf30a2ff0886de2bf5c Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Thu, 4 Jun 2020 12:49:33 +0200 Subject: [PATCH] When trying to restore a keyback that has its key in 4S, check if 4S will be readable If the account data for the 4S key is cleared or lost somehow, don't attempt to read the key and ask for the passphrase/recovery key instead, as doing so would trigger another bootstrap from the restore key backup dialog, overwriting the existing key backup. --- .../views/dialogs/keybackup/RestoreKeyBackupDialog.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/views/dialogs/keybackup/RestoreKeyBackupDialog.js b/src/components/views/dialogs/keybackup/RestoreKeyBackupDialog.js index a27853db56..dd34dfbbf0 100644 --- a/src/components/views/dialogs/keybackup/RestoreKeyBackupDialog.js +++ b/src/components/views/dialogs/keybackup/RestoreKeyBackupDialog.js @@ -227,8 +227,10 @@ export default class RestoreKeyBackupDialog extends React.PureComponent { loadError: null, }); try { - const backupInfo = await MatrixClientPeg.get().getKeyBackupVersion(); - const backupKeyStored = await MatrixClientPeg.get().isKeyBackupKeyStored(); + const cli = MatrixClientPeg.get(); + const backupInfo = await cli.getKeyBackupVersion(); + const has4S = await cli.hasSecretStorageKey(); + const backupKeyStored = has4S && await cli.isKeyBackupKeyStored(); this.setState({ backupInfo, backupKeyStored,