matrix-spec/data/event-schemas/schema/m.room_key.yaml
Richard van der Hoff 4dcfa07215
Update data/event-schemas/schema/m.room_key.yaml
Co-authored-by: Hubert Chathi <hubertc@matrix.org>
2026-06-24 10:47:53 +01:00

52 lines
1.7 KiB
YAML

---
$schema: https://json-schema.org/draft/2020-12/schema
allOf:
- $ref: core-event-schema/event.yaml
description: |-
This event type is used to exchange keys for end-to-end encryption.
It is encrypted as an `m.room.encrypted` event using [Olm](/client-server-api/#molmv1curve25519-aes-sha2),
then sent as a [to-device](/client-server-api/#send-to-device-messaging) event.
properties:
content:
properties:
algorithm:
type: string
enum: ["m.megolm.v1.aes-sha2"]
description: |-
The encryption algorithm the key in this event is to be used with.
room_id:
type: string
description: The room where the key is used.
session_id:
type: string
description: The ID of the session that the key is for.
session_key:
type: string
description: The key to be exchanged.
shared_history:
x-addedInMatrixVersion: "1.19"
type: boolean
description: |
`true` indicates that the creator of this encryption key considers that
the session is [shareable](/client-server-api/#shareable-encryption-sessions):
in other words, the sender has observed that the [room history
visibility](/client-server-api/#room-history-visibility) is set to
`shared` or `world_readable`, and that they understand and agree that
the session keys may be shared with newly-invited users in future.
Absence, or any other value, indicates that the creator of the
session does not consider the session to be shareable.
required:
- algorithm
- room_id
- session_id
- session_key
type: object
type:
enum:
- m.room_key
type: string
type: object