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
Verify all the things
This commit is contained in:
@@ -77,10 +77,30 @@ export class ReciprocateQRCode extends Base {
|
|||||||
const masterKey = xsignInfo.getId("master");
|
const masterKey = xsignInfo.getId("master");
|
||||||
const masterKeyId = `ed25519:${masterKey}`;
|
const masterKeyId = `ed25519:${masterKey}`;
|
||||||
await this._verifyKeys(this.userId, {[masterKeyId]:masterKey}, (keyId, device, keyInfo) => {
|
await this._verifyKeys(this.userId, {[masterKeyId]:masterKey}, (keyId, device, keyInfo) => {
|
||||||
console.log({keyId, device, keyInfo});
|
if (keyInfo !== masterKey) {
|
||||||
if (keyId !== masterKeyId) {
|
console.error("key ID from key info does not match");
|
||||||
throw newKeyMismatchError();
|
throw newKeyMismatchError();
|
||||||
}
|
}
|
||||||
|
if (keyId !== masterKeyId) {
|
||||||
|
console.error("key id doesn't match");
|
||||||
|
throw newKeyMismatchError();
|
||||||
|
}
|
||||||
|
if (device.deviceId !== masterKey) {
|
||||||
|
console.error("master key does not match device ID");
|
||||||
|
throw newKeyMismatchError();
|
||||||
|
}
|
||||||
|
for (const deviceKeyId in device.keys) {
|
||||||
|
if (deviceKeyId !== masterKeyId) {
|
||||||
|
console.error("device key ID does not match");
|
||||||
|
throw newKeyMismatchError();
|
||||||
|
}
|
||||||
|
if (device.keys[deviceKeyId] !== masterKey) {
|
||||||
|
console.error("master key does not match");
|
||||||
|
throw newKeyMismatchError();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise it is probably fine
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user