5076 Commits

Author SHA1 Message Date
Jonas Platte
1af28486cc events: Implement Default for EmptyStateKey 2023-03-10 12:33:55 +01:00
Jonas Platte
4049969d8c events: Implement Default for InitialStateEvent
… where C has an empty state key and implements Default itself.
2023-03-10 12:33:55 +01:00
Kévin Commaille
d56386a636 events: Add link to definition of m.room.encryption recommended defaults 2023-03-10 11:41:53 +01:00
Kévin Commaille
8a3bccaef1 client-api: Fix type of rank in search::search_events::v3::SearchResult
It is defined in the spec as a number, not an integer.
2023-03-10 11:19:32 +01:00
Kévin Commaille
0596e46045 events: Add method to construct RoomEncryptionEventContent with the recommended defaults 2023-03-10 11:13:37 +01:00
Jonas Platte
25be562036
Update trybuild output 2023-03-10 10:59:52 +01:00
Jonas Platte
4eb5033dd0
events: Add utility functions for InitialStateEvent 2023-03-09 18:58:56 +01:00
kegsay
543c03f8f2
client-api: Use the right EDU types in sliding sync 2023-03-08 13:28:53 +01:00
Jonas Platte
01acabe8a6
identifiers: Implement AsRef<[u8]> for owned ID types 2023-03-07 11:18:14 +01:00
Jonas Platte
5aa0f29935
identifiers: Add AsRef<[u8]> impls for ID types 2023-03-07 11:06:34 +01:00
kegsay
471c46273a
client-api: Fix typo in sliding sync extensions
It has always been `receipts` not `receipt`.
2023-03-06 18:42:03 +01:00
Kévin Commaille
44daf84e46 client-api: Allow to convert AnyPushRule(Ref) to PushRule 2023-03-02 11:30:48 +01:00
Kévin Commaille
ba296ec466 push: Add method to remove a user-defined push rule from a Ruleset 2023-03-02 11:30:48 +01:00
Kévin Commaille
a78d2a7dcf push: Add method to update server-default push rules 2023-03-02 11:30:48 +01:00
Kévin Commaille
c44e0b5e5a push: Fix ordering of docs 2023-03-02 11:30:48 +01:00
gnieto
7565588be7
signatures: Prevent accepting events without at least one valid signature
`verify_event` has been changed recently to be more aligned with the
spec. In the previous algorithm, it returned an error if the event was
not signed by at least one of the required entities.

The new algortihm is iterating over all the signtures for the required
entities *and* skipping unknown algorithms. If an event is signed only
by unkonwn algorithms, the event would be accepted and not verifications
will happen. In order to prevent that, we check that, at least, a single
key is checked. This covers the 2nd point in: https://spec.matrix.org/v1.6/appendices/#checking-for-a-signature

A few more test cases were added:

- The event is properly signed, but key map contains a key with an
  unknown algorithm. Under this circumstances, the event should be
  allowed.
- An event signed by multiple keys for an entity, should verify all
  those signatures
- An event signed by a single key with an unkown algorithm by the
  required entity, should fail
2023-03-02 09:34:57 +00:00
Jason Volk
87237bf100 signatures: Comply with the specified signature checking algorithm.
Based on research https://github.com/ruma/ruma/pull/1491#issuecomment-1445042510 by @zecakeh
2023-03-01 22:25:06 +01:00
Jason Volk
920a412da1 signatures: Skip keys which don't split so other keys can be used instead. 2023-03-01 22:25:06 +01:00
Ivan Enderlin
2edfe5bc5f
client-api: Add missing sync::sync_events::v4::Response::txn_id field
In the [specification], if the request contains a `txn_id` value, the response
must echo the same `txn_id`. Unfortunately, this field is missing from
`sync::sync_events::v4::Response::txn_id`. This patch addresses that problem by
adding the missing field.

[specification]: 89cf0341b5/proposals/3575-sync.md
2023-03-01 09:02:53 +00:00
Jason Volk
bcb97b139d
signatures: Allow additional key version-string characters in compat mode
This complies with the published specification by default, with optional compatibility for additional federation keys in use.

