mirror of
https://github.com/matrix-org/matrix-spec
synced 2026-08-03 22:47:49 +02:00
Compare commits
11 commits
1420a341f7
...
5bb777284e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5bb777284e | ||
|
|
4c2bb5aae1 | ||
|
|
f9dec5dc92 | ||
|
|
16b04f9d6c | ||
|
|
966109da49 | ||
|
|
e2b879d13d | ||
|
|
bf5fbc9945 | ||
|
|
1edf62c3f1 | ||
|
|
97fcfd93d9 | ||
|
|
68994d7fcd | ||
|
|
b9c3d5ed3b |
|
|
@ -1 +0,0 @@
|
|||
Update the canonical JSON grammar with case sensitive strings and ABNF builtins to be easier to understand.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Fix various typos throughout the specification.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Clarify matrix.to RFC 3986 percent encoding requirements. Contributed by @HarHarLinks.
|
||||
1
changelogs/appendices/newsfragments/2396.clarification
Normal file
1
changelogs/appendices/newsfragments/2396.clarification
Normal file
|
|
@ -0,0 +1 @@
|
|||
Clarify that clients must avoid producing ambiguous matrix.to URIs. Contributed by @HarHarLinks.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Add specification of URL-safe unpadded Base64.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Fix various typos throughout the specification.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Clarify SAS commitment calculation for `m.key.verification.accept` messages.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Specify `unsigned.replaces_state` in client-formatted events. Contributed by @nexy7574.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Clarify formats of string types.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Restore alphabetical order of common error codes.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Clarify formats of string types.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Fix various typos throughout the specification.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Clarify how to find `via` parameter when following room upgrades.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Specify `m.key_backup` account data, as per [MSC4287](https://github.com/matrix-org/matrix-spec-proposals/pull/4287).
|
||||
|
|
@ -1 +0,0 @@
|
|||
Clarify formats of string types.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Clarify formats of string types.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Add `GET /_matrix/client/v1/mutual_rooms`, as per [MSC2666](https://github.com/matrix-org/matrix-spec-proposals/pull/2666).
|
||||
|
|
@ -1 +0,0 @@
|
|||
Clarify formats of string types.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Clarify that room messages can be encrypted.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Clarify how to paginate messages using the pagination tokens returned by `GET /rooms/{roomId}/context/{eventId}`.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Clarify formats of string types.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Clarify formats of string types.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Clarify formats of string types.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Clarify allowed characters in `mxc://` URIs.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Add link to RFC 9700 OAuth 2.0 Best Current Practices.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Add links from the Client-Server spec to the Olm message definitions.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Disambiguate placeholder descriptions in OlmPayload example.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Replace "Olm message" with "event encrypted using Olm" where not referring to the Olm message format.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Removed unused components in OpenAPI definitions.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Fix various typos throughout the specification.
|
||||
|
|
@ -1 +0,0 @@
|
|||
The room directory now returns rooms in a server-defined order rather than largest first, as per [MSC4423](https://github.com/matrix-org/matrix-spec-proposals/pull/4423).
|
||||
|
|
@ -1 +0,0 @@
|
|||
Add support for image packs (`m.room.image_pack` and `m.image_pack.rooms`), allowing custom emoticons and stickers to be organised into packs and shared between users, as per [MSC2545](https://github.com/matrix-org/matrix-spec-proposals/pull/2545).
|
||||
|
|
@ -1 +0,0 @@
|
|||
Clarify definitions of `EncryptedFile` structure.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Specify encrypted history sharing, as per [MSC4268](https://github.com/matrix-org/matrix-spec-proposals/pull/4268).
|
||||
|
|
@ -1 +0,0 @@
|
|||
Specify `unsigned.replaces_state` in client-formatted events. Contributed by @nexy7574.
|
||||
1
changelogs/client_server/newsfragments/2404.breaking
Normal file
1
changelogs/client_server/newsfragments/2404.breaking
Normal file
|
|
@ -0,0 +1 @@
|
|||
Clients are now supposed to follow 30x redirects from `/.well-known/matrix/client` as per [MSC4402](https://github.com/matrix-org/matrix-spec-proposals/pull/4402).
|
||||
|
|
@ -0,0 +1 @@
|
|||
Add further normative language in mutual rooms server behaviour.
|
||||
|
|
@ -0,0 +1 @@
|
|||
Use the User ID type in OlmPayload and DeviceKeys.
|
||||
|
|
@ -0,0 +1 @@
|
|||
Wording improvements and spelling fixes. Contributed by @HarHarLinks.
|
||||
|
|
@ -0,0 +1 @@
|
|||
Rename OlmPayload to OlmPlaintext to avoid confusion with Olm message Payload Bytes.
|
||||
|
|
@ -0,0 +1 @@
|
|||
Use MXC URI type for all user `avatar_url` fields. Contributed by @networkException.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Fix various typos throughout the specification.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Add page search widget.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Update and fix GitHub Actions.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Upgrade Docsy theme to v0.14.3.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Configure a new changelog section for the Olm & Megolm specs.
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
Clarify use of UK vs US English in documentation style doc.
|
||||
|
||||
|
|
@ -1 +0,0 @@
|
|||
Update and fix GitHub Actions.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Ignore typos in copyright statements.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Update CODEOWNERS file.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Minor fixes to `check-newsfragments` CI script.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Update links to Olm in the Megolm section to point to the Matrix spec.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Fix various typos throughout the specification.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Update link from whispersystems.org to signal.org in the olm documentation.
|
||||
1
changelogs/olm_megolm/newsfragments/2421.clarification
Normal file
1
changelogs/olm_megolm/newsfragments/2421.clarification
Normal file
|
|
@ -0,0 +1 @@
|
|||
Fix typesetting of some symbols in the Olm/Megolm spec.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Fix various typos throughout the specification.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Fix various typos throughout the specification.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Clarify the behaviour and response format of `GET /_matrix/federation/v1/query/profile`.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Clarify that server ACLs are case-insensitive, as per [MSC4436](https://github.com/matrix-org/matrix-spec-proposals/pull/4436).
|
||||
|
|
@ -1 +0,0 @@
|
|||
Clarify how multiple signatures should be handled during signature verification. Contributed by @nexy7574.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Fix various typos throughout the specification.
|
||||
|
|
@ -1 +0,0 @@
|
|||
Clarify that policy servers might share a name with event origins, and that servers should avoid overwriting/discarding signatures for the event origin when getting a policy server signature.
|
||||
|
|
@ -1 +0,0 @@
|
|||
The room directory now returns rooms in a server-defined order rather than largest first, as per [MSC4423](https://github.com/matrix-org/matrix-spec-proposals/pull/4423).
|
||||
|
|
@ -76,8 +76,8 @@ status = "unstable"
|
|||
current_version_url = "https://spec.matrix.org/latest"
|
||||
# The following is used when status = "stable", and is displayed in various UI elements on a released version
|
||||
# of the spec.
|
||||
#major = "1"
|
||||
#minor = "18"
|
||||
# major = "1"
|
||||
# minor = "19"
|
||||
|
||||
[[params.versions]]
|
||||
# We must include this parameter to enable docsy's version picker in the navbar. The picker
|
||||
|
|
|
|||
|
|
@ -887,20 +887,22 @@ https://matrix.to/#/<identifier>/<extra parameter>?<additional arguments>
|
|||
|
||||
The identifier may be a room ID, room alias, or user ID. The
|
||||
extra parameter is only used in the case of permalinks where an event ID
|
||||
is referenced. The matrix.to URI, when referenced, must always start
|
||||
is referenced. The matrix.to URI, when referenced, MUST always start
|
||||
with `https://matrix.to/#/` followed by the identifier.
|
||||
|
||||
The `<additional arguments>` and the preceding question mark are
|
||||
optional and only apply in certain circumstances, documented below.
|
||||
OPTIONAL and only apply in certain circumstances, documented below.
|
||||
|
||||
Clients should not rely on matrix.to URIs falling back to a web server
|
||||
if accessed and instead should perform some sort of action within the
|
||||
Clients SHOULD NOT rely on matrix.to URIs falling back to a web server
|
||||
if accessed and instead SHOULD perform some sort of action within the
|
||||
client. For example, if the user were to click on a matrix.to URI for a
|
||||
room alias, the client may open a view for the user to participate in
|
||||
room alias, the client MAY open a view for the user to participate in
|
||||
the room.
|
||||
|
||||
The components of the matrix.to URI (`<identifier>` and
|
||||
`<extra parameter>`) MUST be percent-encoded as per RFC 3986.
|
||||
Failure to do so will result in downstream software misinterpreting
|
||||
the links as invalid/not turning them into clickable links in UI.
|
||||
|
||||
Examples of matrix.to URIs are:
|
||||
|
||||
|
|
|
|||
118
content/changelog/v1.19.md
Normal file
118
content/changelog/v1.19.md
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
---
|
||||
title: v1.19 Changelog
|
||||
linkTitle: v1.19
|
||||
type: docs
|
||||
layout: changelog
|
||||
outputs:
|
||||
- html
|
||||
- checklist
|
||||
date: 2026-07-08
|
||||
---
|
||||
|
||||
## Client-Server API
|
||||
|
||||
**New Endpoints**
|
||||
|
||||
- Add `GET /_matrix/client/v1/mutual_rooms`, as per [MSC2666](https://github.com/matrix-org/matrix-spec-proposals/pull/2666). ([#2367](https://github.com/matrix-org/matrix-spec/issues/2367))
|
||||
|
||||
**Backwards Compatible Changes**
|
||||
|
||||
- Specify `unsigned.replaces_state` in client-formatted events. Contributed by @nexy7574. ([#2345](https://github.com/matrix-org/matrix-spec/issues/2345), [#2403](https://github.com/matrix-org/matrix-spec/issues/2403))
|
||||
- Specify `m.key_backup` account data, as per [MSC4287](https://github.com/matrix-org/matrix-spec-proposals/pull/4287). ([#2354](https://github.com/matrix-org/matrix-spec/issues/2354))
|
||||
- The room directory now returns rooms in a server-defined order rather than largest first, as per [MSC4423](https://github.com/matrix-org/matrix-spec-proposals/pull/4423). ([#2392](https://github.com/matrix-org/matrix-spec/issues/2392))
|
||||
- Add support for image packs (`m.room.image_pack` and `m.image_pack.rooms`), allowing custom emoticons and stickers to be organised into packs and shared between users, as per [MSC2545](https://github.com/matrix-org/matrix-spec-proposals/pull/2545). ([#2397](https://github.com/matrix-org/matrix-spec/issues/2397))
|
||||
- Specify encrypted history sharing, as per [MSC4268](https://github.com/matrix-org/matrix-spec-proposals/pull/4268). ([#2399](https://github.com/matrix-org/matrix-spec/issues/2399))
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Clarify SAS commitment calculation for `m.key.verification.accept` messages. ([#2344](https://github.com/matrix-org/matrix-spec/issues/2344))
|
||||
- Clarify formats of string types. ([#2347](https://github.com/matrix-org/matrix-spec/issues/2347), [#2349](https://github.com/matrix-org/matrix-spec/issues/2349), [#2358](https://github.com/matrix-org/matrix-spec/issues/2358), [#2359](https://github.com/matrix-org/matrix-spec/issues/2359), [#2370](https://github.com/matrix-org/matrix-spec/issues/2370), [#2374](https://github.com/matrix-org/matrix-spec/issues/2374), [#2375](https://github.com/matrix-org/matrix-spec/issues/2375), [#2376](https://github.com/matrix-org/matrix-spec/issues/2376))
|
||||
- Restore alphabetical order of common error codes. ([#2348](https://github.com/matrix-org/matrix-spec/issues/2348))
|
||||
- Fix various typos throughout the specification. ([#2351](https://github.com/matrix-org/matrix-spec/issues/2351), [#2389](https://github.com/matrix-org/matrix-spec/issues/2389))
|
||||
- Clarify how to find `via` parameter when following room upgrades. ([#2352](https://github.com/matrix-org/matrix-spec/issues/2352))
|
||||
- Clarify that room messages can be encrypted. ([#2371](https://github.com/matrix-org/matrix-spec/issues/2371))
|
||||
- Clarify how to paginate messages using the pagination tokens returned by `GET /rooms/{roomId}/context/{eventId}`. ([#2372](https://github.com/matrix-org/matrix-spec/issues/2372))
|
||||
- Clarify allowed characters in `mxc://` URIs. ([#2377](https://github.com/matrix-org/matrix-spec/issues/2377))
|
||||
- Add link to RFC 9700 OAuth 2.0 Best Current Practices. ([#2379](https://github.com/matrix-org/matrix-spec/issues/2379))
|
||||
- Add links from the Client-Server spec to the Olm message definitions. ([#2381](https://github.com/matrix-org/matrix-spec/issues/2381))
|
||||
- Disambiguate placeholder descriptions in OlmPayload example. ([#2382](https://github.com/matrix-org/matrix-spec/issues/2382))
|
||||
- Replace "Olm message" with "event encrypted using Olm" where not referring to the Olm message format. ([#2383](https://github.com/matrix-org/matrix-spec/issues/2383))
|
||||
- Removed unused components in OpenAPI definitions. ([#2386](https://github.com/matrix-org/matrix-spec/issues/2386))
|
||||
- Clarify definitions of `EncryptedFile` structure. ([#2398](https://github.com/matrix-org/matrix-spec/issues/2398))
|
||||
|
||||
|
||||
## Server-Server API
|
||||
|
||||
**Backwards Compatible Changes**
|
||||
|
||||
- The room directory now returns rooms in a server-defined order rather than largest first, as per [MSC4423](https://github.com/matrix-org/matrix-spec-proposals/pull/4423). ([#2392](https://github.com/matrix-org/matrix-spec/issues/2392))
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Clarify the behaviour and response format of `GET /_matrix/federation/v1/query/profile`. ([#2326](https://github.com/matrix-org/matrix-spec/issues/2326))
|
||||
- Clarify that server ACLs are case-insensitive, as per [MSC4436](https://github.com/matrix-org/matrix-spec-proposals/pull/4436). ([#2334](https://github.com/matrix-org/matrix-spec/issues/2334))
|
||||
- Clarify how multiple signatures should be handled during signature verification. Contributed by @nexy7574. ([#2341](https://github.com/matrix-org/matrix-spec/issues/2341))
|
||||
- Fix various typos throughout the specification. ([#2351](https://github.com/matrix-org/matrix-spec/issues/2351))
|
||||
- Clarify that policy servers might share a name with event origins, and that servers should avoid overwriting/discarding signatures for the event origin when getting a policy server signature. ([#2385](https://github.com/matrix-org/matrix-spec/issues/2385))
|
||||
|
||||
|
||||
## Application Service API
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Fix various typos throughout the specification. ([#2351](https://github.com/matrix-org/matrix-spec/issues/2351))
|
||||
|
||||
|
||||
## Identity Service API
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Fix various typos throughout the specification. ([#2401](https://github.com/matrix-org/matrix-spec/issues/2401))
|
||||
|
||||
|
||||
## Push Gateway API
|
||||
|
||||
No significant changes.
|
||||
|
||||
|
||||
## Room Versions
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Fix various typos throughout the specification. ([#2351](https://github.com/matrix-org/matrix-spec/issues/2351), [#2401](https://github.com/matrix-org/matrix-spec/issues/2401))
|
||||
|
||||
|
||||
## Olm & Megolm
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Update links to Olm in the Megolm section to point to the Matrix spec. ([#2361](https://github.com/matrix-org/matrix-spec/issues/2361))
|
||||
- Fix various typos throughout the specification. ([#2369](https://github.com/matrix-org/matrix-spec/issues/2369))
|
||||
- Update link from whispersystems.org to signal.org in the olm documentation. ([#2387](https://github.com/matrix-org/matrix-spec/issues/2387))
|
||||
|
||||
|
||||
## Appendices
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Update the canonical JSON grammar with case sensitive strings and ABNF builtins to be easier to understand. ([#2368](https://github.com/matrix-org/matrix-spec/issues/2368))
|
||||
- Fix various typos throughout the specification. ([#2369](https://github.com/matrix-org/matrix-spec/issues/2369))
|
||||
- Clarify matrix.to RFC 3986 percent encoding requirements. Contributed by @HarHarLinks. ([#2395](https://github.com/matrix-org/matrix-spec/issues/2395))
|
||||
- Add specification of URL-safe unpadded Base64. ([#2398](https://github.com/matrix-org/matrix-spec/issues/2398))
|
||||
|
||||
|
||||
## Internal Changes/Tooling
|
||||
|
||||
**Backwards Compatible Changes**
|
||||
|
||||
- Add page search widget. ([#2331](https://github.com/matrix-org/matrix-spec/issues/2331))
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Update and fix GitHub Actions. ([#2343](https://github.com/matrix-org/matrix-spec/issues/2343), [#2369](https://github.com/matrix-org/matrix-spec/issues/2369))
|
||||
- Upgrade Docsy theme to v0.14.3. ([#2346](https://github.com/matrix-org/matrix-spec/issues/2346))
|
||||
- Configure a new changelog section for the Olm & Megolm specs. ([#2364](https://github.com/matrix-org/matrix-spec/issues/2364))
|
||||
- Clarify use of UK vs US English in documentation style doc. ([#2366](https://github.com/matrix-org/matrix-spec/issues/2366))
|
||||
- Ignore typos in copyright statements. ([#2373](https://github.com/matrix-org/matrix-spec/issues/2373))
|
||||
- Update CODEOWNERS file. ([#2400](https://github.com/matrix-org/matrix-spec/issues/2400))
|
||||
- Minor fixes to `check-newsfragments` CI script. ([#2402](https://github.com/matrix-org/matrix-spec/issues/2402))
|
||||
|
|
@ -429,6 +429,7 @@ Instead, they can be reached via HTTPS on the [server name](/appendices/#server-
|
|||
|
||||
Servers hosting the `.well-known` JSON file SHOULD offer CORS headers,
|
||||
as per the [CORS](#web-browser-clients) section in this specification.
|
||||
{{% added-in v="1.20" %}} Servers SHOULD also ensure that each 30x redirect, if any, offers such CORS headers.
|
||||
{{% /boxes/note %}}
|
||||
|
||||
The flow for auto-discovery is as follows:
|
||||
|
|
@ -437,6 +438,7 @@ The flow for auto-discovery is as follows:
|
|||
Matrix ID at the first colon.
|
||||
2. Extract the hostname from the server name as described by the [grammar](/appendices/#server-name).
|
||||
3. Make a GET request to `https://hostname/.well-known/matrix/client`.
|
||||
{{% added-in v="1.20" %}} 30x redirects SHOULD be followed, however redirection loops should be avoided.
|
||||
1. If the returned status code is 404, then `IGNORE`.
|
||||
2. If the returned status code is not 200, or the response body is
|
||||
empty, then `FAIL_PROMPT`.
|
||||
|
|
@ -3654,7 +3656,7 @@ The actual aggregation format depends on the `rel_type`.
|
|||
|
||||
When an event is served to the client through the APIs listed below, a
|
||||
`m.relations` property is included under `unsigned` if the event has child
|
||||
events which can be aggregated and point at it. The `m.relations` property is
|
||||
events which can be aggregated. The `m.relations` property is
|
||||
an object keyed by `rel_type` and value being the type-specific aggregated
|
||||
format for that `rel_type`. This `m.relations` property is known as a "bundled
|
||||
aggregation".
|
||||
|
|
|
|||
|
|
@ -1762,12 +1762,9 @@ Messages with type 1 can only be decrypted with an existing session. If
|
|||
there is no matching session, the client must treat this as an invalid
|
||||
message.
|
||||
|
||||
The plaintext payload is of the form:
|
||||
The plaintext corresponding to the "Cipher-Text" in an an [Olm message](/olm-megolm/olm/#normal-messages) is of the form:
|
||||
|
||||
{{% definition path="api/client-server/definitions/olm_payload" %}}
|
||||
|
||||
The type and content of the plaintext message event are given in the
|
||||
payload.
|
||||
{{% definition path="api/client-server/definitions/olm_plaintext" %}}
|
||||
|
||||
If a client has multiple sessions established with another device, it
|
||||
should use the session from which it last received and successfully
|
||||
|
|
@ -1940,7 +1937,7 @@ As of `v1.3`, the `sender_key` and `device_id` keys are **deprecated**. They
|
|||
SHOULD continue to be sent, however they MUST NOT be used to verify the
|
||||
message's source.
|
||||
|
||||
Clients MUST NOT store or lookup sessions using the `sender_key` or `device_id`.
|
||||
Clients MUST NOT store or look up sessions using the `sender_key` or `device_id`.
|
||||
|
||||
In a future version of the specification the keys can be removed completely,
|
||||
including for sending new messages.
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@
|
|||
|
||||
#### Server behaviour
|
||||
|
||||
The server may decide that the response to this endpoint is too large, and only return a
|
||||
subset of the results. In this case, the server should populate the optional field `next_batch`
|
||||
with an [opaque identifier](/appendices/#opaque-identifiers). The client may then supply
|
||||
The server MAY decide that the response to this endpoint is too large, and only return a
|
||||
subset of the results. In this case, the server populates the optional field `next_batch`
|
||||
with an [opaque identifier](/appendices/#opaque-identifiers). The client can then supply
|
||||
the identifier as the `from` query parameter in a subsequent request, along with the original
|
||||
`user_id`, to fetch the next batch of responses. This will continue until the server no longer
|
||||
inserts `next_batch`, meaning there are no further results.
|
||||
|
|
|
|||
|
|
@ -191,7 +191,7 @@ Note that, as in the example above, child events of the `latest_event` should
|
|||
themselves be aggregated and included under `m.relations` for that event. The
|
||||
server should be careful to avoid loops, though loops are not currently
|
||||
possible due to `m.thread` not being permitted to target an event with an
|
||||
`m.relates_to` property.
|
||||
`m.relates_to` property with a `rel_type`.
|
||||
|
||||
`count` is simply the number of events using `m.thread` as a `rel_type` pointing to the target event.
|
||||
It does not include events sent by [ignored users](#ignoring-users).
|
||||
|
|
|
|||
|
|
@ -257,8 +257,8 @@ consists of the following key-value pairs:
|
|||
|
||||
**Name**|**Tag**|**Type**|**Meaning**
|
||||
:-----:|:-----:|:-----:|:-----:
|
||||
Message-Index|0x08|Integer|The index of the ratchet, i
|
||||
Cipher-Text|0x12|String|The cipher-text, Xi, of the message
|
||||
Message-Index|0x08|Integer|The index of the ratchet, \(i\).
|
||||
Cipher-Text|0x12|String|The cipher-text of the message, \(X_i\).
|
||||
|
||||
Within the payload, integers are encoded using a variable length encoding. Each
|
||||
integer is encoded as a sequence of bytes with the high bit set followed by a
|
||||
|
|
|
|||
|
|
@ -17,12 +17,12 @@ side of an \(=\) it means that the output is split.
|
|||
When this document uses \(\operatorname{ECDH}\left(K_A,K_B\right)\) it means
|
||||
that each party computes a Diffie-Hellman agreement using their private key
|
||||
and the remote party's public key.
|
||||
So party \(A\) computes \(\operatorname{ECDH}\left(K_B^{public},K_A^{private}\right)\)
|
||||
and party \(B\) computes \(\operatorname{ECDH}\left(K_A^{public},K_B^{private}\right)\).
|
||||
So party \(A\) computes \(\operatorname{ECDH}\left(K_B^{\mathit{public}},K_A^{\mathit{private}}\right)\)
|
||||
and party \(B\) computes \(\operatorname{ECDH}\left(K_A^{\mathit{public}},K_B^{\mathit{private}}\right)\).
|
||||
|
||||
Where this document uses \(\operatorname{HKDF}\left(salt,IKM,info,L\right)\) it
|
||||
Where this document uses \(\operatorname{HKDF}\left(\mathit{salt},\mathit{IKM},\mathit{info},L\right)\) it
|
||||
refers to the [HMAC-based key derivation function][] with a salt value of
|
||||
\(salt\), input key material of \(IKM\), context string \(info\),
|
||||
\(\mathit{salt}\), input key material of \(\mathit{IKM}\), context string \(\mathit{info}\),
|
||||
and output keying material length of \(L\) bytes.
|
||||
|
||||
## The Olm Algorithm
|
||||
|
|
@ -226,9 +226,9 @@ significant bits are stored in the first byte.
|
|||
|
||||
**Name**|**Tag**|**Type**|**Meaning**
|
||||
:-----:|:-----:|:-----:|:-----:
|
||||
Ratchet-Key|0x0A|String|The public part of the ratchet key, Ti, of the message
|
||||
Chain-Index|0x10|Integer|The chain index, j, of the message
|
||||
Cipher-Text|0x22|String|The cipher-text, Xi, j, of the message
|
||||
Ratchet-Key|0x0A|String|The public part of the ratchet key of the message, \(T_i\).
|
||||
Chain-Index|0x10|Integer|The chain index of the message, \(j\).
|
||||
Cipher-Text|0x22|String|The cipher-text of the message, \(X_{i,j}\).
|
||||
|
||||
The length of the MAC is determined by the authenticated encryption algorithm
|
||||
being used. (Olm version 1 uses [HMAC-SHA-256][], truncated to 8 bytes). The
|
||||
|
|
@ -251,9 +251,9 @@ The payload uses the same key-value format as for normal messages.
|
|||
|
||||
**Name**|**Tag**|**Type**|**Meaning**
|
||||
:-----:|:-----:|:-----:|:-----:
|
||||
One-Time-Key|0x0A|String|The public part of Bob's single-use key, Eb.
|
||||
Base-Key|0x12|String|The public part of Alice's single-use key, Ea.
|
||||
Identity-Key|0x1A|String|The public part of Alice's identity key, Ia.
|
||||
One-Time-Key|0x0A|String|The public part of Bob's single-use key, \(E_B\).
|
||||
Base-Key|0x12|String|The public part of Alice's single-use key, \(E_A\).
|
||||
Identity-Key|0x1A|String|The public part of Alice's identity key, \(I_A\).
|
||||
Message|0x22|String|An embedded Olm message with its own version and MAC.
|
||||
|
||||
## Olm Authenticated Encryption
|
||||
|
|
@ -268,13 +268,13 @@ message key using [HKDF-SHA-256][] using the default salt and an info of
|
|||
|
||||
\[
|
||||
\begin{aligned}
|
||||
AES\_KEY_{i,j}\;\parallel\;HMAC\_KEY_{i,j}\;\parallel\;AES\_IV_{i,j}
|
||||
\mathit{AES\_KEY}_{i,j}\;\parallel\;\mathit{HMAC\_KEY}_{i,j}\;\parallel\;\mathit{AES\_IV}_{i,j}
|
||||
&= \operatorname{HKDF}\left(0,M_{i,j},\text{``OLM\_KEYS"},80\right)
|
||||
\end{aligned}
|
||||
\]
|
||||
|
||||
The plain-text is encrypted with AES-256, using the key \(AES\_KEY_{i,j}\)
|
||||
and the IV \(AES\_IV_{i,j}\) to give the cipher-text, \(X_{i,j}\).
|
||||
The plain-text is encrypted with AES-256, using the key \(\mathit{AES\_KEY}_{i,j}\)
|
||||
and the IV \(\mathit{AES\_IV}_{i,j}\) to give the cipher-text, \(X_{i,j}\).
|
||||
|
||||
Then the entire message (including the Version Byte and all Payload Bytes) are
|
||||
passed through [HMAC-SHA-256][]. The first 8 bytes of the MAC are appended to the message.
|
||||
|
|
|
|||
|
|
@ -20,6 +20,8 @@ properties:
|
|||
description: |-
|
||||
The ID of the user the device belongs to. Must match the user ID used
|
||||
when logging in.
|
||||
format: mx-user-id
|
||||
pattern: "^@"
|
||||
example: "@alice:example.com"
|
||||
device_id:
|
||||
type: string
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@
|
|||
|
||||
|
||||
type: object
|
||||
title: OlmPayload
|
||||
title: OlmPlaintext
|
||||
description: |-
|
||||
The plaintext payload of an event encrypted using Olm.
|
||||
The plaintext of an event encrypted using Olm.
|
||||
properties:
|
||||
type:
|
||||
type: string
|
||||
|
|
@ -27,9 +27,13 @@ properties:
|
|||
sender:
|
||||
type: string
|
||||
description: The user ID of the event sender.
|
||||
format: mx-user-id
|
||||
pattern: "^@"
|
||||
recipient:
|
||||
type: string
|
||||
description: The user ID of the intended event recipient.
|
||||
format: mx-user-id
|
||||
pattern: "^@"
|
||||
recipient_keys:
|
||||
description: The recipient's signing keys of the encrypted event.
|
||||
$ref: "#/components/schemas/SigningKeys"
|
||||
|
|
@ -54,7 +54,8 @@ properties:
|
|||
example: true
|
||||
avatar_url:
|
||||
type: string
|
||||
format: uri
|
||||
format: mx-mxc-uri
|
||||
pattern: "^mxc:\\/\\/"
|
||||
description: The URL for the room's avatar, if one is set.
|
||||
example: "mxc://example.org/abcdef"
|
||||
join_rule:
|
||||
|
|
|
|||
|
|
@ -335,7 +335,8 @@ paths:
|
|||
description: The display name of the user this object is representing.
|
||||
avatar_url:
|
||||
type: string
|
||||
format: uri
|
||||
format: mx-mxc-uri
|
||||
pattern: "^mxc:\\/\\/"
|
||||
description: The avatar of the user this object is representing, as an [`mxc://`
|
||||
URI](/client-server-api/#matrix-content-mxc-uris).
|
||||
description: A map from user ID to a RoomMember object.
|
||||
|
|
|
|||
|
|
@ -237,7 +237,8 @@ paths:
|
|||
title: Display name
|
||||
avatar_url:
|
||||
type: string
|
||||
format: uri
|
||||
format: mx-mxc-uri
|
||||
pattern: "^mxc:\\/\\/"
|
||||
title: Avatar Url
|
||||
events_before:
|
||||
type: array
|
||||
|
|
|
|||
|
|
@ -89,7 +89,8 @@ paths:
|
|||
description: The display name of the user, if one exists.
|
||||
avatar_url:
|
||||
type: string
|
||||
format: uri
|
||||
format: mx-mxc-uri
|
||||
pattern: "^mxc:\\/\\/"
|
||||
example: mxc://bar.com/foo
|
||||
description: The avatar url, as an [`mxc://`
|
||||
URI](/client-server-api/#matrix-content-mxc-uris),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
# Copyright 2018 New Vector Ltd
|
||||
# Copyright 2026 Hagen Echzell
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
|
|
@ -20,7 +21,11 @@ paths:
|
|||
get:
|
||||
summary: Gets Matrix server discovery information about the domain.
|
||||
description: |-
|
||||
Gets discovery information about the domain. The file may include
|
||||
Gets discovery information about the domain.
|
||||
{{% added-in v="1.20" %}} Clients SHOULD follow 30x redirects, carefully
|
||||
avoiding redirect loops, and use normal X.509 certificate validation.
|
||||
|
||||
The file may include
|
||||
additional keys, which MUST follow the Java package naming convention,
|
||||
e.g. `com.example.myapp.property`. This ensures property names are
|
||||
suitably namespaced for each application and reduces the risk of
|
||||
|
|
|
|||
|
|
@ -172,6 +172,8 @@ paths:
|
|||
example: John Doe
|
||||
avatar_url:
|
||||
type: string
|
||||
format: mx-mxc-uri
|
||||
pattern: "^mxc:\\/\\/"
|
||||
description: |-
|
||||
The avatar URL for the user's avatar. MUST either be omitted or set to
|
||||
`null` if the user does not have an avatar set.
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@
|
|||
"properties": {
|
||||
"avatar_url": {
|
||||
"type": "string",
|
||||
"format": "mx-mxc-uri",
|
||||
"pattern": "^mxc:\\/\\/",
|
||||
"description": "The current avatar URL for this user, if any."
|
||||
},
|
||||
"displayname": {
|
||||
|
|
|
|||
|
|
@ -53,7 +53,8 @@ properties:
|
|||
avatar_url:
|
||||
description: 'The avatar URL for this user, if any.'
|
||||
type: string
|
||||
format: uri
|
||||
format: mx-mxc-uri
|
||||
pattern: "^mxc:\\/\\/"
|
||||
displayname:
|
||||
description: 'The display name for this user, if any.'
|
||||
type:
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ description: |-
|
|||
[Olm](/client-server-api/#molmv1curve25519-aes-sha2).
|
||||
|
||||
The `sender_device_keys` property in the [Olm
|
||||
plaintext](/client-server-api/#definition-olmpayload) MUST be
|
||||
plaintext](/client-server-api/#definition-olmplaintext) MUST be
|
||||
populated. Recipients SHOULD ignore `m.room_key_bundle` messages which omit
|
||||
them.
|
||||
properties:
|
||||
|
|
|
|||
Loading…
Reference in a new issue