Denis Kasak
32737a5517
Use match instead of if-let in sync_forever.
2020-07-15 09:43:58 +02:00
Damir Jelić
1691a26163
crypto: Add initial Sas scaffolding.
2020-07-14 17:04:08 +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
Denis Kasak
9e48b7172b
cargo fmt
2020-07-14 12:38:55 +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
Denis Kasak
7d9a699d62
Fix EventBuilder docstring example.
2020-07-14 11:08:16 +02:00
Damir Jelić
a38efc0f29
room: Fix a clippy warning, use unwrap_or_else for the member counts.
2020-07-14 10:56:06 +02:00
Denis Kasak
048a2000e7
Merge
2020-07-13 17:10:13 +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ć
740a5af068
Merge branch 'dan/bugfix/implable-StateStore'
2020-07-13 10:19:37 +02:00
Dan Enman
8c3855221c
mark state::AllRooms and state::ClientState as public
2020-07-11 19:14:55 -03:00
Damir Jelić
c2f1e4de64
crypto: Disable a clippy warning.
2020-07-11 23:15:10 +02:00
Damir Jelić
8a7c53c00d
matrix-sdk: Remove the wrongly committed olm-sys/olm-rs patch defintions.
2020-07-11 22:18:01 +02:00
Damir Jelić
c1ae183795
Merge branch 'deps-and-stuff'
2020-07-11 22:13:35 +02:00
Jonas Platte
eea00301ff
Remove immediately-deref'ed double references
2020-07-11 21:20:02 +02:00
Jonas Platte
85522ac35a
Slightly simplify RoomName::calculate_name
2020-07-11 21:14:32 +02:00
Jonas Platte
9b5f95672b
Use js_int macros to improve readability
2020-07-11 21:06:21 +02:00
Jonas Platte
ffc5204109
Fix two pattern matching related warnings
2020-07-11 20:57:01 +02:00
Jonas Platte
a607d70371
Upgrade mockito in matrix-sdk-base
2020-07-11 20:55:19 +02:00
Jonas Platte
1fcb68c59f
Remove unused dependencies
2020-07-11 20:55:05 +02:00
Damir Jelić
9bceb2f539
crypto: Add the user id and device id to the account.
2020-07-11 17:23:50 +02:00
Damir Jelić
7003ea2d23
matrix-sdk-common: Depend on a working revision of the ruma mono repo.
2020-07-11 16:24:36 +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ć
eb19c19e36
Merge branch 'perf-1'
2020-07-11 10:33:30 +02:00
Damir Jelić
df2bcf6f1f
crypto: Style fix for a doc comment.
2020-07-11 09:45:52 +02:00
Jonas Platte
3ee06be87b
Rewrite MessageQueue deserialization to reduce allocations
2020-07-10 21:41:46 +02:00
Jonas Platte
3a07a17e9d
Remove unnecessary calls to clone()
2020-07-10 21:24:01 +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
Denis Kasak
05a41d3b4d
Move and rename member_display_name to RoomMember::disambiguated_name.
...
This makes more sense as all the required information is now available
on `RoomMember`. We also don't have to handle the case of the missing
member since now you have to actually get a `RoomMember` before you can
ask for their name.
2020-07-10 15:47:11 +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ć
4ee245dcce
examples: Updat the autojoin example to use the ruma mono repo.
2020-07-10 15:30:17 +02:00
Denis Kasak
8daa12ac56
Print error when receiving invalid response in sync_forever.
2020-07-10 15:11:03 +02:00
Denis Kasak
4134ba969a
DRY the membership logging a bit.
2020-07-10 15:11:03 +02:00
Denis Kasak
a8f24da3ba
cargo fmt
2020-07-10 15:11:03 +02:00
Denis Kasak
390a1aa12c
Clarify member_display_name docstring.
2020-07-10 15:11:03 +02:00
Denis Kasak
b16724841d
Correct state tracking of room members.
...
- use `state_key` instead of `user_id` to determine which member is
affected by the event
- assign state directly from the event in `add_member` instead of using
`membership_change`
- expand/fix docstrings
- add some logging
2020-07-10 15:11:03 +02:00
Denis Kasak
ec81a5e539
Implement Room::member_is_tracked.
2020-07-10 15:11:03 +02:00
Denis Kasak
949305da72
Clarify comment.
2020-07-10 15:11:03 +02:00
Denis Kasak
559306a33c
Rewrite disambiguation algorithm to handle profile changes.
...
The new algorithm is simpler. Instead of tracking a list of
disambiguated display names in `Room`, we instead track the display name
ambiguity status in `RoomMember`. This allows a client to generate the
correct name for a member using solely the information available in
`RoomMember`.
The disambiguation algorithm itself now only calculates the set of members
whose ambiguity status had changed instead of producing disambiguated
display names for everyone affected. This is called on each room entry
(join or invite), room entry and profile change, and the updates are
propagated to the affected `RoomMember`s.
2020-07-10 15:11:01 +02:00