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ć
3338ecf62a
Merge branch 'master' into crypto-improvements
2020-10-13 13:02:02 +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ć
bd0ac703a0
crypto: Initial logic for session unwedging.
2020-10-09 15:39:35 +02:00
Damir Jelić
1d8f01ef11
crypto: Remove the third Device variant.
2020-10-01 12:15:13 +02:00
Damir Jelić
c8ca93c924
crytpo: Let the verification machine hold on to a raw CryptoStore.
...
This will later be useful when our higher level store wrapper holds on
to a verification machine to return higher level Device objects.
2020-10-01 11:17:27 +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ć
5b0457dad0
crypto: Remember the users that received the outbound group session.
2020-09-18 18:55:17 +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ć
8c4acf54e0
crypto: Reorder the errors so unpickling now returns the timestamp error.
2020-09-02 12:11:06 +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ć
987d87cd5d
crypto: Use the correct async-trait macro for the CryptoStores.
2020-09-01 17:41:30 +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ć
344631b4ee
crypto: Respect the encryption settings of a room when creating sessions.
2020-08-13 14:41:59 +02:00
Damir Jelić
9b8e11aab9
crypto: Fix the docs for our features.
2020-08-13 11:06:26 +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
Damir Jelić
eeb6a811c0
crypto: Make the in-memory stores threadsafe and cloneable.
2020-08-11 13:18:58 +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
Damir Jelić
2bf8c99dfe
Merge branch 'master' into sas-verification
2020-08-04 11:23:24 +02:00
Damir Jelić
1787d2ebe6
crypto: Hook up marking the device as verified.
2020-08-03 12:38:43 +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
Damir Jelić
a71c7b2964
crypto: Add a method to set the verification state of devices.
2020-07-30 15:54:56 +02:00
Damir Jelić
57b65ec8c4
crypto: Add a verification machine.
2020-07-28 14:45:53 +02: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
Damir Jelić
a9d645cbcd
crypto: Rewrite the device keys fetching in the SQLiteStore using filter_map.
2020-07-21 16:46:11 +02:00
Damir Jelić
e50cf39a17
crypto: Store a copy of the user_id/device_id and identity keys in sessions.
2020-07-21 12:40:23 +02:00
Damir Jelić
fe33430e9b
crypto: Use DeviceId instead of str everywhere.
2020-07-21 10:48:15 +02:00
Devin R
807435c043
Updates DeviceId to be Box<DeviceId>
2020-07-18 08:51:19 -04:00
Damir Jelić
5bebe1d434
crypto: Clippy fixes for our tests.
2020-07-15 15:58:36 +02:00
Damir Jelić
a2a87b9fff
matrix-sdk: Fix a bunch of clippy warnings.
2020-07-15 15:53:17 +02:00
Damir Jelić
de1988265d
crypto: Move the outbound session creation logic into the account.
2020-07-15 15:39:56 +02:00
Damir Jelić
41cfbaf520
device: Store the device keys with the algorithm and device id.
...
This will ensure that we can check the signature of the device later on.
2020-07-14 12:00:29 +02:00
Damir Jelić
18b444aac5
crypto: Move the uploaded key count handing into the account.
2020-07-13 16:46:51 +02:00
Damir Jelić
a7a9ac24ed
crypto: Move the key count field into the account.
2020-07-13 15:49:16 +02:00
Damir Jelić
b2ccb61864
crypto: Add the device id and identity keys to the megolm session.
...
This way we don't need to pass in the account to encrypt events.
2020-07-13 14:32:59 +02:00
Damir Jelić
c2f1e4de64
crypto: Disable a clippy warning.
2020-07-11 23:15:10 +02:00
Damir Jelić
df2bcf6f1f
crypto: Style fix for a doc comment.
2020-07-11 09:45:52 +02:00
Damir Jelić
58d79ca9c6
crypto: Put the user id and device id into the account.
2020-07-10 15:43:32 +02:00
Damir Jelić
676d547161
matrix-sdk: Disable the tarpaulin skip lines since it fails to run with them.
2020-06-24 11:25:31 +02:00
Marcel
d4087a1aae
Fix cargo fmt issues that the local version didn't auto fix
2020-06-17 19:16:04 +02:00
Marcel
8b77b4171a
Do wasm sepcific changes:
...
- Only use send+sync when not using wasm
- Use wasm capabale async_trait wrapper macro
- Make room and room_member specific structs always clonable
2020-06-17 18:57:39 +02:00
Damir Jelić
5175cd8ddb
crypto: Remove some unnecessary mem::replace calls.
2020-06-02 10:36:51 +02:00
Damir Jelić
ba66ee214f
matrix-sdk: Move most of the configuration to the base client.
2020-05-25 14:21:04 +02:00
Damir Jelić
1d9fccdc9f
crypto: Move the users for key query map into the store.
2020-05-15 15:33:30 +02:00
Damir Jelić
b2e48d8eae
sqlite: Store the tracked users in the database.
2020-05-14 17:25:46 +02:00
Damir Jelić
2a411bf5df
matrix-sdk: Use the instant crate so Instant works on wasm as well.
2020-05-12 15:48:17 +02:00
stoically
ef6104bc53
matrix-sdk: Support compiling to wasm32-unknown-unknown
2020-05-12 15:48:09 +02:00
Damir Jelić
6cbdbdcd2f
matrix-sdk: Rename the types subproject to matrix-sdk-common.
2020-05-07 08:51:59 +02:00
Damir Jelić
7b6e030823
matrix-sdk: Fix the last Ruma incompatibilities.
2020-05-05 15:29:25 +02:00
Damir Jelić
addb455d16
crypto: Add all the missing docs and deny missing docs from now on.
2020-04-30 17:10:12 +02:00
Damir Jelić
5dc0842f49
crypto: Implmement device deletion for the sqlite store.
2020-04-30 14:33:41 +02:00
Damir Jelić
3bcce962e3
matirx_sdk: Fix a bunch of clippy warnings.
2020-04-30 14:07:49 +02:00
Damir Jelić
5de32c025f
crypto: Allow session to be saved in a batched way.
2020-04-30 12:08:38 +02:00
Damir Jelić
e33fd098bc
crypto: Make the save device method of the store accept a slice of devices.
2020-04-30 11:51:20 +02:00
Damir Jelić
5fef444d61
matrix-sdk: Split out the crypto part of the sdk into a separate crate.
2020-04-29 09:48:00 +02:00