Commit Graph

1995 Commits

Author SHA1 Message Date
Jonas Platte 97731d1240 Add a test for register_event_handler 2021-09-08 23:34:05 +02:00
Jonas Platte e2432d476e Add Client::register_notification_handler
It had been planned but forgotten.
2021-09-08 23:34:05 +02:00
Jonas Platte 6e571c579d Allow chaining .register_event_handler() 2021-09-08 23:34:05 +02:00
Jonas Platte 8c499a63dc Add missing .awaits in event handler doctests 2021-09-08 23:34:01 +02:00
Jonas Platte ce0cb273bb Use matrix_sdk_common::executor::spawn instead of tokio::spawn 2021-09-08 21:08:23 +02:00
Jonas Platte 971cdf37f6 Fix doctest imports 2021-09-08 20:45:40 +02:00
Jonas Platte 699039f788 Better document event context argument restrictions 2021-09-08 20:40:26 +02:00
Jonas Platte c3e25bda1a Run event / notification handlers in separate async tasks
Prevents deadlocks when new handlers are registered from within an
existing handler.
2021-09-08 20:32:06 +02:00
Jonas Platte 606a57203e Add some documentation about how the event handler abstraction works 2021-09-08 20:29:09 +02:00
Jonas Platte 3c38b26770 Rewrap doc comments 2021-09-08 20:19:07 +02:00
Jonas Platte 67912f3768 Fix / improve event handler documentation 2021-09-08 19:23:19 +02:00
Jonas Platte bf8945430f Fix Copyright header 2021-09-08 19:23:03 +02:00
Jonas Platte cb33f26d5c Log room retrieval failure in Client::process_sync 2021-09-08 19:22:54 +02:00
Jonas Platte ddea1bdb9e Rewrap crate feature flag docs 2021-09-08 19:12:58 +02:00
Jonas Platte d348e77468 Remove extraneous space 2021-08-17 00:32:24 +02:00
Jonas Platte a5ff4fbef7 Simplify struct initializations by using Default::default 2021-08-17 00:32:23 +02:00
Jonas Platte cfa69e74f4 Delete unused file 2021-08-17 00:26:02 +02:00
Jonas Platte 36ceb66ba5 Remove prev_content compat hacks
This is now handled by Ruma.
2021-08-17 00:26:01 +02:00
Jonas Platte 2fdad12521 Rewrite event handler abstraction 2021-08-17 00:26:01 +02:00
Damir Jelić 623408913c Merge branch 'secret-sharing' 2021-08-13 20:38:31 +02:00
Damir Jelić 9bae87b0ac crypto: Fix some clippy warnings 2021-08-13 18:28:52 +02:00
Damir Jelić 00e11d33f1 crypto: Fix user-signing signature uploads 2021-08-13 18:28:52 +02:00
Damir Jelić 680f77beb9 crypto: Add the master key to the SAS MAC if we trust it 2021-08-13 18:28:52 +02:00
Damir Jelić 356506060c crypto: Remove private cross signing keys if we detect that they changed 2021-08-13 18:28:52 +02:00
Damir Jelić 4e9fe79619 crypto: Start remembering if an inbound group session has been backed up 2021-08-13 18:28:52 +02:00
Damir Jelić e4a9cf0bba crypto: Disallow re-sharing room keys with devices with changed curve keys 2021-08-13 18:28:52 +02:00
Damir Jelić f9de77a75d crypto: Make sure we request secrets only if the user became trusted 2021-08-13 18:28:52 +02:00
Damir Jelić 315e77ebf2 crypto: Add the users for key claiming to the outgoing requests
This makes sure that we immediately claim one-time keys after we
receive the sync changes instead of waiting for a room message to be
sent by the user.

Users may not send a message in a long time which would mean that we'll
likely never share secrets or forward room keys if a Olm session was
missing with the requester.
2021-08-13 18:28:52 +02:00
Damir Jelić da82fbab4f crypto: Connect the responding to secret request logic 2021-08-13 18:28:52 +02:00
Damir Jelić 4f46212d1a crypto: Add a method to manually verify our own user identity 2021-08-13 18:28:52 +02:00
Damir Jelić d4fe6f5133 crypto: Add methods to manually verify devices and users 2021-08-13 18:28:52 +02:00
Damir Jelić ee838087ca crypto: Add methods to export/import cross signing keys 2021-08-13 18:28:52 +02:00
Damir Jelić b540b8df62 crypto: Add a method to check the state of our private cross signing keys 2021-08-13 18:28:52 +02:00
Damir Jelić 1157594530 crypto: Add a method to check if a user identity is verified 2021-08-13 18:28:52 +02:00
Damir Jelić 8d7fe5e575 crypto: Add a method to check if our own device has been signed by our identity 2021-08-13 18:28:52 +02:00
Damir Jelić 0598bdebc7 crypto: Store our own device we receive from the server 2021-08-13 18:28:52 +02:00
Damir Jelić 7d851a10b5 crypto: Collect common verification stuff into a VerificationStore 2021-08-13 18:28:52 +02:00
Damir Jelić e401c87246 crypto: When we check the signature of a device use the DeviceKeys struct 2021-08-13 18:28:52 +02:00
Damir Jelić 2cf6ad21d3 crypto: Refactor and split out the gossiping logic 2021-08-13 18:28:52 +02:00
Damir Jelić adca302dfe crypto: Fix some clippy warnings 2021-08-13 18:28:52 +02:00
Damir Jelić 68df9b6ed2 crypto: Allow secrets to be requested and imported 2021-08-13 18:28:52 +02:00
Damir Jelić e57d70b089 crypto: Use the correct pickle key when unpickling cross signing keys 2021-08-13 18:28:52 +02:00
Damir Jelić 5f1e972b3d crypto: Properly mark verification requests as done 2021-08-13 18:28:52 +02:00
Damir Jelić 3726492cf9 crypto: Improve some log lines 2021-08-13 18:28:52 +02:00
Damir Jelić bc8c2752e4 crypto: Store newly created Olm sessions immediately
This fixes a bug where we would try to create a new Olm session, even if
we already created one, because we didn't yet add the new one to the
store.

This would be triggered every time two or more Olm pre-key messages
arrive that don't yet have an Olm session. This leads to decryption
failures for every message that arrived in the same sync after the
first one which created the new Olm session.
2021-08-13 18:28:52 +02:00
Damir Jelić d27a08bc91 crypto: Fix a comment in the attachment encryption logic 2021-08-13 18:28:52 +02:00
Damir Jelić 5192feb836 crypto: Add support to request secrets 2021-08-13 18:28:52 +02:00
Damir Jelić a916288d03 crypto: Support responding to secret requests 2021-08-13 18:28:52 +02:00
Damir Jelić 96e26651bc crypto: Bump the olm-rs version 2021-08-13 14:07:37 +02:00
Damir Jelić 725fd817c2 Merge branch 'ruma-0.3' 2021-08-12 15:22:21 +02:00