Commit Graph

636 Commits (7f364fd615823a5a5f81d78a8214cdc6a04e8efe)

Author SHA1 Message Date
Damir Jelić 7f364fd615 crypto: Allow only a identity to be verified when the verification finishes
QR code based verification doesn't verify a device when users are
verifying each other, generalize the logic that marks stuff as verified
so we can verify either only a device or an user identity or both.
2021-06-17 11:04:17 +02:00
Damir Jelić ada71586ac crypto: Scope the verifications per sender 2021-06-17 11:04:17 +02:00
Damir Jelić 533a5b92b0 crypto: Ignore key verification requests that have an invalid timestamp 2021-06-17 11:04:17 +02:00
Damir Jelić 5fa2b05622 matrix-sdk: Fix some more typos 2021-06-08 11:13:23 +02:00
Jonas Platte 74d0ac7c77
crypto: Depend on ruma directly
… instead of using matrix_sdk_common's re-exports
2021-06-07 18:55:56 +02:00
Jonas Platte 3bac536daf
Fix clippy lints
Automated via `cargo clippy --workspace --all-targets -Zunstable-options --fix`.
2021-06-07 15:51:18 +02:00
Damir Jelić 6f11244017 Merge branch 'typos' 2021-06-06 21:01:30 +02:00
Jonas Platte 6b685b671d
Replace Arc<Box<dyn (Crypto|State)Store>> by Arc<dyn (Crypto|State)Store> 2021-06-06 18:16:25 +02:00
Jonas Platte eed2b37885
Replace Arc<Box<DeviceId>> by Arc<DeviceId> 2021-06-06 18:15:18 +02:00
Jonathan de Jong f76cb1d123 the the 2021-06-05 14:55:01 +02:00
Jonathan de Jong f36fb55727 some more typos 2021-06-05 14:50:08 +02:00
Jonathan de Jong 74a6d39b9f various typos 2021-06-05 14:35:20 +02:00
Damir Jelić 0df782e93e crypto: Fix some clippy warnings 2021-06-04 19:26:32 +02:00
Damir Jelić 7cca358399 Merge branch 'master' into verification-improvements 2021-06-04 18:37:42 +02:00
Damir Jelić 96d4566111 crypto: Move the verification cache into a separate module 2021-06-04 18:13:52 +02:00
Damir Jelić 31e00eb434 crypto: Don't panic if we get a unknown cancel code 2021-06-04 18:13:52 +02:00
Damir Jelić 612fa46359 crypto: Replace a bunch of From implementations with macros 2021-06-04 18:13:52 +02:00
Damir Jelić 0a7fb2cbc3 crytpo: Mark verification requests as cancelled and as done 2021-06-04 18:13:52 +02:00
Damir Jelić f9fb530480 crypto: Forward cancel events to the sas object 2021-06-04 18:13:52 +02:00
Damir Jelić 2ec8893273 crypto: Silence a clippy warning until we add QR code verifications 2021-06-04 15:39:56 +02:00
Damir Jelić bd5dda370d crypto: Remove the sas event enums module 2021-06-04 15:16:38 +02:00
Damir Jelić ac04b0c36e crypto: Create a enum for the verification types 2021-06-04 15:16:38 +02:00
Damir Jelić a04afac963 crypto: Fix a clippy warning 2021-06-04 15:16:38 +02:00
Damir Jelić cf98681f19 crypto: Remove some duplicate code 2021-06-04 15:16:38 +02:00
Damir Jelić cbcf673d21 crypto: Make sure we send verification done events 2021-06-04 15:16:38 +02:00
Damir Jelić 9b20b00908 crypto: Log if we get a missmatch of the flow id 2021-06-04 15:16:38 +02:00
Damir Jelić f50d0cd3a6 crypto: Test starting a to-device verification request 2021-06-04 15:16:38 +02:00
Damir Jelić 1e48b15040 crypto: Add enums so we can handle in-room and to-device verifications the same 2021-06-04 15:16:38 +02:00
Damir Jelić b52f3fb11f crypto: Remove an allocation when calculating the SAS MAC 2021-06-04 15:16:38 +02:00
Damir Jelić d877c1cf8c crypto: Move the Done state into the common verification module 2021-06-04 15:16:38 +02:00
Damir Jelić 327445c6a0 crypto: Move the logic for marking identities as verified out of the Sas struct 2021-06-04 15:16:38 +02:00
Damir Jelić 8a5a0e511e crypto: Don't await while holding a sync lock 2021-06-04 15:16:38 +02:00
Damir Jelić 12619ab8b3 crypto: Log a warning if we get a start event without being ready 2021-06-04 15:16:38 +02:00
Damir Jelić 069ef3a661 crypto: Move the SAS starting logic into the verification request struct 2021-06-04 15:16:38 +02:00
Damir Jelić 999f0899f8 crypto: Move the outgoing requests to the VerificationCache 2021-06-04 15:16:38 +02:00
Damir Jelić 681f32b0a7 crypto: Fix a couple of typos 2021-06-04 15:16:38 +02:00
Damir Jelić 0e514b755f crypto: Move the CancelContent generation out of the sas module 2021-06-04 15:16:38 +02:00
Kévin Commaille 0c8e870bff
crypto: Implement From<EncryptedFile> for EncryptionInfo 2021-05-25 21:33:38 +02:00
Damir Jelić 300189bb37 crypto: Use the verification cache in verification requests 2021-05-24 16:41:27 +02:00
Damir Jelić d928f39f68 crypto: Add a VerificationCache struct 2021-05-24 16:41:27 +02:00
Damir Jelić 98c259dc1e crypto: Refactor the VerificationReqest struct a bit 2021-05-24 16:41:27 +02:00
Damir Jelić 110b8eb8dd Merge branch 'master' into sas-longer-flow 2021-05-18 09:07:50 +02:00
Jonas Platte cd77441d1b
Upgrade ruma to 0.1.0 (crates.io release) 2021-05-17 02:57:36 +02:00
Jonas Platte 15540e84e3
Upgrade ruma 2021-05-15 17:22:32 +02:00
Damir Jelić 3f57a2a9f2 Merge branch 'master' into sas-longer-flow 2021-05-13 11:26:40 +02:00
Damir Jelić 09a7858702 crypto: Initial support for the longer to-device verification flow 2021-05-13 11:15:56 +02:00
Damir Jelić ec55258be9 crypto: Handle decrypted to-device events as well
Usually only room keys and forwarded room keys are sent as encrypted
to-device events, those are specially handled to avoid accepting room
keys coming in unencrypted.

Some clients might send out other events encrypted which might lower
metadata leakage and the spec doesn't disallow it.

This patch handles decrypted events the same way as non-encrypted ones,
we're still special casing the decryption handling to avoid decryption
loops/bombs (i.e. events that are encrypted multiple times).
2021-05-13 11:08:13 +02:00
Devin Ragotzy 5f09d091cb Add cargo fmt to ci using nightly 2021-05-12 15:38:59 -04:00
Devin Ragotzy 2ef0c2959c Add use_small_heuristics option and run fmt 2021-05-12 15:37:29 -04:00
Devin Ragotzy c85f4d4f0c Add rustfmt config file and run over workspace 2021-05-12 15:36:52 -04:00