Commit Graph

1256 Commits (3f41e5071b0058cd7b73cd891de65d80ff0ea707)

Author SHA1 Message Date
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ć e65915e159 Merge branch 'crypto-improvements' 2020-12-01 15:10:58 +01:00
Damir Jelić 4800e80492 matrix-sdk: Remove an unused import. 2020-12-01 15:08:53 +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ć ae2391791d crypto: Use a released sqlx version. 2020-12-01 13:25:51 +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
Damir Jelić 50bd408d48 matrix-sdk: Don't use try_from for the u32 -> UInt conversion. 2020-12-01 10:34:10 +01:00
Damir Jelić ce4d53a88c examples: Feature gate the cross signing bootstrap example. 2020-11-26 14:27:11 +01:00
Damir Jelić 7e9baf2707 crypto: Remove some dead code definitions. 2020-11-26 14:15:52 +01:00
Damir Jelić 3073883076 crypto: Fix a clippy warning. 2020-11-26 14:02:35 +01:00
Damir Jelić 7ec5a5ad1a Merge branch 'master' into crypto-improvements 2020-11-26 13:24:57 +01:00
Jonas Platte 0422bae924
Fix clippy lint rc_buffer 2020-11-25 19:01:28 +01:00
Jonas Platte 27ecab8574
Update ruma 2020-11-25 19:01:28 +01:00
Jonas Platte 5ca66a6985
Upgrade ruma dependency 2020-11-23 15:34:38 +01:00
Jonas Platte 2e387436cf
Remove unstable-synapse-quirks from default feature set for ruma
otherwise there is no point in exposing that feature
2020-11-23 15:27:43 +01:00
Jonas Platte 591f031246
Don't disable default-features on ruma
there are no features that are active by default, this is a no-op.
2020-11-23 14:58:48 +01:00
Damir Jelić dedb1eb745 Merge branch 'update-ruma' 2020-11-20 21:21:24 +01:00
Damir Jelić c40edcf2fc matrix-sdk: Try to lower our compile times, at least in the crypto part for now. 2020-11-20 20:35:48 +01:00
Damir Jelić 6509e72a74 Revert "base: Don't handle the wildcard case for member events anymore."
Using the exhaustive feature in ruma enables the appservice/federation
apis, adding some 10 more crates to our dependencies. Disable that
feature for now.

This reverts commit 41529a6bff.
2020-11-20 20:35:48 +01:00
Jonas Platte 38fec7f2b3 Upgrade ruma 2020-11-20 20:35:48 +01:00
Alejandro Domínguez 95243003c4 Update ruma 2020-11-20 20:14:18 +01:00
Damir Jelić 11fcf5c42f rust-sdk: Document the cross signing bootstrap method. 2020-11-05 14:33:45 +01:00
Damir Jelić b27f1b0e34 crypto: Fix some clippy warnings. 2020-10-30 14:38:29 +01:00
Damir Jelić b67cd4ddd2 crypto: Create a trusted public cross signing identity when we create a private one. 2020-10-30 13:21:14 +01:00
Damir Jelić 44cc1cef71 crypto: Let devices hold on to the private identity. 2020-10-30 11:41:48 +01:00
Damir Jelić 34bec59389 crypto: Hold on to the private identity in the store. 2020-10-30 11:34:55 +01:00
Damir Jelić cb95f576a5 crypto: Clear out the signatures when signing a device.
This avoids re-uploading all the existing signatures.
2020-10-29 15:37:29 +01:00
Damir Jelić 5c530cf9ee crypto: Upload signatures after verification is done. 2020-10-27 16:39:23 +01:00
Damir Jelić 30a78bb1d6 crypto: Add the private identity to the Sas object. 2020-10-27 14:21:22 +01:00
Damir Jelić 2077ea0ddf crypto: Split out the device_key signing method. 2020-10-27 13:48:51 +01:00
Damir Jelić e757d605f5 crypto: Allow users to be signed as well. 2020-10-27 13:29:19 +01:00
Damir Jelić 61a5293af5 cyrpto: Document the signing module. 2020-10-26 16:03:59 +01:00
Damir Jelić 6e83a4bbca crypto: Split out the signing module into two files. 2020-10-26 16:03:59 +01:00
Damir Jelić 5c14910126 crypto: WIP cross signing bootstrap. 2020-10-26 16:03:59 +01:00
Damir Jelić 8ed1e37cef crypto: Save the account if we create a new one. 2020-10-23 11:17:37 +02:00
Damir Jelić 5fd004bae5 crypto: Connect the private identity to the verification machine. 2020-10-23 11:17:13 +02:00
Damir Jelić 7de002b128 crypto: Fix some lint issues. 2020-10-22 16:40:05 +02:00
Damir Jelić f60dc7ed78 crypto: Allow cross signing identities to be stored/restored. 2020-10-22 16:25:25 +02:00
Damir Jelić 78d7f6c10b crypto: Fix a clippy issue. 2020-10-21 17:05:36 +02:00
Damir Jelić fa25ca4475 crypto: Make the pickle key encryption future proof. 2020-10-21 16:52:40 +02:00
Damir Jelić c9db63509f crypto: Add error handling to the signing module. 2020-10-21 16:24:10 +02:00
Damir Jelić ac0df5dea9 crypto: Properly handle errors in the pickle key decryption. 2020-10-21 15:28:43 +02:00
Damir Jelić d175c47a05 crypto: Use a random pickle key in the sqlite store. 2020-10-21 15:13:21 +02:00
Damir Jelić 959e8450af crypto: Use a transaction to create sqlite tables. 2020-10-21 14:01:27 +02:00