You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-08-05 00:42:10 +03:00
Remove brokenheaded encryption test (#3070)
This test seemed to be testing the behaviour of decrypting redacted events, but that seems... strange. A redaction event cannot be encrypted (at least, there is no spec for it), and it should be impossible to decrypt a (correctly) redacted event, because such an event will lack a `ciphertext` property. This test is just sticking a "redacted_because" property into a regular event, which is a bit of a nonsense.
This commit is contained in:
committed by
GitHub
parent
a34d06c7c2
commit
85b34b46c5
@@ -1160,71 +1160,6 @@ describe("megolm", () => {
|
|||||||
expect(decryptedEvent.getClearContent()).toBeUndefined();
|
expect(decryptedEvent.getClearContent()).toBeUndefined();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should successfully decrypt bundled redaction events that don't include a room_id in their /sync data", async () => {
|
|
||||||
await aliceTestClient.start();
|
|
||||||
aliceTestClient.client.crypto!.deviceList.downloadKeys = () => Promise.resolve({});
|
|
||||||
const p2pSession = await createOlmSession(testOlmAccount, aliceTestClient);
|
|
||||||
const groupSession = new Olm.OutboundGroupSession();
|
|
||||||
groupSession.create();
|
|
||||||
|
|
||||||
aliceTestClient.client.crypto!.deviceList.getUserByIdentityKey = () => "@bob:xyz";
|
|
||||||
|
|
||||||
// make the room_key event
|
|
||||||
const roomKeyEncrypted = encryptGroupSessionKey({
|
|
||||||
recipient: aliceTestClient,
|
|
||||||
olmAccount: testOlmAccount,
|
|
||||||
p2pSession: p2pSession,
|
|
||||||
groupSession: groupSession,
|
|
||||||
room_id: ROOM_ID,
|
|
||||||
});
|
|
||||||
|
|
||||||
// encrypt a message with the group session
|
|
||||||
const messageEncrypted = encryptMegolmEvent({
|
|
||||||
senderKey: testSenderKey,
|
|
||||||
groupSession: groupSession,
|
|
||||||
room_id: ROOM_ID,
|
|
||||||
});
|
|
||||||
|
|
||||||
const redactionEncrypted = encryptMegolmEvent({
|
|
||||||
senderKey: testSenderKey,
|
|
||||||
groupSession: groupSession,
|
|
||||||
plaintext: {
|
|
||||||
room_id: ROOM_ID,
|
|
||||||
type: "m.room.redaction",
|
|
||||||
redacts: messageEncrypted.event_id,
|
|
||||||
content: { reason: "redaction test" },
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const messageEncryptedWithRedaction = {
|
|
||||||
...messageEncrypted,
|
|
||||||
unsigned: { redacted_because: redactionEncrypted },
|
|
||||||
};
|
|
||||||
|
|
||||||
const syncResponse = {
|
|
||||||
next_batch: 1,
|
|
||||||
to_device: {
|
|
||||||
events: [roomKeyEncrypted],
|
|
||||||
},
|
|
||||||
rooms: {
|
|
||||||
join: {
|
|
||||||
[ROOM_ID]: { timeline: { events: [messageEncryptedWithRedaction] } },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
aliceTestClient.httpBackend.when("GET", "/sync").respond(200, syncResponse);
|
|
||||||
await aliceTestClient.flushSync();
|
|
||||||
|
|
||||||
const room = aliceTestClient.client.getRoom(ROOM_ID)!;
|
|
||||||
const event = room.getLiveTimeline().getEvents()[0];
|
|
||||||
expect(event.isEncrypted()).toBe(true);
|
|
||||||
await event.attemptDecryption(aliceTestClient.client.crypto!);
|
|
||||||
expect(event.getContent()).toEqual({});
|
|
||||||
const redactionEvent: any = event.getRedactionEvent();
|
|
||||||
expect(redactionEvent.content.reason).toEqual("redaction test");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("Alice receives shared history before being invited to a room by the sharer", async () => {
|
it("Alice receives shared history before being invited to a room by the sharer", async () => {
|
||||||
const beccaTestClient = new TestClient("@becca:localhost", "foobar", "bazquux");
|
const beccaTestClient = new TestClient("@becca:localhost", "foobar", "bazquux");
|
||||||
await beccaTestClient.client.initCrypto();
|
await beccaTestClient.client.initCrypto();
|
||||||
|
Reference in New Issue
Block a user