Move various e2e defintions out to yaml files (#1166)
We have code to generate tables, which we should use in the e2e section.
This commit is contained in:
parent
5f3b34448d
commit
ea42cd3c7b
7 changed files with 147 additions and 53 deletions
|
@ -1255,25 +1255,12 @@ When a backup is created with the `algorithm` set to
|
|||
`m.megolm_backup.v1.curve25519-aes-sha2`, the `auth_data` should have
|
||||
the following format:
|
||||
|
||||
`AuthData`
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| -----------| -----------|--------------------------------------------------------------------------------------------------|
|
||||
| public_key | string | **Required.** The curve25519 public key used to encrypt the backups, encoded in unpadded base64. |
|
||||
| signatures | Signatures | Optional. Signatures of the ``auth_data``, as Signed JSON |
|
||||
{{% definition path="api/client-server/definitions/key_backup_auth_data" %}}
|
||||
|
||||
The `session_data` field in the backups is constructed as follows:
|
||||
|
||||
1. Encode the session key to be backed up as a JSON object with the
|
||||
properties:
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------------------------------|-------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| algorithm | string | **Required.** The end-to-end message encryption algorithm that the key is for. Must be `m.megolm.v1.aes-sha2`. |
|
||||
| forwarding_curve25519_key_chain | [string] | **Required.** Chain of Curve25519 keys through which this session was forwarded, via [m.forwarded_room_key](#mforwarded_room_key) events. |
|
||||
| sender_key | string | **Required.** Unpadded base64-encoded device curve25519 key. |
|
||||
| sender_claimed_keys | {string: string} | **Required.** A map from algorithm name (`ed25519`) to the identity key for the sending device. |
|
||||
| session_key | string | **Required.** Unpadded base64-encoded session key in [session-sharing format](https://gitlab.matrix.org/matrix-org/olm/blob/master/docs/megolm.md#session-sharing-format). |
|
||||
1. Encode the session key to be backed up as a JSON object using the
|
||||
`SessionData` format defined below.
|
||||
|
||||
2. Generate an ephemeral curve25519 key, and perform an ECDH with the
|
||||
ephemeral key and the backup's public key to generate a shared
|
||||
|
@ -1295,6 +1282,8 @@ The `session_data` field in the backups is constructed as follows:
|
|||
the resulting MAC are base64-encoded, and become the `mac` property
|
||||
of the `session_data`.
|
||||
|
||||
{{% definition path="api/client-server/definitions/key_backup_session_data" %}}
|
||||
|
||||
{{% http-api spec="client-server" api="key_backup" %}}
|
||||
|
||||
##### Key exports
|
||||
|
@ -1344,42 +1333,7 @@ user-supplied passphrase, and is created as follows:
|
|||
The exported sessions are formatted as a JSON array of `SessionData`
|
||||
objects described as follows:
|
||||
|
||||
`SessionData`
|
||||
|
||||
| Parameter | Type | Description |
|
||||
|-----------------------------------|------------------|---------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| algorithm | string | Required. The encryption algorithm that the session uses. Must be `m.megolm.v1.aes-sha2`. |
|
||||
| forwarding_curve25519_key_chain | [string] | Required. Chain of Curve25519 keys through which this session was forwarded, via [m.forwarded_room_key](#mforwarded_room_key) events. |
|
||||
| room_id | string | Required. The room where the session is used. |
|
||||
| sender_key | string | Required. The Curve25519 key of the device which initiated the session originally. |
|
||||
| sender_claimed_keys | {string: string} | Required. The Ed25519 key of the device which initiated the session originally. |
|
||||
| session_id | string | Required. The ID of the session. |
|
||||
| session_key | string | Required. The key for the session. |
|
||||
|
||||
This is similar to the format before encryption used for the session
|
||||
keys in [Server-side key backups](#server-side-key-backups) but adds the
|
||||
`room_id` and `session_id` fields.
|
||||
|
||||
Example:
|
||||
|
||||
```
|
||||
[
|
||||
{
|
||||
"algorithm": "m.megolm.v1.aes-sha2",
|
||||
"forwarding_curve25519_key_chain": [
|
||||
"hPQNcabIABgGnx3/ACv/jmMmiQHoeFfuLB17tzWp6Hw"
|
||||
],
|
||||
"room_id": "!Cuyf34gef24t:localhost",
|
||||
"sender_key": "RF3s+E7RkTQTGF2d8Deol0FkQvgII2aJDf3/Jp5mxVU",
|
||||
"sender_claimed_keys": {
|
||||
"ed25519": "<device ed25519 identity key>",
|
||||
},
|
||||
"session_id": "X3lUlvLELLYxeTx4yOVu6UDpasGEVO0Jbu+QFnm0cKQ",
|
||||
"session_key": "AgAAAADxKHa9uFxcXzwYoNueL5Xqi69IkD4sni8Llf..."
|
||||
},
|
||||
...
|
||||
]
|
||||
```
|
||||
{{% definition path="api/client-server/definitions/megolm_export_session_data" %}}
|
||||
|
||||
#### Messaging Algorithms
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue