Damir Jelić
959e8450af
crypto: Use a transaction to create sqlite tables.
2020-10-21 14:01:27 +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ć
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ć
1cabc0cac9
crypto: Correctly store the uploaded key count when saving the account.
...
This fixes : #101 .
2020-10-13 09:47:49 +02:00
Damir Jelić
84066d4a76
crypto: Split out the Account into a read only portion and one with effects.
2020-09-29 12:03:41 +02:00
Damir Jelić
a357536ade
crypto: Initial scaffolding for incoming key share handling.
2020-09-28 09:27:16 +02:00
Damir Jelić
f3be27921c
crypto: Move the device trust state logic into the read only device.
2020-09-24 12:45:23 +02:00
Damir Jelić
af4b00195b
crypto: Implement the key/value store for the sqlite store.
2020-09-18 13:42:51 +02:00
Damir Jelić
6b24d91ed9
crypto: Add an initial version of our key request state machine.
2020-09-17 14:16:43 +02:00
Damir Jelić
24ce4881c7
crypto: Add a method to save/load arbitrary objects from a CryptoStore.
...
This actually adds trait methods that save/load strings from the
CryptoStore. We add a wrapper for the CryptoStore since we can't mix
trait objects and generics, so we add generic methods to save/load
anything that implements Serialize/Deserialize.
2020-09-16 16:03:19 +02:00
Damir Jelić
464e181f66
crypto: Add a method to get all group sessions from the store.
2020-09-10 14:59:20 +02:00
Damir Jelić
7bd0e4975b
crypto: Store the forwarding chains for group sessions.
2020-09-09 17:27:10 +02:00
Damir Jelić
127d4c225b
crypto: Change the crypto store so we can save multiple group sessions at once.
2020-09-09 16:34:18 +02:00
Damir Jelić
3e9b0a8e7f
crypto: Correctly store the ed25519 key map for inbound group sessions.
2020-09-09 15:03:19 +02:00
Damir Jelić
fc60593801
crypto: Remove some unused into implementation.
2020-09-08 17:34:34 +02:00
Damir Jelić
70ffc43ce0
crypto: Store the trust state of our own identities as well.
2020-09-08 16:07:37 +02:00
Damir Jelić
9810a2f630
crypto: Finish up the cross signing storing for the sqlite store.
2020-09-08 15:24:23 +02:00
Damir Jelić
083cebe735
crypto: Initial WIP user identity storing logic.
2020-09-07 16:57:58 +02:00
Damir Jelić
adf8905d9f
crypto: Rename the memory stores into caches and reorder the store module.
2020-09-04 12:42:40 +02:00
Damir Jelić
7b3dfe2f27
crypto: Move the device and user identities under one module.
2020-09-04 10:51:46 +02:00
Damir Jelić
d86c05efb3
crypto: Add a fixme to the sqlite store since it's not storing forwarding chains.
2020-09-02 15:08:24 +02:00
Damir Jelić
65843f89dc
crypto: Simplify the signature loading in the sqlite cryptostore.
2020-09-02 12:24:46 +02:00
Damir Jelić
8b56546565
crypto: Remove an unwrap from the sqlite cryptostore.
2020-09-02 12:17:38 +02:00
Damir Jelić
81b127b6e7
crypto: Modify all the pickling logic so we return serializeable structs.
2020-09-02 11:45:35 +02:00
Damir Jelić
269cfc3d34
crypto: Add a pickled account struct making account storing easier.
2020-09-02 09:37:10 +02:00
Damir Jelić
8d39821a1f
crypto: Remove some unused imports from the top level module.
2020-08-24 14:34:22 +02:00
Damir Jelić
90ea0229f2
crypto: Rename TrustState to LocalTrust since.
...
We might still trust the device event if our local trust isn't set, so
rename the enum to better reflect that meaning.
2020-08-19 11:20:08 +02:00
Damir Jelić
37a7f69e03
crypto: Implement storage for the user identities in the memory store.
2020-08-18 15:13:56 +02:00
Damir Jelić
f96437a242
crypto: Initial scaffolding for handling user identities in key queries.
2020-08-18 12:50:03 +02:00
Damir Jelić
de097d3ca0
crypto: Rename UserDevices to ReadOnlyUserDevices.
2020-08-17 17:01:38 +02:00
Damir Jelić
43aea6e482
crypto: Rename Device to ReadOnlyDevice.
2020-08-17 16:17:28 +02:00
Jonas Platte
5040be042f
Update ruma
2020-08-15 15:17:27 +02:00
Damir Jelić
0d2f8c6d0f
crypto: Fix some clippy warnings.
2020-08-11 16:01:48 +02:00
Damir Jelić
7637e79f2c
matrix-sdk: Fix the tarpaulin skip directives.
2020-08-11 15:49:04 +02:00
Damir Jelić
d0a5b86ff3
crypto: Remove our lock around the cryptostore.
2020-08-11 15:39:50 +02:00
Damir Jelić
707b4c1185
crypto: Put a bunch of crypto store stuff behind atomic references.
2020-08-11 15:17:33 +02:00
Damir Jelić
2437a92998
crypto: Don't require the account loading method to borrow self mutably.
2020-08-11 15:12:15 +02:00
Damir Jelić
947fa08dae
crypto: Don't require the load_account to mutably borrow self.
2020-08-11 15:08:07 +02:00
Damir Jelić
8f4ac3da7f
crypto: Change the way we load the devices/sessions in the SqliteStore.
2020-08-11 14:43:18 +02:00
Damir Jelić
01bcbaf063
crypto: Remove most mutable self borrows from the crypto-store trait.
2020-08-11 14:34:42 +02:00
Damir Jelić
ac2469d270
crypto: Change the way we check if an user is already tracked.
2020-08-11 13:45:32 +02:00
Jonas Platte
d83fc971ce
Update ruma
2020-08-10 13:58:39 +02:00
Jonas Platte
d016ce1848
Use identifier macros in tests
2020-08-06 13:03:32 +02:00
Devin Ragotzy
0ac2b84c02
Unify import style across workspace
2020-08-02 08:05:43 -04:00
Devin Ragotzy
ed1f12ce37
Run cargo fmt with merge-imports true
2020-08-02 07:46:02 -04:00
Jonas Platte
bf54b17a2f
Upgrade ruma
2020-07-22 22:31:42 +02:00
Damir Jelić
2481fbbd27
crypto: Store the device signatures with the devices as well.
2020-07-21 17:33:47 +02:00