Damir Jelić
7cab7cadc9
crypto: Rework the cryptostore.
...
This modifies the cryptostore and storage logic in two ways:
* The cryptostore trait has only one main save method.
* The receive_sync method tries to save all the objects in one
`save_changes()` call.
This means that all the changes a sync makes get commited to the store
in one transaction, leaving us in a consistent state.
This also means that we can pass the Changes struct the receive sync
method collects to our caller if the caller wishes to store the room
state and crypto state changes in a single transaction.
2020-10-20 17:19:37 +02:00
Damir Jelić
728d80ed06
crypto: Connect the cross signing to the main state machine.
2020-10-19 16:03:01 +02:00
Damir Jelić
0c1d33d43f
Merge branch 'master' into crypto-improvements
2020-10-18 10:21:52 +02:00
Damir Jelić
8f99180c99
Merge branch 'up-ruma' into master
2020-10-18 10:17:43 +02:00
Jonas Platte
0682292b91
Upgrade ruma
2020-10-18 02:01:39 +02:00
Damir Jelić
404cc410cc
crypto: Fix the docs and return value of the import_keys method.
2020-10-17 14:39:19 +02:00
Damir Jelić
17cc4fcb81
matrix-sdk: Fix an import for the non-crypto case.
2020-10-16 19:45:38 +02:00
Damir Jelić
93f49265a6
crypto: Use a git version of sqlx.
...
The beta release has a nasty bug where one thread would consume 100% of
CPU.
2020-10-16 19:42:41 +02:00
Damir Jelić
b1c8c64205
matrix-sdk: Add support to delete devices.
2020-10-16 17:27:00 +02:00
Damir Jelić
425a07d670
crypto: Don't load all the devices in the sqlite store.
2020-10-16 16:57:26 +02:00
Damir Jelić
4262f1d3b0
crypto: Don't cache inbound group sessions in the sqlite store.
2020-10-16 15:54:50 +02:00
Damir Jelić
b5560d3cb6
crypto: More transactions in the sqlite store.
2020-10-16 15:23:34 +02:00
Damir Jelić
fc54c63a4c
crypto: Upgrade sqlx to the beta release.
...
This change is much needed to enable transactions in our sqlite store,
before this release creating a transaction would take ownership of the
connection, now it just mutably borrows it.
2020-10-16 15:05:53 +02:00
Damir Jelić
e7a24d5e68
crypto: Move the session managers under a common module.
2020-10-16 11:09:55 +02:00
Damir Jelić
b5c9473424
crypto: Test the session unwedging logic.
2020-10-15 15:03:22 +02:00
Damir Jelić
59d7b53242
crypto: Add an user for a key request if the device was marked as wedged.
2020-10-15 15:02:02 +02:00
Damir Jelić
59a7199202
crypto: Initial test for the session manager.
2020-10-15 13:58:35 +02:00
Damir Jelić
d1313b8614
crypto: Fix another clippy warning.
2020-10-14 16:15:26 +02:00
Damir Jelić
4e8ce4cb5d
crypto: Fix clippy warnings and don't use the PickleMode for signing pickling.
2020-10-14 16:01:52 +02:00
Damir Jelić
c85fe6bc21
crypto: Initial support for private cross signing identities.
2020-10-14 15:35:06 +02:00
Damir Jelić
3338ecf62a
Merge branch 'master' into crypto-improvements
2020-10-13 13:02:02 +02:00
Damir Jelić
1c6a67d864
matrix-sdk: Bump our deps.
2020-10-13 13:01:18 +02:00
Damir Jelić
e737200fbe
matrix-sdk: Remove an useless import.
2020-10-13 11:55:18 +02:00
Damir Jelić
41b3b0651f
matrix-sdk: Don't use strings for the content type in the upload methods.
2020-10-13 11:00:52 +02:00
Damir Jelić
1cabc0cac9
crypto: Correctly store the uploaded key count when saving the account.
...
This fixes : #101 .
2020-10-13 09:47:49 +02:00
Denis Kasak
e0ee03fa6f
Update `room_messages` docstring to reflect actual state of the API.
2020-10-12 21:18:51 +02:00
Denis Kasak
4ec7aff301
Add documentation on enabling logging.
2020-10-12 20:45:47 +02:00
Denis Kasak
f5ff91935f
Add missing apostrophe.
2020-10-12 20:45:47 +02:00
Denis Kasak
7519bec9a3
Tweak descriptions given by Describe impls.
2020-10-12 20:45:47 +02:00
Damir Jelić
bf7070b8f2
Merge branch 'client-get-session' into master
2020-10-12 15:45:55 +02:00
Damir Jelić
39fc33d37a
Merge branch 'ser-deser-session' into master
2020-10-12 15:36:32 +02:00
Denis Kasak
d81a6e6872
cargo fmt
2020-10-12 15:17:46 +02:00
Denis Kasak
2afc0c7661
Implement BaseClient::get_session to retrieve the login session.
...
Closes #100 .
2020-10-12 15:12:23 +02:00
Denis Kasak
f349811020
Add Serialize/Deserialize impls for matrix_sdk::Session.
2020-10-12 14:56:08 +02:00
Damir Jelić
0ab12fe969
examples: Add some whitespace to the autojoin example.
2020-10-12 12:50:03 +02:00
strct
c4ac0d0570
matrix-sdk: example: retry autojoin
2020-10-10 16:17:08 +02:00
Damir Jelić
d039a39d84
common: Expose the lock guards publicly.
2020-10-10 14:13:28 +02:00
Damir Jelić
1c008f549c
common: Expose the lock guards publicly.
2020-10-10 12:08:58 +02:00
Damir Jelić
bd0ac703a0
crypto: Initial logic for session unwedging.
2020-10-09 15:39:35 +02:00
Damir Jelić
6d2e9cfc02
crypto: Share the users_for_key_claim map between modules.
2020-10-09 11:36:31 +02:00
Damir Jelić
661f182382
Merge branch 'master' into crypto-improvements
2020-10-08 18:28:04 +02:00
Dominique Martinet
9ea4835e3e
Revert "matrix_sdk examples: set `#![type_length_limit = "1075569"]`"
...
This reverts commit 7d023ebdb9
.
Rust 1.47.0 got released and the tuning is no longer necessary.
2020-10-08 17:57:23 +02:00
Dominique Martinet
2602c36ad0
matrix_sdk_base: save room states after successfully parsed account events
2020-10-08 16:10:58 +02:00
Dominique Martinet
d858940342
matrix_sdk_base: handle response.account_data events
...
"m.direct" events are not in room account data events but in main one
2020-10-08 16:10:58 +02:00
Dominique Martinet
883183324f
matrix_sdk_base: room: add direct_target field
...
Rooms marked as "direct" are associated a user_id in "m.direct" events.
Clients could want to handle these separately
2020-10-08 16:10:58 +02:00
Dominique Martinet
7d023ebdb9
matrix_sdk examples: set `#![type_length_limit = "1075569"]`
...
Some examples no longer build after the following commits, set a
bigger-than-default type_length_limit to let tests pass.
The exceptions are not necessary on nightly and can be removed again
after https://github.com/rust-lang/rust/issues/54540 is fixed.
2020-10-08 16:10:48 +02:00
Damir Jelić
473e49252e
crytpo: Get the session from the list of sessions in a safe manner.
2020-10-08 15:56:17 +02:00
Damir Jelić
d96c9f85a1
crypto: Add doces for the get_missing_sessions method.
2020-10-08 14:50:35 +02:00
Damir Jelić
279ce0bba0
crypto: Split out the Olm session handling logic into a separate module.
2020-10-08 14:41:34 +02:00
Damir Jelić
da5ef42719
crypto: Log when we invalidate a group session.
2020-10-08 14:03:01 +02:00