From 16a1fd322de1c117be61f758ad56381373faa507 Mon Sep 17 00:00:00 2001 From: Andy Balaam Date: Mon, 17 Nov 2025 17:11:51 +0000 Subject: [PATCH 1/2] Update encrypted state to say MSC4362 everywhere --- spec/test-utils/test-utils.ts | 2 +- src/@types/state_events.ts | 2 +- src/client.ts | 2 +- src/models/event.ts | 4 ++-- src/rust-crypto/rust-crypto.ts | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/spec/test-utils/test-utils.ts b/spec/test-utils/test-utils.ts index 5067e4dff65..6921922900f 100644 --- a/spec/test-utils/test-utils.ts +++ b/spec/test-utils/test-utils.ts @@ -82,7 +82,7 @@ export function getSyncResponse( state_key: "", content: { "algorithm": "m.megolm.v1.aes-sha2", - "io.element.msc3414.encrypt_state_events": encryptStateEvents, + "io.element.msc4362.encrypt_state_events": encryptStateEvents, }, }), ], diff --git a/src/@types/state_events.ts b/src/@types/state_events.ts index 0eb650556a8..c84fad69a68 100644 --- a/src/@types/state_events.ts +++ b/src/@types/state_events.ts @@ -106,7 +106,7 @@ export interface RoomPinnedEventsEventContent { export interface RoomEncryptionEventContent { "algorithm": "m.megolm.v1.aes-sha2"; - "io.element.msc3414.encrypt_state_events"?: boolean; + "io.element.msc4362.encrypt_state_events"?: boolean; "rotation_period_ms"?: number; "rotation_period_msgs"?: number; } diff --git a/src/client.ts b/src/client.ts index 26cba498fe9..1ed09b6ecad 100644 --- a/src/client.ts +++ b/src/client.ts @@ -6928,7 +6928,7 @@ export class MatrixClient extends TypedEventEmitterundefined for message events. * @returns The event's `state_key`. */ @@ -766,7 +766,7 @@ export class MatrixEvent extends TypedEventEmitterundefined + * MSC4362 if the state event is encrypted. This will return undefined * for message events. * @returns The event's `state_key`. */ diff --git a/src/rust-crypto/rust-crypto.ts b/src/rust-crypto/rust-crypto.ts index dbb0abf7c3b..a32ffbe20f5 100644 --- a/src/rust-crypto/rust-crypto.ts +++ b/src/rust-crypto/rust-crypto.ts @@ -164,7 +164,7 @@ export class RustCrypto extends TypedEventEmitter Date: Wed, 19 Nov 2025 11:57:33 +0000 Subject: [PATCH 2/2] Fix test failure with encrypted state: handle empty string state key --- spec/integ/crypto/olm-utils.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spec/integ/crypto/olm-utils.ts b/spec/integ/crypto/olm-utils.ts index 30ae501329c..178b54366bd 100644 --- a/spec/integ/crypto/olm-utils.ts +++ b/spec/integ/crypto/olm-utils.ts @@ -305,7 +305,9 @@ export function encryptMegolmEventRawPlainText(opts: { }, type: "m.room.encrypted", unsigned: {}, - state_key: opts.plaintext.state_key ? `${opts.plaintext.type}:${opts.plaintext.state_key}` : undefined, + state_key: opts.plaintext.hasOwnProperty("state_key") + ? `${opts.plaintext.type}:${opts.plaintext.state_key}` + : undefined, }; }