Commit Graph

1021 Commits (8b56546565f4cdeebfbab4f25f18f4772ba58ced)

Author SHA1 Message Date
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