Co-authored-by: Jonathan de Jong <jonathan@automatia.nl>
2023-03-01 09:54:38 +01:00
Jonas Platte
f9a40e137e
events: Remove reaction bundling
It was removed from the MSC.
https://github.com/matrix-org/matrix-spec-proposals/pull/2677
2023-02-28 20:01:04 +01:00
Kévin Commaille
57083ef3f8 ci: Unpin nightly version 2023-02-28 18:44:57 +01:00
Kévin Commaille
30c5326c20 ci: Bump clap 2023-02-28 18:44:57 +01:00
Kévin Commaille
cc47a7268b events: Updates location event types
Even if the MSC hasn't been updated, refactor a bit to match other
extensible events types.
2023-02-27 20:28:38 +01:00
Kévin Commaille
61c23491c6 events: Update types according to changes in MSC3381 2023-02-27 20:28:38 +01:00
Kévin Commaille
fbf99fcc53 events: Update types according to changes in MSC3554 2023-02-27 20:28:38 +01:00
Kévin Commaille
08aa2ca04c events: Update types according to changes in MSC3245 2023-02-27 20:28:38 +01:00
Kévin Commaille
41be6ac18b events: Update types according to MSC3927 and changes in MSC3246 2023-02-27 20:28:38 +01:00
Kévin Commaille
60f754322e events: Update types according to changes in MSC3553 2023-02-27 20:28:38 +01:00
Kévin Commaille
5985bbe803 events: Update types according to changes in MSC3552 2023-02-27 20:28:38 +01:00
Kévin Commaille
2de1cecec6 events: Update types according to changes in MSC3551 2023-02-27 20:28:38 +01:00
Kévin Commaille
8477efb2ef events: Update types according to changes in MSCs 1767, 3954, 3955 and 3956 2023-02-27 20:28:38 +01:00
Kévin Commaille
ba237a9cfd client-api: Add convenience constructors for enabling lazy-loading in filters 2023-02-27 20:20:07 +01:00
Kévin Commaille
a435a83cdd ci: Pin rust nightly for clippy
To work around lint issue with clap
2023-02-27 20:10:36 +01:00
Kévin Commaille
e490c8893d events: Remove the serde alias for the blurhash field in events
Some clients send both the stable and unstable version so deserialization fails.
2023-02-27 17:04:39 +01:00
Kévin Commaille
f29bbebf08 events: Make the json_object macro syntax easier to read 2023-02-23 19:31:08 +01:00
Kévin Commaille
32901da35f events: Reorganize tests
Move tests to the proper files, streamline test names and remove
duplicates.
2023-02-23 19:31:08 +01:00
Jonas Platte
54d27f1083
events: Implement {From,Into}Iterator for ReceiptEventContent 2023-02-22 17:32:40 +01:00
Jonas Platte
53f9cf52ed
events: Implement {From,Into}Iterator for DirectEventContent 2023-02-22 17:32:39 +01:00
Jonas Platte
45857ed6fa
appservice: Implement useful traits for ReceiptContent 2023-02-22 17:32:39 +01:00
Jonas Platte
c2d8b4f4b9
events: Update changelog 2023-02-22 14:41:02 +01:00
Jonas Platte
11d5020565 events: Don't require threads to contain m.in_reply_to 2023-02-22 14:38:23 +01:00
Jonas Platte
145356217d
Release ruma-client-api 0.16.2 2023-02-16 19:37:28 +01:00
Jonas Platte
b50ef4864c
client-api: Don't serialize None as null in report_content 2023-02-16 19:25:07 +01:00
Kévin Commaille
7a84fb2d3f readme: Advertise support for Matrix 1.6 2023-02-15 13:39:56 +01:00
Kévin Commaille
361b4d2ab1
Release ruma 0.8.2 2023-02-15 13:22:51 +01:00
Kévin Commaille
8cd72fa892
Release ruma-state-res 0.9.1 2023-02-15 13:12:49 +01:00
Kévin Commaille
8f74ec4b1a
Release ruma-signatures 0.13.1 2023-02-15 13:08:31 +01:00
Kévin Commaille
8b0608b6af
Release ruma-server-util 0.1.1 2023-02-15 13:06:29 +01:00
Kévin Commaille
15e8dca7f7
Release ruma-push-gateway-api 0.7.1 2023-02-15 13:04:55 +01:00