1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2025-12-01 04:43:29 +03:00

pass on send errors so request gets cancelled

This commit is contained in:
Bruno Windels
2020-04-09 17:23:44 +02:00
parent 84637c6ebd
commit 00233d610b

View File

@@ -295,7 +295,7 @@ export class SAS extends Base {
const hashCommitment = content.commitment; const hashCommitment = content.commitment;
const olmSAS = new global.Olm.SAS(); const olmSAS = new global.Olm.SAS();
try { try {
this._send("m.key.verification.key", { await this._send("m.key.verification.key", {
key: olmSAS.get_pubkey(), key: olmSAS.get_pubkey(),
}); });
@@ -318,9 +318,13 @@ export class SAS extends Base {
const verifySAS = new Promise((resolve, reject) => { const verifySAS = new Promise((resolve, reject) => {
this.sasEvent = { this.sasEvent = {
sas: generateSas(sasBytes, sasMethods), sas: generateSas(sasBytes, sasMethods),
confirm: () => { confirm: async () => {
this._sendMAC(olmSAS, macMethod); try {
await this._sendMAC(olmSAS, macMethod);
resolve(); resolve();
} catch (err) {
reject(err);
}
}, },
cancel: () => reject(newUserCancelledError()), cancel: () => reject(newUserCancelledError()),
mismatch: () => reject(newMismatchedSASError()), mismatch: () => reject(newMismatchedSASError()),
@@ -377,7 +381,7 @@ export class SAS extends Base {
const olmSAS = new global.Olm.SAS(); const olmSAS = new global.Olm.SAS();
try { try {
const commitmentStr = olmSAS.get_pubkey() + anotherjson.stringify(content); const commitmentStr = olmSAS.get_pubkey() + anotherjson.stringify(content);
this._send("m.key.verification.accept", { await this._send("m.key.verification.accept", {
key_agreement_protocol: keyAgreement, key_agreement_protocol: keyAgreement,
hash: hashMethod, hash: hashMethod,
message_authentication_code: macMethod, message_authentication_code: macMethod,
@@ -391,7 +395,7 @@ export class SAS extends Base {
// FIXME: make sure event is properly formed // FIXME: make sure event is properly formed
content = e.getContent(); content = e.getContent();
olmSAS.set_their_key(content.key); olmSAS.set_their_key(content.key);
this._send("m.key.verification.key", { await this._send("m.key.verification.key", {
key: olmSAS.get_pubkey(), key: olmSAS.get_pubkey(),
}); });
@@ -403,9 +407,13 @@ export class SAS extends Base {
const verifySAS = new Promise((resolve, reject) => { const verifySAS = new Promise((resolve, reject) => {
this.sasEvent = { this.sasEvent = {
sas: generateSas(sasBytes, sasMethods), sas: generateSas(sasBytes, sasMethods),
confirm: () => { confirm: async () => {
this._sendMAC(olmSAS, macMethod); try {
await this._sendMAC(olmSAS, macMethod);
resolve(); resolve();
} catch(err) {
reject(err);
}
}, },
cancel: () => reject(newUserCancelledError()), cancel: () => reject(newUserCancelledError()),
mismatch: () => reject(newMismatchedSASError()), mismatch: () => reject(newMismatchedSASError()),
@@ -461,7 +469,7 @@ export class SAS extends Base {
keyList.sort().join(","), keyList.sort().join(","),
baseInfo + "KEY_IDS", baseInfo + "KEY_IDS",
); );
this._send("m.key.verification.mac", { mac, keys }); return this._send("m.key.verification.mac", { mac, keys });
} }
async _checkMAC(olmSAS, content, method) { async _checkMAC(olmSAS, content, method) {