Damir Jelić
e09a155cfc
crypto: Fix a completely wrong application of extend()
...
We were merging the to-device messages using the extend() method while
our data has the shape of BTreeMap<UserId, BTreeMap<_, _>>, extending
such a map would mean that the inner BTreeMap would get dropped if both
maps contain the same UserId.
We need to extend the inner maps, those are guaranteed to contain unique
device ids.
2021-03-12 16:33:26 +01:00
Damir Jelić
7465574bdc
crypto: Fix a clippy warning
2021-03-11 20:06:51 +01:00
Damir Jelić
593b5e55cb
crypto: Don't load the account every time we load sessions in the sled store
...
This removes a massive performance issue since getting sessions is part
of every message send cycle.
Namely every time we check that all our devices inside a certain room
have established 1 to 1 Olm sessions we load the account from the store.
This means we go through an account unpickling phase which contains AES
decryption every time we load sessions.
Cache instead the account info that we're going to attach to sessions
when we initially save or load the account.
2021-03-11 19:49:32 +01:00
Damir Jelić
d4e847f02f
benches: Add a benchmark for the missing session collecting
2021-03-11 13:30:19 +01:00
Damir Jelić
a32f9187e6
benches: Fix the key claiming bench, it needs to run under tokio now
2021-03-11 13:28:22 +01:00
Damir Jelić
daf313e358
crypto: Go through the user device keys in parallel
2021-03-10 14:08:45 +01:00
Damir Jelić
570bd2e358
crypto: Move the tracked users marking out of the device key handling method
2021-03-10 12:20:03 +01:00
Damir Jelić
c8d4cd0a5b
crypto: Calculate the device changes for a given user in parallel
2021-03-10 12:05:21 +01:00
Damir Jelić
0c5d13cb91
crypto: Remove some stale TODO comments
2021-03-10 10:03:54 +01:00
Damir Jelić
aff5cddb68
crypto: Remove an unneeded import.
2021-03-10 09:58:30 +01:00
poljar
4a8c30527d
crypto: Fix a typo.
...
Co-authored-by: Jonas Platte <jplatte@users.noreply.github.com>
2021-03-10 09:54:33 +01:00
Damir Jelić
560aa5b0a9
crypto: Encrypt the share group session requests in parallel.
2021-03-09 15:09:59 +01:00
Damir Jelić
a8bc619dca
crypto: Encrypt room keys for a room key share request in parallel
2021-03-09 14:30:28 +01:00
Damir Jelić
91c326e970
benches: Run the async benches on a tokio runtime.
2021-03-09 14:24:16 +01:00
Damir Jelić
e5585b57e8
Merge branch 'room_merge'
2021-03-08 13:39:46 +01:00
Damir Jelić
61167fab15
crypto: Make restored outbound sessions wait for requests if they have some
2021-03-05 17:12:32 +01:00
Julian Sparber
bc2c924c88
matrix-sdk-base: remove InvitedRoom, JoinedRoom, LeftRoom and RoomState
...
They are all replaced by `Room`
2021-03-05 12:19:50 +01:00
Julian Sparber
9332c55c8d
matrix-sdk-base: merge StrippedRoom and Room
2021-03-05 11:31:01 +01:00
Damir Jelić
c5241af675
crypto: Expose the crypto store error pulicly
2021-03-04 17:46:18 +01:00
Julian Sparber
f6f382e28a
matrix-sdk: Export RoomType
2021-03-03 11:35:02 +01:00
Julian Sparber
31f4a58f38
matrix-sdk-base: Export RoomType
2021-03-03 11:34:59 +01:00
Julian Sparber
780348f546
matrix-sdk-base: Remove the unused enum RoomStateType
2021-03-03 11:18:23 +01:00
Damir Jelić
93e5c34670
crypto: Add a bit more info to the room key sharing logic logging
2021-03-02 17:15:10 +01:00
Damir Jelić
6597948564
crypto: Add a TODO item for m.room_key.withheld messages
2021-03-02 16:27:24 +01:00
Damir Jelić
693a0337a2
crypto: Don't log the devices that receive an outbound session twice
2021-03-02 16:26:58 +01:00
Damir Jelić
7729e2b11f
matrix-sdk: Add some custom debug implementations
...
This should avoid polluting the logs with sled trees and a lot of
redundant info in a device if a device or store ends up in the
structured logs.
2021-03-02 16:22:38 +01:00
Damir Jelić
00df34ed59
Merge branch 'more-benchmarks'
2021-03-02 15:03:24 +01:00
Damir Jelić
8f481dd859
client: Add a method to get all known rooms
2021-03-02 14:58:30 +01:00
Damir Jelić
123772c524
crypto: More logs for the group session sharing logic
2021-03-02 14:54:56 +01:00
Damir Jelić
cb91aa76fc
Merge branch 'group-session-sharing-code-refactoring'
2021-03-02 12:55:37 +01:00
Damir Jelić
bb358909ef
crypto: Fix a typo and improve some logs in the session sharing logic.
2021-03-02 12:54:22 +01:00
Damir Jelić
56a696d1c0
contrib: Make the failures mitmproxy script a bit smarter.
2021-03-02 12:24:23 +01:00
Denis Kasak
3f7eae8633
cargo fmt
2021-03-02 12:20:09 +01:00
Denis Kasak
2b5e1744ee
More refactoring of the group session sharing code for clarity.
2021-03-02 12:20:09 +01:00
Denis Kasak
df8c489304
Fix typo: visiblity -> visibility
2021-03-02 12:20:09 +01:00
Denis Kasak
aa16a7e291
crypto: Refactor the group session rotation code some more for clarity.
2021-03-02 12:20:09 +01:00
Denis Kasak
70ecf269d0
Improve docstring of GroupSessionManager::collect_session_recipients.
2021-03-02 12:20:09 +01:00
Damir Jelić
83926e154b
README: Add a badge that points to the latest master docs
2021-03-02 11:40:02 +01:00
Damir Jelić
42fb88a7f9
Merge branch 'duplicate-content-type-header'
2021-03-02 11:32:40 +01:00
Damir Jelić
4ccb5a1cb9
benches: Benchmark the sled store as well in the key query/claim benches
2021-03-02 11:18:10 +01:00
Damir Jelić
48903a24d2
benches: Benchmark our key sharing throughput
2021-03-02 11:17:38 +01:00
Damir Jelić
e6f6665fa0
Merge branch 'master' into history-visiblity-session-share
2021-03-01 20:47:31 +01:00
Damir Jelić
2e659afd26
crypto: Make it clearer that the deleted flag can only be set to true
2021-03-01 20:34:29 +01:00
Damir Jelić
3a08f0c278
matrix-sdk: Don't set the content type ourselves
...
We don't need to worry about this anymore, since Ruma sets this for all
the request nowadays.
2021-03-01 20:12:38 +01:00
Damir Jelić
9893ddba74
crypto: Use Default to create some test data
2021-03-01 19:41:39 +01:00
Damir Jelić
5c0f0140e9
matrix-sdk: Fix some doc examples
2021-03-01 19:41:14 +01:00
Damir Jelić
1f5cad136e
matrix-sdk: Bump Ruma
2021-03-01 19:20:07 +01:00
Damir Jelić
4c3cd29224
matrix-sdk: Don't set two content-type headers for json contents
...
Ruma will for some requests already set the content-type for us to
application/json, but for some it still seems to miss the header, since
the headers are kept in a map add the header only if it isn't already
there.
2021-03-01 16:37:56 +01:00
Damir Jelić
ffaddb22b8
Merge branch 'docs-github-pages'
2021-03-01 13:15:43 +01:00
Julian Sparber
8ebd61dd18
CI: Publish docs via github pages
...
Fixes: https://github.com/matrix-org/matrix-rust-sdk/issues/154
2021-03-01 12:53:35 +01:00