Matthias Ahouansou
9087da91db
fix(keys): only use keys valid at the time of PDU or transaction, and actually refresh keys
...
Previously, we only fetched keys once, only requesting them again if we have any missing, allowing for ancient keys to be used to sign PDUs and transactions
Now we refresh keys that either have or are about to expire, preventing attacks that make use of leaked private keys of a homeserver
We also ensure that when validating PDUs or transactions, that they are valid at the origin_server_ts or time of us receiving the transaction respectfully
As to not break event authorization for old rooms, we need to keep old keys around
We move verify_keys which we no longer see in direct requests to the origin to old_verify_keys
We keep old_verify_keys indefinitely as mentioned above, as to not break event authorization (at least until a future MSC addresses this)
Original patch by Matthias. Benjamin just rebased it onto grapevine and
fixed clippy/rustc warnings.
Co-authored-by: Benjamin Lee <benjamin@computer.surgery>
2024-06-12 11:10:50 -07:00
Charles Hall
8f0fdfb2f2
upgrade all cargo dependencies
...
Unfortunately we need to pull tracing-opentelemetry from git because
there hasn't been a release including the dependency bump on the other
opentelemetry crates.
2024-05-26 19:47:00 -07:00
Charles Hall
c9859a9b2d
enable assigning_clones lint
2024-05-26 19:47:00 -07:00
Charles Hall
a60a9551e1
Revert "Merge branch 'check-if-membership-is-case-endpoints' into 'next'"
...
This reverts commit 7ace9b0dff , reversing
changes made to 624654a88b .
2024-05-21 16:34:26 -07:00
Charles Hall
f8961d5578
rename Ruma to Ar
...
This follows the pattern of the previous commit.
2024-05-19 19:04:20 -07:00
Charles Hall
7ea98dac72
rename RumaResponse to Ra
...
It's very commonly used so having a short name is worthwhile, I think.
2024-05-19 19:03:45 -07:00
Charles Hall
230ebd3884
don't automatically wrap in RumaResponse
...
This allows us to use the `ruma_route` convenience function even when we
need to add our own hacks into the responses, thus making us less
reliant on Ruma.
2024-05-18 18:31:36 -07:00
Charles Hall
0afc1d2f50
change rustfmt configuration
...
This change is fully automated, except the `rustfmt.toml` changes and
a few clippy directives to allow specific functions with too many lines
because they are longer now.
2024-05-16 19:11:40 -07:00
Charles Hall
1911ad34d9
stop putting comments and code on the same line
2024-05-16 15:22:35 -07:00
Charles Hall
f855bd09d1
enable unused_async lint
...
This also caused a "new" `unnecessary_wraps` lint to fire too, so that
got fixed too.
2024-05-14 20:01:25 -07:00
Charles Hall
a4ff32667e
enable unnested_or_patterns lint
2024-05-14 20:01:25 -07:00
Charles Hall
baab928281
enable too_many_lines lint
...
And just disable it everywhere it fires, I know.
2024-05-14 20:01:24 -07:00
Charles Hall
96e1877639
enable redundant_closure_for_method_calls lint
2024-05-14 20:01:24 -07:00
Charles Hall
9606f59141
enable manual_let_else lint
2024-05-14 20:01:23 -07:00
Charles Hall
623824dc0c
enable if_not_else lint
2024-05-14 19:59:40 -07:00
Charles Hall
052f3088e9
enable let_underscore_must_use lint
2024-05-12 18:51:26 -07:00
Charles Hall
a78bf8f50b
enable unused_lifetimes lint
2024-05-12 18:51:26 -07:00
Charles Hall
d748544f0e
enable unreachable_pub lint
...
This causes some other lints to start firing too (which is good), but
I'm going to fix them in follow-up commits to keep things organized.
2024-05-12 18:51:26 -07:00
Matthias Ahouansou
74db555336
fix(membership): perform stricter checks when choosing an authorized user
2024-04-24 20:54:07 +01:00
Timo Kösters
7ace9b0dff
Merge branch 'check-if-membership-is-case-endpoints' into 'next'
...
feat(membership): check if user already has the membership that is requested to be set
See merge request famedly/conduit!622
2024-04-24 18:02:08 +00:00
Timo Kösters
624654a88b
Merge branch 'fix-unrejectable-invites' into 'next'
...
Fix unrejectable invites
Closes #418
See merge request famedly/conduit!623
2024-04-24 18:01:48 +00:00
Matthias Ahouansou
9497713a79
fix(membership): check if server is in room to decide whether to do remote leaves
2024-04-06 14:10:11 +01:00
Matthias Ahouansou
fb4217486f
feat(membership): check if user already has the membership that is requested to be set
2024-04-05 10:21:44 +01:00
Matthias Ahouansou
0f6b771cdd
fix(membership): remove join_authorized_via_users_server field on state update
2024-04-03 22:46:47 +01:00
Matthias Ahouansou
becaad677f
refactor: use async-aware RwLocks and Mutexes where possible
2024-03-05 14:23:59 +00:00
Matthias Ahouansou
ace9637bc2
replace unwraps with expects
2024-02-23 19:39:30 +00:00
strawberry
a2ac491c54
bump ruma, add wrong room keys error code, tiny logging change
...
can't update ruma to very latest commit because of the weird JsOption thing for syncv4 that i can't wrap my head around how to use, not important anyways
Signed-off-by: strawberry <strawberry@pupbrain.dev>
2024-02-16 20:45:27 +00:00
Charles Hall
ab1fff2642
fix cargo clippy lints
2024-01-24 07:22:37 -08:00
Val Lorentz
98e81c6217
Log underlying error when rejecting sendjoin response
2023-12-03 19:38:09 +01:00
Timo Kösters
acfe381dd3
fix: threads get updated properly
...
Workaround for element web while waiting for https://github.com/matrix-org/matrix-js-sdk/pull/3635
2023-07-31 16:18:23 +02:00
Timo Kösters
fd1ccbd3ad
improvement: randomize server order for alias joins
2023-06-28 17:44:30 +02:00
Timo Kösters
be877ef719
Improve sync performance with more caching and wrapping things in Arcs to avoid copies
2023-06-27 13:15:11 +02:00
Timo Kösters
1ea27c4f97
fix: restricted room error is now FORBIDDEN
2023-06-08 20:49:42 +02:00
Kévin Commaille
f53ecaa97d
Bump Ruma
2023-03-18 15:03:56 +01:00
Timo Kösters
a1bd348977
fix: history visibility
2023-03-13 10:39:19 +01:00
Timo Kösters
4617ee2b6b
More logging for remote joins
2023-03-13 10:39:18 +01:00
Timo Kösters
7bdd9660aa
feat: ask for backfill
2023-03-13 10:39:17 +01:00
Nyaaori
7cc346bc18
feat: Implement membership ban/join/leave/invite reason support
2022-12-21 11:45:12 +01:00
Nyaaori
c86313d4fa
chore: code cleanup
...
https://rust-lang.github.io/rust-clippy/master/index.html#op_ref
https://rust-lang.github.io/rust-clippy/master/index.html#str_to_string
https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes
2022-12-21 10:42:12 +01:00
Timo Kösters
2a04c213f9
improvement: handle restricted joins locally
2022-12-18 09:44:46 +01:00
Jonas Platte
d39ce1401d
WIP: Upgrade Ruma
2022-12-16 11:57:32 +01:00
Timo Kösters
b9fd6127e2
fix: rejoining restricted rooms over federation
2022-11-30 22:30:55 +01:00
Timo Kösters
3b3c451c83
fix: unable to leave room
2022-11-21 19:50:48 +01:00
Timo Kösters
c063700255
fix: invite dendrite users
2022-11-09 21:14:17 +01:00
Timo Kösters
b1991c8f4f
Merge branch 'Nyaaori/rejoin-fix' into 'next'
...
Rejoin over federation if we are not participating
See merge request famedly/conduit!399
2022-10-15 09:56:55 +00:00
Nyaaori
e9697f13d6
Handle initiating restricted joins over federation
...
Allows Conduit users to join restricted rooms if we are not currently participating
2022-10-15 10:46:50 +02:00
Nyaaori
3b0aa23fdf
Rejoin room over federation if we are not participating in it; do not include invited users in participating servers calculation
2022-10-15 10:38:30 +02:00
Nyaaori
f430b87459
cargo clippy
2022-10-10 14:09:11 +02:00
Timo Kösters
6b131202b9
Bump ruma
2022-10-10 14:02:04 +02:00
Timo Kösters
1a7893dbbd
fix: update state_cache on join over federation
2022-10-10 14:02:03 +02:00