add HTTP status codes for errors and move key format to the right spot
@@ -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`
