|
|
|
---
|
|
|
|
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
|