Merge pull request #5164 from matrix-org/jryans/cross-signing-verif-errors

Only wait for public keys during verification
This commit is contained in:
J. Ryan Stinnett 2020-09-02 15:07:34 +01:00 committed by GitHub
commit 129b9459a3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 7 deletions

View file

@ -220,7 +220,10 @@ export default class DeviceListener {
await cli.downloadKeys([cli.getUserId()]);
// cross signing isn't enabled - nag to enable it
// There are 3 different toasts for:
if (cli.getStoredCrossSigningForUser(cli.getUserId())) {
if (
!cli.getCrossSigningId() &&
cli.getStoredCrossSigningForUser(cli.getUserId())
) {
// Cross-signing on account but this device doesn't trust the master key (verify this session)
showSetupEncryptionToast(SetupKind.VERIFY_THIS_SESSION);
} else {

View file

@ -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");
}
}