From 4f8c20ddaee7e47c50f2c269b486584bb4bdae62 Mon Sep 17 00:00:00 2001 From: Brad Murray Date: Mon, 26 Jul 2021 07:49:42 -0400 Subject: [PATCH] Fix reattempting decryption check --- spec/unit/crypto.spec.js | 2 +- src/models/event.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/unit/crypto.spec.js b/spec/unit/crypto.spec.js index 816b952b1..878f79fbd 100644 --- a/spec/unit/crypto.spec.js +++ b/spec/unit/crypto.spec.js @@ -274,7 +274,7 @@ describe("Crypto", function() { // alice encrypts each event, and then bob tries to decrypt // them without any keys, so that they'll be in pending await aliceClient.crypto.encryptEvent(event, aliceRoom); - event.clearEvent = {}; + event.clearEvent = undefined; event.senderCurve25519Key = null; event.claimedEd25519Key = null; try { diff --git a/src/models/event.ts b/src/models/event.ts index 6d72d5a8c..47f6e1aee 100644 --- a/src/models/event.ts +++ b/src/models/event.ts @@ -534,7 +534,7 @@ export class MatrixEvent extends EventEmitter { throw new Error("Attempt to decrypt event which isn't encrypted"); } - if (this.clearEvent?.content && this.clearEvent.content.msgtype !== "m.bad.encrypted") { + if (this.clearEvent && !this.isDecryptionFailure()) { // we may want to just ignore this? let's start with rejecting it. throw new Error( "Attempt to decrypt event which has already been decrypted",