mirror of
https://github.com/matrix-org/matrix-spec
synced 2026-02-22 22:13:43 +01:00
Historical note: this was originally a series of several commits, spread out over several weeks. They have been squashed together to make `git annotate` work properly. The original commits were: * 91ab3934 <Will> 2021-01-25 21:16:42 -0800 Add raw API end event schemas into /data directory * aae22f47 <Will> 2021-01-25 21:33:06 -0800 Remove non-data files * 1092d4ca <Will> 2021-01-26 20:41:33 -0800 Add data-compatiuble extension (.yaml) to all data files that currently omit one * 21060109 <Will> 2021-01-26 20:57:28 -0800 Remove symlink to event-schemas, and update openAPI schema paths accordingly * 4f633845 <Travis Ralston> 2021-04-12 21:54:54 -0600 Fix event schema examples too * 301c7b2f <Will> 2021-02-05 10:15:42 -0800 Restore docs describing OpenAPI extensions that we use
69 lines
2.4 KiB
YAML
69 lines
2.4 KiB
YAML
---
|
|
allOf:
|
|
- $ref: core-event-schema/event.yaml
|
|
|
|
description: |-
|
|
This event type is used to forward 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
|
|
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.
|
|
sender_key:
|
|
type: string
|
|
description: |-
|
|
The Curve25519 key of the device which initiated the session originally.
|
|
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.
|
|
sender_claimed_ed25519_key:
|
|
type: string
|
|
description: |-
|
|
The Ed25519 key of the device which initiated the session originally.
|
|
It is 'claimed' because the receiving device has no way to tell that the
|
|
original room_key actually came from a device which owns the private part of
|
|
this key unless they have done device verification.
|
|
forwarding_curve25519_key_chain:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: |-
|
|
Chain of Curve25519 keys. It starts out empty, but each time the
|
|
key is forwarded to another device, the previous sender in the chain is added
|
|
to the end of the list. For example, if the key is forwarded from A to B to
|
|
C, this field is empty between A and B, and contains A's Curve25519 key between
|
|
B and C.
|
|
withheld:
|
|
type: object
|
|
description: |-
|
|
Indicates that the key cannot be used to decrypt all the messages
|
|
from the session because a portion of the session was withheld as
|
|
described in `Reporting that decryption keys are withheld`_. This
|
|
object must include the ``code`` and ``reason`` properties from the
|
|
``m.room_key.withheld`` message that was received by the sender of
|
|
this message.
|
|
required:
|
|
- algorithm
|
|
- room_id
|
|
- session_id
|
|
- session_key
|
|
- sender_claimed_ed25519_key
|
|
- forwarding_curve25519_key_chain
|
|
- sender_key
|
|
type: object
|
|
type:
|
|
enum:
|
|
- m.forwarded_room_key
|
|
type: string
|
|
type: object
|