Commit graph

1415 commits

Author SHA1 Message Date
Damir Jelić
fa25ca4475 crypto: Make the pickle key encryption future proof. 2020-10-21 16:52:40 +02:00
Damir Jelić
c9db63509f crypto: Add error handling to the signing module. 2020-10-21 16:24:10 +02:00
Damir Jelić
ac0df5dea9 crypto: Properly handle errors in the pickle key decryption. 2020-10-21 15:28:43 +02:00
Damir Jelić
d175c47a05 crypto: Use a random pickle key in the sqlite store. 2020-10-21 15:13:21 +02:00
Damir Jelić
959e8450af crypto: Use a transaction to create sqlite tables. 2020-10-21 14:01:27 +02:00
Damir Jelić
dd0642cd59 crypto: Add a pickle key struct. 2020-10-21 13:21:22 +02:00
Damir Jelić
6a7da5a8b6 crypto: Correctly generate a random nonce for pickling of the signing objects. 2020-10-21 12:55:45 +02:00
Damir Jelić
5323e6e270 store: More work, add the ability to store member events. 2020-10-21 09:38:13 +02:00
Damir Jelić
045ab25fb7 base: Add initial state store based on sled. 2020-10-20 17:36:21 +02:00
Damir Jelić
cd3d90df3f base: Remove a bunch of stuff and add sled. 2020-10-20 17:36:21 +02:00
Jonas Platte
92bedb4571 Upgrade ruma 2020-10-20 17:36:21 +02:00
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