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

description: |-
  Begins a SAS key verification process using the `m.sas.v1` method.
properties:
  content:
    properties:
      from_device:
        type: string
        description: |-
          The device ID which is initiating the process.
      transaction_id:
        type: string
        description: |-
          Required when sent as a to-device message. An opaque identifier for
          the verification process. Must be unique with respect to the devices
          involved. Must be the same as the `transaction_id` given in the
          `m.key.verification.request` if this process is originating from a
          request.
      method:
        type: string
        enum: ["m.sas.v1"]
        description: |-
          The verification method to use.
      key_agreement_protocols:
        type: array
        description: |-
          The key agreement protocols the sending device understands. Should
          include at least `curve25519-hkdf-sha256`.
        items:
          type: string
      hashes:
        type: array
        description: |-
          The hash methods the sending device understands. Must include at least
          `sha256`.
        items:
          type: string
      message_authentication_codes:
        type: array
        description: |-
          The message authentication codes that the sending device understands.
          Must include at least `hkdf-hmac-sha256`.
        items:
          type: string
      short_authentication_string:
        type: array
        description: |-
          The SAS methods the sending device (and the sending device's user)
          understands. Must include at least `decimal`. Optionally can include
          `emoji`.
        items:
          type: string
          enum: ["decimal", "emoji"]
      m.relates_to:
        allOf:
          - $ref: m.key.verification.m.relates_to.yaml
    required:
      - from_device
      - method
      - key_agreement_protocols
      - hashes
      - message_authentication_codes
      - short_authentication_string
    type: object
  type:
    enum:
      - m.key.verification.start
    type: string
type: object
