Commit Graph

2002 Commits (05663a42ed3c1a8f83932ec2a335fcc1d5023d37)

Author SHA1 Message Date
Damir Jelić 05663a42ed feat(sdk): Add a method to check the status of our private cross signing keys 2021-09-09 10:21:05 +02:00
Damir Jelić 7c2b6ede1f feat(crypto): Expose the master pubkey struct publicly 2021-09-09 10:21:05 +02:00
Damir Jelić c6100404e5 feat(sdk): Expose the list of tracked users publicly 2021-09-09 10:20:50 +02:00
Damir Jelić 1bcc74738e feat(sdk): Add a method to check if a room contains only verified devices 2021-09-09 10:13:00 +02:00
Damir Jelić 0e9a1b42ec Merge branch 'new-event-handler' 2021-09-09 10:07:02 +02:00
Jonas Platte c3081de611
Add async context to register_event_handler doctest 2021-09-09 00:49:04 +02:00
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 `.await`s 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
Johannes Becker 33c49c5cd8 appservice: Re-export sdk features 2021-08-17 20:17:17 +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