Commit graph

68 commits

Author SHA1 Message Date
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ć
83806b42e9 crypto: Remove a stale comment about clearing private keys from events. 2020-07-15 13:07:48 +02:00
Damir Jelić
51012e632e crypto: Rename the StoreError to StoreResult. 2020-07-14 13:11:44 +02:00
Damir Jelić
5d76fd9aac crypto: Refactor the key query handling logic a bit. 2020-07-14 13:08:57 +02:00
Damir Jelić
c25f4c0642 crypto: Verify one-time keys using the device. 2020-07-14 12:49:40 +02:00
Damir Jelić
68125f5de6 crypto: Refactor out the json verification method. 2020-07-14 12:23:42 +02:00
Damir Jelić
b602d3007d crypto: Remove some useless mem::replace calls. 2020-07-14 12:03:27 +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ć
8206394918 crypto: Use AlgorithmAndDeviceId to get the device signature. 2020-07-14 11:27:50 +02:00
Damir Jelić
ca85564a9f crypto: Move the device keys verificatin logic into the device. 2020-07-14 11:17:09 +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ć
ac264918b8 crypto: Move the megolm decryption logic into the session. 2020-07-13 14:00:42 +02:00
Damir Jelić
8e19c583c6 crypto: Move the megolm encryption logic into the outbound group session. 2020-07-13 13:19:25 +02:00
Damir Jelić
c2f1e4de64 crypto: Disable a clippy warning. 2020-07-11 23:15:10 +02:00
Jonas Platte
eea00301ff
Remove immediately-deref'ed double references 2020-07-11 21:20:02 +02:00
Jonas Platte
9b5f95672b
Use js_int macros to improve readability 2020-07-11 21:06:21 +02:00
Jonas Platte
1fcb68c59f
Remove unused dependencies 2020-07-11 20:55:05 +02:00
Damir Jelić
18ccd30c8c crypto: Add a bunch of TODO lines documenting how to refactor stuff further. 2020-07-11 12:05:52 +02:00
Damir Jelić
df2bcf6f1f crypto: Style fix for a doc comment. 2020-07-11 09:45:52 +02:00
Damir Jelić
27eeeb8db6 crypto: Move the one-time key signing into the accoung. 2020-07-10 17:53:04 +02:00
Damir Jelić
6ded76a5a7 crypto: Move the device_keys() method into the account. 2020-07-10 17:10:34 +02:00
Damir Jelić
58d79ca9c6 crypto: Put the user id and device id into the account. 2020-07-10 15:43:32 +02:00
Devin R
dcc3d6e755 sdk_base: Remove room_id as argument from all Room methods
Remove room_id paramater from some client methods. Make CreationContent
two methods of RoomBuilder. Add docs for MessageWrapper.
2020-07-10 08:59:02 -04:00
Devin R
eb5949dbc2 Move matrix-sdk to ruma monorepo 2020-07-10 08:59:00 -04:00
Damir Jelić
283cf0d782 matrix-sdk: Bump all our deps. 2020-07-07 15:52:08 +02:00
Damir Jelić
262a61afc9 crypto: Simplify the group session pair creation. 2020-06-25 13:31:30 +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
Devin R
9e738f45ef crypto/base: Finish moving to using static json values for test data 2020-06-22 16:18:12 -04: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ć
ea427cf366 Merge branch 'upload-keys' 2020-06-17 09:33:09 +02:00
Devin R
15191d0230 crypto: Fix overflow in should_upload_keys, bail out if uploaded keys > max uploaded 2020-06-16 18:07:13 -04:00
Damir Jelić
311e41ee0d matrix-sdk: Fix the author field in the cargo files. 2020-06-15 09:47:13 +02:00
Damir Jelić
6e5870bd2b crypto: Simplify the max keys calculation for one-time key uploads. 2020-06-04 17:36:33 +02:00
Damir Jelić
5175cd8ddb crypto: Remove some unnecessary mem::replace calls. 2020-06-02 10:36:51 +02:00
Damir Jelić
5637cdd133 matrix-sdk: Add a bunch of readmes to the crates. 2020-05-26 19:33:13 +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ć
ea5f7f1d19 matrix-sdk: Don't require the the session at client creation time.
The client objects in the sdk accepted an optional session argument at
creation time. If provided this would restore the client into a logged
in state.

Since we need to restore the client state and encryption state at some
point it makes sense to do it when the client transitions into a logged
in state. At the same time we would like to avoid the client creation to
be async.

This introduces a restore_login() method which can be called instead of
the login() method to restore a session.
2020-05-22 15:23:58 +02:00
Damir Jelić
6ecf46abf7 crypto: Mark tracked users as changed if a sync tells us so. 2020-05-21 14:30:42 +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ć
e51e89d9d5 matrix-sdk: Re-enable joins by id or alias. 2020-05-15 12:32:36 +02:00
Damir Jelić
458923d313 crypto: Add a method to mark a tracked user as dirt/changed. 2020-05-14 17:26:51 +02:00
Damir Jelić
b2e48d8eae sqlite: Store the tracked users in the database. 2020-05-14 17:25:46 +02:00
Damir Jelić
ecbd801c70 crypto: Invalidate group sessions if they fail to be shared. 2020-05-14 11:55:12 +02:00
stoically
aa42951f15 matrix-sdk: Switch to upstream crates 2020-05-12 17:32:01 +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