From cf94527bd58ae641c3ffcb831a1f3a3bd33d17ff Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 4 Feb 2020 12:04:50 +0000 Subject: [PATCH] Add a bunch of logging to verification So we have a better idea of what's going on --- src/crypto/CrossSigning.js | 2 ++ src/crypto/index.js | 7 +++++++ src/crypto/verification/Base.js | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/src/crypto/CrossSigning.js b/src/crypto/CrossSigning.js index dc99a3c19..2bc9d0f3f 100644 --- a/src/crypto/CrossSigning.js +++ b/src/crypto/CrossSigning.js @@ -348,6 +348,7 @@ export class CrossSigningInfo extends EventEmitter { async signUser(key) { if (!this.keys.user_signing) { + logger.info("No user signing key: not signing user"); return; } return this.signObject(key.keys.master, "user_signing"); @@ -360,6 +361,7 @@ export class CrossSigningInfo extends EventEmitter { ); } if (!this.keys.self_signing) { + logger.info("No self signing key: not signing device"); return; } return this.signObject( diff --git a/src/crypto/index.js b/src/crypto/index.js index a76c158d9..9a3c06884 100644 --- a/src/crypto/index.js +++ b/src/crypto/index.js @@ -1527,8 +1527,13 @@ Crypto.prototype.setDeviceVerification = async function( this._storeTrustedSelfKeys(xsk.keys); } + logger.info( + "Master key " + xsk.getId() + " for " + userId + + " marked verified. Signing...", + ); const device = await this._crossSigningInfo.signUser(xsk); if (device) { + logger.info("Uploading signature for " + userId + "..."); await this._baseApis.uploadKeySignatures({ [userId]: { [deviceId]: device, @@ -1574,10 +1579,12 @@ Crypto.prototype.setDeviceVerification = async function( // do cross-signing if (verified && userId === this._userId) { + logger.info("Own device " + deviceId + " marked verified: signing"); const device = await this._crossSigningInfo.signDevice( userId, DeviceInfo.fromStorage(dev, deviceId), ); if (device) { + logger.info("Uploading signature for " + deviceId); await this._baseApis.uploadKeySignatures({ [userId]: { [deviceId]: device, diff --git a/src/crypto/verification/Base.js b/src/crypto/verification/Base.js index 9213c3b49..dd45e4218 100644 --- a/src/crypto/verification/Base.js +++ b/src/crypto/verification/Base.js @@ -303,6 +303,10 @@ export class VerificationBase extends EventEmitter { throw new Error("No devices could be verified"); } + logger.info("Verification completed! Marking devices verified: ", verifiedDevices); + // TODO: There should probably be a batch version of this, otherwise it's going + // to upload each signature in a separate API call which is silly because the + // API supports as many signatures as you like. for (const deviceId of verifiedDevices) { await this._baseApis.setDeviceVerified(userId, deviceId); }