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
This commit is contained in:
parent
0d290c9bd2
commit
dd87e9a2f1
1 changed files with 6 additions and 6 deletions
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue