From dd87e9a2f1725ed505300c9ad8b87e26a906ff01 Mon Sep 17 00:00:00 2001 From: "J. Ryan Stinnett" Date: Wed, 2 Sep 2020 14:13:36 +0100 Subject: [PATCH] During verification, only check user trust status As part of new device verification, we were waiting for "cross-signing ready" which means _both_ the public keys are trusted by this device _and_ private keys are available. There's no guarantee that the private keys will ever arrive, so it's too strict to wait for this as a blocking flow. This relaxes things to wait only for the current device to trust public keys. Fixes https://github.com/vector-im/element-web/issues/14970 --- src/stores/SetupEncryptionStore.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/stores/SetupEncryptionStore.js b/src/stores/SetupEncryptionStore.js index 63b8c428eb..ee3b9c9de5 100644 --- a/src/stores/SetupEncryptionStore.js +++ b/src/stores/SetupEncryptionStore.js @@ -137,10 +137,10 @@ export class SetupEncryptionStore extends EventEmitter { } } - _onUserTrustStatusChanged = async (userId) => { + _onUserTrustStatusChanged = (userId) => { if (userId !== MatrixClientPeg.get().getUserId()) return; - const crossSigningReady = await MatrixClientPeg.get().isCrossSigningReady(); - if (crossSigningReady) { + const publicKeysTrusted = MatrixClientPeg.get().getCrossSigningId(); + if (publicKeysTrusted) { this.phase = PHASE_DONE; this.emit("update"); } @@ -150,7 +150,7 @@ export class SetupEncryptionStore extends EventEmitter { this._setActiveVerificationRequest(request); } - onVerificationRequestChange = async () => { + onVerificationRequestChange = () => { if (this.verificationRequest.cancelled) { this.verificationRequest.off("change", this.onVerificationRequestChange); this.verificationRequest = null; @@ -161,8 +161,8 @@ export class SetupEncryptionStore extends EventEmitter { // At this point, the verification has finished, we just need to wait for // cross signing to be ready to use, so wait for the user trust status to // change (or change to DONE if it's already ready). - const crossSigningReady = await MatrixClientPeg.get().isCrossSigningReady(); - this.phase = crossSigningReady ? PHASE_DONE : PHASE_BUSY; + const publicKeysTrusted = MatrixClientPeg.get().getCrossSigningId(); + this.phase = publicKeysTrusted ? PHASE_DONE : PHASE_BUSY; this.emit("update"); } }