From 5382a52519341da90191b31600684a9167d85858 Mon Sep 17 00:00:00 2001 From: Zoe Date: Tue, 11 Feb 2020 15:56:32 +0000 Subject: [PATCH] Fixed bug where key reset didn't always return the right key --- .../CreateSecretStorageDialog.js | 22 +++++++++++++------ .../views/settings/CrossSigningPanel.js | 5 ++--- src/i18n/strings/en_EN.json | 1 + 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/async-components/views/dialogs/secretstorage/CreateSecretStorageDialog.js b/src/async-components/views/dialogs/secretstorage/CreateSecretStorageDialog.js index db2f4c35cc..e3ff8b2143 100644 --- a/src/async-components/views/dialogs/secretstorage/CreateSecretStorageDialog.js +++ b/src/async-components/views/dialogs/secretstorage/CreateSecretStorageDialog.js @@ -225,13 +225,21 @@ export default class CreateSecretStorageDialog extends React.PureComponent { const { force } = this.props; try { - await cli.bootstrapSecretStorage({ - setupNewSecretStorage: force, - authUploadDeviceSigningKeys: this._doBootstrapUIAuth, - createSecretStorageKey: async () => this._keyInfo, - keyBackupInfo: this.state.backupInfo, - setupNewKeyBackup: force || !this.state.backupInfo && this.state.useKeyBackup, - }); + if (!force) { + await cli.bootstrapSecretStorage({ + authUploadDeviceSigningKeys: this._doBootstrapUIAuth, + createSecretStorageKey: async () => this._keyInfo, + keyBackupInfo: this.state.backupInfo, + setupNewKeyBackup: !this.state.backupInfo && this.state.useKeyBackup, + }); + } else { + await cli.bootstrapSecretStorage({ + authUploadDeviceSigningKeys: this._doBootstrapUIAuth, + createSecretStorageKey: async () => this._keyInfo, + setupNewKeyBackup: true, + setupNewSecretStorage: true, + }); + } this.setState({ phase: PHASE_DONE, }); diff --git a/src/components/views/settings/CrossSigningPanel.js b/src/components/views/settings/CrossSigningPanel.js index b39ed4808b..eeccaa61e1 100644 --- a/src/components/views/settings/CrossSigningPanel.js +++ b/src/components/views/settings/CrossSigningPanel.js @@ -103,7 +103,6 @@ export default class CrossSigningPanel extends React.PureComponent { onDestroyStorage = (act) => { if (!act) return; - console.log("Destroy secret storage:", act); this._bootstrapSecureSecretStorage(true); } @@ -157,13 +156,13 @@ export default class CrossSigningPanel extends React.PureComponent { {_t("Bootstrap cross-signing and secret storage")} ; - } /*else { // TODO https://github.com/vector-im/riot-web/issues/12221 + } else { bootstrapButton =
{_t("Reset cross-signing and secret storage")}
; - }*/ + } return (
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 5b28a58878..7a8642be95 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -565,6 +565,7 @@ "Your account has a cross-signing identity in secret storage, but it is not yet trusted by this session.": "Your account has a cross-signing identity in secret storage, but it is not yet trusted by this session.", "Cross-signing and secret storage are not yet set up.": "Cross-signing and secret storage are not yet set up.", "Bootstrap cross-signing and secret storage": "Bootstrap cross-signing and secret storage", + "Reset cross-signing and secret storage": "Reset cross-signing and secret storage", "Cross-signing public keys:": "Cross-signing public keys:", "in memory": "in memory", "not found": "not found",