Commit graph

2004 commits

Author SHA1 Message Date
Damir Jelić
afc8597d3b fixup! feat(sdk): Expose the list of tracked users publicly 2021-09-09 10:27:59 +02:00
Damir Jelić
5ff69ad1a9 fix(base): Mark rooms as DMs when we receive an m.direct event 2021-09-09 10:21:05 +02:00
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 .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
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