From 85db57ad1eddfa5f5ed566bbdd0375c46214ae74 Mon Sep 17 00:00:00 2001 From: Magnus Kuhn <127854942+Magnus-Kuhn@users.noreply.github.com> Date: Mon, 23 Sep 2024 15:47:37 +0200 Subject: [PATCH] Decrypting Messages fails when Relationship is not active anymore (#279) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: validate messages, challenges for once active relationship * test: remove test * Revert "test: remove test" This reverts commit 469c9bd5d37673b96ab039b2a97781f08c7b78b1. * feat: revert create challenge validation * test: add tests * feat: message controller wording Co-authored-by: Julian König <33655937+jkoenig134@users.noreply.github.com> * refactor: newline * chore: remove challenge changes * refactor: remove unused code --------- Co-authored-by: Julian König <33655937+jkoenig134@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- .../transport/src/modules/messages/MessageController.ts | 4 ++-- .../test/modules/messages/MessageController.test.ts | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/transport/src/modules/messages/MessageController.ts b/packages/transport/src/modules/messages/MessageController.ts index 13d14511f..bfa1596ad 100644 --- a/packages/transport/src/modules/messages/MessageController.ts +++ b/packages/transport/src/modules/messages/MessageController.ts @@ -507,10 +507,10 @@ export class MessageController extends TransportController { ); } } else { - relationship = await this.relationships.getActiveRelationshipToIdentity(envelope.createdBy); + relationship = await this.relationships.getRelationshipToIdentity(envelope.createdBy); if (!relationship) { - throw TransportCoreErrors.messages.missingOrInactiveRelationship(envelope.createdBy.toString()); + throw TransportCoreErrors.general.recordNotFound(Relationship, envelope.createdBy.toString()); } const [peerMessage, peerKey] = await this.decryptPeerEnvelope(envelope, relationship); diff --git a/packages/transport/test/modules/messages/MessageController.test.ts b/packages/transport/test/modules/messages/MessageController.test.ts index 0ed4e2112..63a484f46 100644 --- a/packages/transport/test/modules/messages/MessageController.test.ts +++ b/packages/transport/test/modules/messages/MessageController.test.ts @@ -219,12 +219,20 @@ describe("MessageController", function () { }); describe("Relationship Termination", function () { + let messageId: CoreId; + beforeAll(async function () { + messageId = (await TestUtil.sendMessage(sender, recipient)).id; await TestUtil.terminateRelationship(sender, recipient); }); test("should not send a message on a terminated relationship", async function () { await expect(TestUtil.sendMessage(sender, recipient)).rejects.toThrow("error.transport.messages.missingOrInactiveRelationship"); }); + + test("should still decrypt the message", async function () { + await expect(sender.messages.fetchCaches([messageId])).resolves.not.toThrow(); + await expect(recipient.messages.fetchCaches([messageId])).resolves.not.toThrow(); + }); }); });