Commit Graph

371 Commits (ae0d810fb0d352b45872779c5342913794085e84)

Author SHA1 Message Date
Damir Jelić ae0d810fb0 base: Avoid the Trait is not general enough issue again 2021-01-21 14:03:41 +01:00
Damir Jelić 303ac513e5 base: Remove some stale files from the old state store 2021-01-21 12:13:46 +01:00
Damir Jelić de4df4e50a base: Re-introduce a state store trait. 2021-01-21 12:08:16 +01:00
Damir Jelić 2bcc0afb91 base: Use a CSPRNG to get our randomness and handle randomness errors
Since we're going to encrypt a lot of small objects separately we're
gonna need a lot of random nonces, it doesn't help that our nonces are
24 bytes long either. So use a CSPRNG to random data faster, also don't
panic if there wasn't enough randomness.
2021-01-20 16:59:46 +01:00
Damir Jelić 0a6b0e5804 base: Properly handle crypto related errors in the sled store 2021-01-20 16:27:59 +01:00
Damir Jelić 4a06c9e82d base: Initial support for an encrypted sled store. 2021-01-20 15:57:23 +01:00
Damir Jelić 28cc5acc87 base: Add a store key struct 2021-01-20 14:10:57 +01:00
Damir Jelić 2b5ff82414 base: Move the sled store into a subfolder 2021-01-20 10:25:54 +01:00
Damir Jelić 3472c99c27 base: Split out the store module into smaller submodules 2021-01-19 16:48:37 +01:00
Damir Jelić 17f3dbb0a0 crypto: Return a deserialized ToDevice struct when we receive a sync 2021-01-19 12:59:31 +01:00
Damir Jelić 6a30514d40 base: Move the deserialized responses types into the common crate 2021-01-19 12:30:58 +01:00
Damir Jelić b8fcc003ea base: Finish up the error handling for the new stores 2021-01-19 12:03:46 +01:00
Damir Jelić d07063af2b base: Add some error handling to the state store 2021-01-18 18:07:53 +01:00
Damir Jelić 1746690eda crypto: Add a sled cryptostore 2021-01-18 13:38:00 +01:00
Amanda Graven aadbc14dc6 Add accessor for room member avatar urls 2021-01-15 18:59:51 +01:00
Damir Jelić bab8fde0ac crypto: Change the way we share group sessions
This patch removes the need to ask if a group session needs to be shared
it also adapts the method so it re-shares sessions if new users or
devices join the group.
2021-01-15 18:04:45 +01:00
Damir Jelić 40c53f09ba base: Handle room avatar updates 2021-01-15 09:57:59 +01:00
Damir Jelić 508bf3b23d base: Include the to-device events when returning the sync response 2021-01-14 13:35:21 +01:00
Amanda Graven 9efece4f7a Remove unnecessary clones 2021-01-11 14:17:17 +01:00
Damir Jelić 077c20ed74 base: Really fix the holding on across await points issue for room names 2021-01-11 13:40:35 +01:00
Amanda Graven 6c4888a123 Don't hold lock during await in name calculation 2021-01-11 13:18:26 +01:00
Damir Jelić 643526987f Merge branch 'master' into new-state-store 2021-01-05 21:40:39 +01:00
Damir Jelić b311a31c9e matrix-sdk: Bump our tokio and reqwest versions. 2021-01-05 21:39:52 +01:00
Damir Jelić b8c6c2e07c rooms: Use unstable member sorting for the room name calculation 2021-01-05 20:26:27 +01:00
Damir Jelić cdc93ddd0f base: Refactor and fix the room name calculation for non-stripped rooms 2021-01-05 20:09:06 +01:00
Damir Jelić ccd8a4d602 Merge branch 'master' into new-state-store 2021-01-05 17:03:24 +01:00
Damir Jelić 4f2cad8f62 matrix-sdk: Bump our versions 2021-01-05 11:23:18 +01:00
Damir Jelić f3acf582ec base: Fix a typo. 2021-01-04 18:34:23 +01:00
Damir Jelić 22b13c369b base: Add a method to check if the room is public. 2021-01-04 18:26:53 +01:00
Damir Jelić c6a80dc921 Merge branch 'master' into new-state-store 2021-01-04 17:34:33 +01:00
Damir Jelić 60950044f2 matrix-sdk: Bump our deps. 2021-01-04 17:22:09 +01:00
Damir Jelić 4c6c1d2107 matrix-sdk: Get rid of the common macros crate
This crate was used to support different trait bounds on WASM vs other
targets, since we only define async traits in a couple of places having
a whole crate to support this feels a bit excessive.

This patch defines a target specific super trait instead, this lowers
the compile time a couple of seconds.
2021-01-04 16:34:14 +01:00
Damir Jelić 2e3b6fba7d common: Use the re-exported versions of js_int and assign 2021-01-04 15:29:49 +01:00
Damir Jelić e9d22c95a4 base: Handle the join rules, history visibility and guest access 2021-01-04 15:12:02 +01:00
Damir Jelić e66add476f base: Store the room creation content
The power level depends on a bunch of stuff, if no power level event
exists the default for a room creator is 100 while for every other user
is 0, thus we need to know the room creator.
2021-01-04 12:32:54 +01:00
Damir Jelić 4afc6b2567 base: Don't mark all the room methods as public. 2021-01-04 12:26:13 +01:00
Damir Jelić 83b850d8f9 base: Add the last missing accessors and reorder them. 2021-01-04 10:15:02 +01:00
Damir Jelić e7e1d2d3eb base: Add more accessors for the room info. 2021-01-04 10:03:16 +01:00
Damir Jelić 74998c8dd8 rooms: Add a method to get the room topic. 2021-01-03 16:52:47 +01:00
Damir Jelić 0edef38eb7 base: Fix some clippy warnings 2021-01-02 13:54:47 +01:00
Damir Jelić f9f176ccfd base: Rename the state store example. 2021-01-02 13:04:05 +01:00
Damir Jelić 16f94ecc1d base: Improve the state store example so it can run non-interactively 2021-01-02 12:58:52 +01:00
Damir Jelić b995492457 base: Add a method to get either the display name or the localpart of an user 2021-01-01 14:59:30 +01:00
Damir Jelić 0c81f3d9ae base: Add a method to get all joined members. 2021-01-01 14:58:44 +01:00
Damir Jelić c804104293 client: Add the get_x_room methods back. 2021-01-01 14:57:39 +01:00
Damir Jelić 0952205e1e base: Restore rooms and the sync token when we restore the login. 2021-01-01 14:56:06 +01:00
Damir Jelić 4d7da05b90 base: Store the sync token. 2021-01-01 14:54:52 +01:00
Damir Jelić d121a856c4 base: Remember the direct target for rooms. 2021-01-01 14:31:50 +01:00
Damir Jelić 2384069641 base: Add the normalized_power_level method back to the member. 2020-12-24 17:14:46 +01:00
Damir Jelić a29d2e39c4 base: Save profiles independently from membership events.
The sender controls the content of the membership event, since the
content contains profile data (display names, avatar urls) a sender
might incorrectly change the profile of another member inside the room.

This is allowed in the case where the sender is kicking or inviting the
member, this it will self heal once the member re-joins. Still, to
mitigate this a bit we're storing the profile data when we know that the
member sent out the content on their own.
2020-12-24 16:35:32 +01:00