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