Commit graph

1988 commits

Author SHA1 Message Date
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
Jan Veen
42c8c42150 crypto: Improve doc of SAS accept settings
Document arguments explicitly.

Adapt to changed implementation.

Provide example call.
2021-03-12 15:45:58 +01:00
Jan Veen
587c09e700 crypto: Prohibit extending verification methods
Intersect the allowed methods passed from the user with the methods
supported by the other party. If the user added new methods to the
request, the remote party would cancel the verification.
2021-03-12 14:43:59 +01:00
Jan Veen
e9be23f853 crypto: Add settings to customize SAS accepting
Offer specifying settings to SAS accept() requests to limit the allowed
verification methods.
2021-03-11 21:10: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