matrix-spec/data/event-schemas/schema/m.key.verification.start.yaml
Sumner Evans 4282a1a319
e2ee/device verification start: clarify required nature of transaction_id or m.relates_to
Add notes about the fact that the start event *may* be the first event
sent during a verification process and that clients should handle other
clients doing so, but not themselves send the start event first.

Signed-off-by: Sumner Evans <sumner.evans@automattic.com>
2024-06-07 11:19:36 -06:00

83 lines
3 KiB
YAML

---
allOf:
- $ref: core-event-schema/event.yaml
description: |-
Begins a key verification process. The `method` field determines the type of
verification. The fields in the event will differ depending on the `method`.
This definition includes fields that are in common among all variants.
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 unless the start event is
sent without a corresponding
[`m.key.verification.request`](#mkeyverificationrequest).
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`](#mkeyverificationrequest) if this
process is originating from a request.
Note that sending a start event without a request is deprecated, and
clients should not send a start event without first sending a request
event, but clients should handle other clients doing so.
method:
type: string
description: |-
The verification method to use.
next_method:
type: string
description: |-
Optional method to use to verify the other user's key with. Applicable
when the `method` chosen only verifies one user's key. This field will
never be present if the `method` verifies keys both ways.
m.relates_to:
description: |-
Required when sent as an in-room message unless the start event is
sent without a corresponding
[`m.key.verification.request`](#mkeyverificationrequest).
Indicates the
[`m.key.verification.request`](#mkeyverificationrequest) that this
message is related to. Note that for encrypted messages, this
property should be in the unencrypted portion of the event.
Note that sending a start event without a request is deprecated, and
clients should not send a start event without first sending a request
event, but clients should handle other clients doing so.
properties:
rel_type:
type: string
enum:
- m.reference
description: |-
The relationship type. Currently, this can only be an
[`m.reference`](/client-server-api/#reference-relations)
relationship type.
event_id:
type: string
description: |-
The event ID of the
[`m.key.verification.request`](#mkeyverificationrequest) that
this message is related to.
type: object
title: VerificationRelatesTo
required:
- from_device
- method
type: object
type:
enum:
- m.key.verification.start
type: string
type: object