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

description: |-
  Accepts a previously sent ``m.key.verification.start`` message. Typically sent as a
  `to-device`_ event.
properties:
  content:
    properties:
      transaction_id:
        type: string
        description: |-
          An opaque identifier for the verification process. Must be the same as
          the one used for the ``m.key.verification.start`` message.
      key_agreement_protocol:
        type: string
        description: |-
          The key agreement protocol the device is choosing to use, out of the
          options in the ``m.key.verification.start`` message.
      hash:
        type: string
        description: |-
          The hash method the device is choosing to use, out of the options in
          the ``m.key.verification.start`` message.
      message_authentication_code:
        type: string
        description: |-
          The message authentication code the device is choosing to use, out of
          the options in the ``m.key.verification.start`` message.
      short_authentication_string:
        type: array
        description: |-
          The SAS methods both devices involved in the verification process
          understand. Must be a subset of the options in the ``m.key.verification.start``
          message.
        items:
          type: string
          enum: ["decimal", "emoji"]
      commitment:
        type: string
        description: |-
          The hash (encoded as unpadded base64) of the concatenation of the device's
          ephemeral public key (encoded as unpadded base64) and the canonical JSON
          representation of the ``m.key.verification.start`` message.
    required:
      - transaction_id
      - method
      - key_agreement_protocol
      - hash
      - message_authentication_code
      - short_authentication_string
      - commitment
    type: object
  type:
    enum:
      - m.key.verification.accept
    type: string
type: object