---
allOf:
  - $ref: core-event-schema/event.yaml

description: |-
  This event type is used to exchange keys for end-to-end encryption. Typically
  it is encrypted as an ``m.room.encrypted`` event, then sent as a `to-device`_ 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.
    required:
      - algorithm
      - room_id
      - session_id
      - session_key
    type: object
  type:
    enum:
      - m.room_key
    type: string
type: object