diff --git a/proposals/1219-storing-megolm-keys-serverside.md b/proposals/1219-storing-megolm-keys-serverside.md index 13f16bc9..ff74eb16 100644 --- a/proposals/1219-storing-megolm-keys-serverside.md +++ b/proposals/1219-storing-megolm-keys-serverside.md @@ -210,7 +210,7 @@ On success, returns a JSON object with keys: Error codes: -- `M_NOT_FOUND`: No backup version has been created. +- `M_NOT_FOUND`: No backup version has been created. (with HTTP status code 404) ##### `PUT /room_keys/version/{version}` @@ -247,7 +247,7 @@ On success, returns the empty JSON object. Error codes: -- `M_NOT_FOUND`: This backup version was not found. +- `M_NOT_FOUND`: This backup version was not found. (with HTTP status code 404) #### Storing keys @@ -289,7 +289,8 @@ On success, returns a JSON object with keys: Error codes: - `M_WRONG_ROOM_KEYS_VERSION`: the version specified does not match the current - backup version + backup version (with HTTP status code 403). The current backup version will + be included in the `current_version` field of the HTTP result. Example: @@ -426,7 +427,7 @@ On success, returns a JSON object in the same form as the request body of `PUT Error codes: - M_NOT_FOUND: The session is not present in the backup, or the requested - backup version does not exist. + backup version does not exist. (with HTTP status code 404) ##### `GET /room_keys/keys/${roomId}?version=$v` @@ -446,7 +447,7 @@ a successful response with body: Error codes: -- `M_NOT_FOUND`: The requested backup version does not exist. +- `M_NOT_FOUND`: The requested backup version does not exist. (with HTTP status code 404) ##### `GET /room_keys/keys?version=$v` @@ -466,7 +467,7 @@ a successful response with body: Error codes: -- `M_NOT_FOUND`: The requested backup version does not exist. +- `M_NOT_FOUND`: The requested backup version does not exist. (with HTTP status code 404) #### Deleting keys @@ -503,14 +504,14 @@ 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: - `algorithm` (string): `m.megolm.v1.aes-sha2` - - `sender_key` (string): base64-encoded device curve25519 key in - [session-sharing - format](https://gitlab.matrix.org/matrix-org/olm/blob/master/docs/megolm.md#session-sharing-format) + - `sender_key` (string): base64-encoded device curve25519 key - `sender_claimed_keys` (object): object containing the identity keys for the sending device - `forwarding_curve25519_key_chain` (array): zero or more curve25519 keys for devices who forwarded the session key - - `session_key` (string): base64-encoded (unpadded) session key + - `session_key` (string): base64-encoded (unpadded) session key in + [session-sharing + format](https://gitlab.matrix.org/matrix-org/olm/blob/master/docs/megolm.md#session-sharing-format) 2. Generate an ephemeral curve25519 key, and perform an ECDH with the ephemeral key and the backup's public key to generate a shared secret. The public half of the ephemeral key, encoded using base64, becomes the `ephemeral`