Commit Graph

477 Commits (077c20ed740705e9a131dbf320136d66de20beb7)

Author SHA1 Message Date
Damir Jelić 643526987f Merge branch 'master' into new-state-store 2021-01-05 21:40:39 +01:00
Damir Jelić b311a31c9e matrix-sdk: Bump our tokio and reqwest versions. 2021-01-05 21:39:52 +01:00
Damir Jelić 8924865c9c crypto: Fix a couple of new clippy warnings. 2021-01-04 17:39:40 +01:00
Damir Jelić c6a80dc921 Merge branch 'master' into new-state-store 2021-01-04 17:34:33 +01:00
Damir Jelić 4c6c1d2107 matrix-sdk: Get rid of the common macros crate
This crate was used to support different trait bounds on WASM vs other
targets, since we only define async traits in a couple of places having
a whole crate to support this feels a bit excessive.

This patch defines a target specific super trait instead, this lowers
the compile time a couple of seconds.
2021-01-04 16:34:14 +01:00
Damir Jelić 2e3b6fba7d common: Use the re-exported versions of js_int and assign 2021-01-04 15:29:49 +01:00
Damir Jelić 108d4ebffe Merge branch 'master' into new-state-store 2021-01-04 14:16:15 +01:00
Damir Jelić d84a852ae9 matrix-sdk: Bump ruma to a released version. 2021-01-04 14:06:07 +01:00
Damir Jelić bafe9a0f61 crypto: Fix a couple of clippy warnings. 2021-01-02 13:47:53 +01:00
Damir Jelić 0d99d8cc23 crypto: Test verification request starting up to SAS. 2020-12-24 15:22:51 +01:00
Damir Jelić 007e452d39 Merge branch 'master' into crypto-improvements 2020-12-22 15:53:08 +01:00
Damir Jelić 9245b2a89a crypto: Properly canonicalize the json when verifying signatures as well. 2020-12-22 15:45:42 +01:00
Damir Jelić d39e3141fc crypto: Use CanonicalJsonValue for all the signature calculations. 2020-12-22 14:12:57 +01:00
Damir Jelić b119b30939 crypto: Clippy warnings. 2020-12-18 19:26:51 +01:00
Damir Jelić 55436c6514 crypto: Add a test for verification request flows. 2020-12-18 18:23:42 +01:00
Damir Jelić ec863a928d crypto: More clippy warnings. 2020-12-18 13:57:57 +01:00
Damir Jelić 1fd8c2052e crypto: Fix a bunch of clippy warnings. 2020-12-18 13:50:02 +01:00
Damir Jelić 897c6abe92 crypto: Fix our tests now that we support in-room verifications. 2020-12-18 12:55:06 +01:00
Damir Jelić f735107caf crypto: Remove an unused argument. 2020-12-17 17:03:42 +01:00
Damir Jelić 48f43a4af1 crypto: Remove some unused imports. 2020-12-17 16:28:12 +01:00
Damir Jelić 4ad4ad1e94 crypto: Send out done events for in-room verifications. 2020-12-17 15:50:13 +01:00
Damir Jelić 79102b3390 crypto: Make the cancelations output only CancelContents. 2020-12-17 12:15:11 +01:00
Damir Jelić b6e28e2280 crypto: WIP more work on in-room verifications now up to accepting them. 2020-12-15 16:35:54 +01:00
Damir Jelić 5105629c08 crypto: WIP handle in-room start events. 2020-12-11 16:13:58 +01:00
Damir Jelić 7570cf5ac2 crypto: WIP genrealize the sas so it can handle in-room and to-device events. 2020-12-11 15:42:49 +01:00
Damir Jelić b0ac9d3320 crypto: WIP change the types of the sas sturcts to allow in-room verifications. 2020-12-10 17:49:28 +01:00
Damir Jelić 1bb5b42b1d crypto: Prepare the sas structs to handle in-room verifications. 2020-12-10 15:18:28 +01:00
Damir Jelić b9ddbb11af crypto: Move the inner sas struct into a separate module. 2020-12-10 14:07:47 +01:00
Damir Jelić 7198b0daba crypto: WIP key verification request handling. 2020-12-09 17:18:23 +01:00
Damir Jelić 5babd71341 crypto: Copy the relates to field to the unencrypted content when encrypting 2020-12-09 17:16:03 +01:00
Damir Jelić d9e5a17ab0 crypto: Use a native Rust sha2 implementation to calculate the commitment 2020-12-08 16:21:29 +01:00
Damir Jelić b5c61af472 crypto: Move the base64 helpers into a common module. 2020-12-08 16:21:29 +01:00
Damir Jelić fd705b7d5e crypto: Canonicalize the start event content before calculating the commitment
This fixes: #117.
2020-12-08 16:02:51 +01:00
Damir Jelić 8e53982bcd Merge branch 'master' into crypto-improvements 2020-12-08 15:06:14 +01:00
Damir Jelić 40d13d9b59 cyrpto: Another timing based test that only works on Linux. 2020-12-08 13:37:55 +01:00
Damir Jelić 4ab6ae7f30 crypto: Fix an os_target definition. 2020-12-08 13:15:19 +01:00
Damir Jelić c8dd6bfd26 crypto: Scope the imports for the unwedging test into the test. 2020-12-08 12:56:16 +01:00
Damir Jelić b982d36303 crypto: Run the time sensitive tests only on linux. 2020-12-08 12:34:59 +01:00
Damir Jelić 35247fac2a crypto: Fix a lint issue. 2020-12-08 10:50:58 +01:00
Damir Jelić aa1a64628f crypto: Remove a bunch of unneeded whitespace in a log line. 2020-12-05 14:59:40 +01:00
Damir Jelić 0e66640b9f crypto: Log both user id versions when the device keys mismatch. 2020-12-05 14:59:40 +01:00
Damir Jelić 3f41e5071b crypto: Preserve the relationship info while decrypting events. 2020-12-05 14:59:40 +01:00
Damir Jelić 9eb17e757c matrix-sdk: Update ruma. 2020-12-05 14:59:40 +01:00
Damir Jelić 804bd221b2 crypto: Improve key imports.
This patch changes so key imports load all existing sessions at once
instead loading a single session for each session we are importing. It
removes the need to lock the session when we check the first known index
and exposes the total number of sessions the key export contained.
2020-12-02 11:12:46 +01:00
Damir Jelić e20b1efae9 crypto: Store private identities and accounts with the Changes struct as well. 2020-12-01 17:14:32 +01:00
Damir Jelić 5d0ff961b2 crypto: Check the Olm message hash if we fail to decrypt an Olm message.
Wether by accident (the next_batch token doesn't get stored properly) or
by malicious intent (the server replays a message) an Olm encrypted to-device
message may appear multiple times.

This is usually fine since nothing bad happens, we don't decrypt the message
and the message gets thrown away.

Since the introduction of Olm session unwedging an undecryptable message
leads to the creation of a new fresh Olm session. To avoid this we
remember which Olm messages we already decrypted so they don't trigger
an unwedging dance.
2020-12-01 14:50:04 +01:00
Damir Jelić 270350cd34 crypto: Save the olm message hash. 2020-12-01 14:38:03 +01:00
Damir Jelić 24592adbba crypto: Return a higher level struct when decrypting olm messages instead of tuples 2020-12-01 12:41:11 +01:00
Damir Jelić efe659910f crypto: Remove some stale TODOs. 2020-12-01 11:20:55 +01:00
Damir Jelić 08babb6d6c crypto: Document the new cross signing methods in the store. 2020-12-01 10:54:41 +01:00