--- $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 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