Commit Graph

843 Commits (6f4d2022fd1d388334da79409e9abf55902744ce)

Author SHA1 Message Date
Damir Jelić d75101d042 travis: Run the tests on Windows. 2020-07-16 14:09:40 +02:00
Damir Jelić 04bb65f43e travis: Don't test encyrption support on Windows for now. 2020-07-16 14:09:40 +02:00
Damir Jelić c1ffed4fc9 base: Sanitize the room id for the path of the state store.
This closes: #71.
2020-07-16 14:08:56 +02:00
Black Hat 0542e3d83d Client::sync(): expose sync filter 2020-07-16 03:49:46 -07:00
Damir Jelić 2d955027e1 travis: Don't set the linux version. 2020-07-15 16:11:08 +02:00
Damir Jelić 38166135dc travis: Add a clippy stage. 2020-07-15 15:59:04 +02:00
Damir Jelić 5bebe1d434 crypto: Clippy fixes for our tests. 2020-07-15 15:58:36 +02:00
Damir Jelić a2a87b9fff matrix-sdk: Fix a bunch of clippy warnings. 2020-07-15 15:53:17 +02:00
Damir Jelić 497b973eb5 travis: Test newer macOS versions. 2020-07-15 15:46:17 +02:00
Damir Jelić de1988265d crypto: Move the outbound session creation logic into the account. 2020-07-15 15:39:56 +02:00
Damir Jelić 6cced25ae1 travis: Don't allow failures on the wasm target. 2020-07-15 14:13:43 +02:00
Damir Jelić 4e40c13b81 travis: Fix the minimal build. 2020-07-15 14:05:52 +02:00
Damir Jelić bf152df322 matrix-sdk: Hide some tracing imports behind the encryption flag. 2020-07-15 14:05:22 +02:00
Damir Jelić 3315cf5bc6 travis: Add a build that doesn't use any of the features. 2020-07-15 13:23:28 +02:00
Damir Jelić 204279c575 matrix-sdk: Don't hide the tracing import behind the encryption feature. 2020-07-15 13:19:56 +02:00
Damir Jelić 83806b42e9 crypto: Remove a stale comment about clearing private keys from events. 2020-07-15 13:07:48 +02:00
Damir Jelić fa0a22b090 Merge branch 'dkasak-master'
High-level summary of changes:

- Rewrite the disambiguation algorithm to simplify it.
- Fixes to state tracking, e.g. use `state_key` instead of `user_id` when
  determining which member an event is acting on.
- Changes to `RoomMember`:
  * Make `RoomMember` "dumber" and don't let it mutate itself. This came about
    primarily because `update_profile` cannot live on `RoomMember` because it
    needs some information from `Room`. The other few mutating methods then
    looked odd so it seemed best to move them to `Room` so that the room takes
    care of updating its members.
  * Each `RoomMember` now contains all information to calculate its set of
    names:
      + `.name()` (short/ergonomic but potentially ambiguous),
      + `.unique_name()` (unique but may be contain MXID when not necessary),
      + `.disambiguated_name()` (shortest possible while being unique).
- Add some logging using the `tracing` crate.
- Improvements to `EventBuilder`:
  * Add a docstring.
  * Make it clear itself when building a sync response so the same builder can
    be reused for later sync responses.
- A few tests.
2020-07-15 12:52:25 +02:00
Denis Kasak bce7fe0217 Equivalence class -> equivalence set. 2020-07-15 11:58:52 +02:00
Denis Kasak 1fd21ee206 Fix docstrings regarding return value related to disambiguation. 2020-07-15 11:54:30 +02:00
Denis Kasak 8a4a4140b3 Remove stale comment. 2020-07-15 11:22:47 +02:00
Denis Kasak 62943f055d Rewrap docstrings and comments to 80 chars. 2020-07-15 11:21:01 +02:00
Denis Kasak ea149ebd8e Update docstring for disambiguation_updates. 2020-07-15 11:16:13 +02:00
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