You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-11-26 17:03:12 +03:00
Check the backup info against the stored private key when determining trust. (#2167)
This commit is contained in:
@@ -313,11 +313,24 @@ export class BackupManager {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
const trustedPubkey = this.baseApis.crypto.sessionStore.getLocalTrustedBackupPubKey();
|
const privKey = await this.baseApis.crypto.getSessionBackupPrivateKey();
|
||||||
|
if (privKey) {
|
||||||
|
let algorithm;
|
||||||
|
try {
|
||||||
|
algorithm = await BackupManager.makeAlgorithm(backupInfo, async () => privKey);
|
||||||
|
|
||||||
if ("public_key" in backupInfo.auth_data && backupInfo.auth_data.public_key === trustedPubkey) {
|
if (await algorithm.keyMatches(privKey)) {
|
||||||
logger.info("Backup public key " + trustedPubkey + " is trusted locally");
|
logger.info("Backup is trusted locally");
|
||||||
ret.trusted_locally = true;
|
ret.trusted_locally = true;
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
// do nothing -- if we have an error, then we don't mark it as
|
||||||
|
// locally trusted
|
||||||
|
} finally {
|
||||||
|
if (algorithm) {
|
||||||
|
algorithm.free();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const mySigs = backupInfo.auth_data.signatures[this.baseApis.getUserId()] || {};
|
const mySigs = backupInfo.auth_data.signatures[this.baseApis.getUserId()] || {};
|
||||||
|
|||||||
Reference in New Issue
Block a user