Commit Graph

288 Commits (8b56546565f4cdeebfbab4f25f18f4772ba58ced)

Author SHA1 Message Date
Damir Jelić 317a141e07 crypto: If our own identity passed a SAS flow, mark it as verified. 2020-08-19 14:34:18 +02:00
Damir Jelić 3990e50ca6 crypto: Store the verified identities in the SAS states. 2020-08-19 14:28:16 +02:00
Damir Jelić 90ea0229f2 crypto: Rename TrustState to LocalTrust since.
We might still trust the device event if our local trust isn't set, so
rename the enum to better reflect that meaning.
2020-08-19 11:20:08 +02:00
Damir Jelić a42af5da69 crypto: Let the device hold on to identities.
This makes it possible to check the verification state of the device
directly.
2020-08-19 10:58:14 +02:00
Damir Jelić f63a01a85b crypto: Remove a stale TODO. 2020-08-18 15:36:04 +02:00
Damir Jelić 27e1fb9a35 crypto: Pass the user identity to the SAS object when a start event is received. 2020-08-18 15:25:00 +02:00
Damir Jelić c21517c61e crypto: Store the changed user identities. 2020-08-18 15:23:37 +02:00
Damir Jelić f626f2b24e crypto: Add some logging for the user identity update logic. 2020-08-18 15:22:30 +02:00
Damir Jelić 37a7f69e03 crypto: Implement storage for the user identities in the memory store. 2020-08-18 15:13:56 +02:00
Damir Jelić 38cf771f1f crypto: Pass the identity further through the SAS layer and try to verify it. 2020-08-18 14:24:27 +02:00
Damir Jelić 6d0b73cb3d crypto: Pass the user identity to the SAS object when doing verifications. 2020-08-18 13:37:02 +02:00
Damir Jelić f96437a242 crypto: Initial scaffolding for handling user identities in key queries. 2020-08-18 12:50:03 +02:00
Damir Jelić 6db7eb0694 crypto: Add a method to directly verify a device. 2020-08-17 17:36:07 +02:00
Damir Jelić 84c0311d80 crypto: Rename the UserDevicesWrap struct. 2020-08-17 17:12:39 +02:00
Damir Jelić de097d3ca0 crypto: Rename UserDevices to ReadOnlyUserDevices. 2020-08-17 17:01:38 +02:00
Damir Jelić 0f26e7e3bc crypto: Fix the doc for the read-only device. 2020-08-17 16:40:37 +02:00
Damir Jelić 91db502cfe crypto: Rename DeviceWrap to Device. 2020-08-17 16:36:50 +02:00
Damir Jelić 43aea6e482 crypto: Rename Device to ReadOnlyDevice. 2020-08-17 16:17:28 +02:00
Damir Jelić fd8377bce2 crypto: Add device wrappers so that the verification can be started with a device. 2020-08-17 15:36:45 +02:00
Damir Jelić 16a115d27e Merge branch 'up-ruma' into master 2020-08-17 11:17:02 +02:00
Damir Jelić 8167f5e9de crypto: Simplify the function signature of the share group session method. 2020-08-16 16:25:48 +02:00
Damir Jelić 5876c89858 crypto: The mark_user_as_changed method doesn't need to be public. 2020-08-15 15:51:04 +02:00
Jonas Platte 5040be042f
Update ruma 2020-08-15 15:17:27 +02:00
Damir Jelić 09f009ebd7 matrix-sdk: Bump our deps. 2020-08-14 17:11:54 +02:00
Damir Jelić 664d8c239c crypto: Don't share group sessions with blacklisted devices. 2020-08-14 16:20:49 +02:00
Damir Jelić 97ad060d4b crypto: Test that we can create other users identities. 2020-08-14 16:18:18 +02:00
Damir Jelić f4de3580b6 crypto: Expose the device/identity verification methods through the identities. 2020-08-14 15:32:44 +02:00
Damir Jelić 0fc5134563 crypto: Add methods to check if a cross signing key signed a device. 2020-08-14 15:06:24 +02:00
Damir Jelić b0de9d1809 crypto: Allow some test methods to be dead code since macOS can't use them. 2020-08-14 15:04:59 +02:00
Damir Jelić 75fa7e97f9 crypto: Remove some unneeded clones. 2020-08-14 14:29:53 +02:00
Damir Jelić d21e8213b5 crypto: Don't panic if the key id can't be parsed. 2020-08-14 14:25:51 +02:00
Damir Jelić 181c2a92de crypto: Initial scaffolding for the public cross signing keys. 2020-08-14 14:10:29 +02:00
Damir Jelić 08d76f2ff4 crypto: Pass the device key id to the verify signature method. 2020-08-14 14:08:53 +02:00
Damir Jelić 5b758b8344 crypto: Don't allow dead code in the SAS layer anymore. 2020-08-14 11:09:50 +02:00
Damir Jelić 499f2796ba crypto: Add some logging to the MAC calculation for SAS. 2020-08-14 10:57:17 +02:00
Damir Jelić df0444faa5 crypto: Test the full SAS flow from the Olm machine. 2020-08-13 16:46:11 +02:00
Damir Jelić b4c1b26f96 crytpo: Store the SAS object in the machine if we're starting it. 2020-08-13 16:45:12 +02:00
Damir Jelić 0245782cf4 crypto: Better grammar for a panic message. 2020-08-13 15:59:17 +02:00
Damir Jelić 87d0102663 crypto: Test the Olm machine with the default store. 2020-08-13 15:57:31 +02:00
Damir Jelić 6ee8b07cfe crypto: Test that session expiration works correctly. 2020-08-13 15:03:28 +02:00
Damir Jelić 344631b4ee crypto: Respect the encryption settings of a room when creating sessions. 2020-08-13 14:41:59 +02:00
Damir Jelić 9b8e11aab9 crypto: Fix the docs for our features. 2020-08-13 11:06:26 +02:00
Damir Jelić a0abffd026 crypto: Fix the link to the share group session method. 2020-08-13 11:04:37 +02:00
Damir Jelić 36ca784690 crypto: Expose a method to get all devices of an user. 2020-08-12 17:16:27 +02:00
Damir Jelić 18e597aa79 crypto: More doc fixes. 2020-08-12 15:14:16 +02:00
Damir Jelić 407f9a3da8 matrix-sdk: Make sure to not send out multiple group share requests at once. 2020-08-12 15:12:51 +02:00
Damir Jelić 82c3a795ff crypto: More doc improvements. 2020-08-12 13:28:16 +02:00
Damir Jelić ccda5c7260 crypto: Small doc improvements to the OlmMachine. 2020-08-12 13:11:51 +02:00
Damir Jelić d706140a8f crypto: Fix a SAS docstring. 2020-08-12 12:49:29 +02:00
Damir Jelić 8351858be7 crypto: Expose a method to get a users device. 2020-08-12 12:48:22 +02:00
Damir Jelić 7cb25361b2 matrix-sdk: Expose an API to start SAS verifications. 2020-08-12 11:39:47 +02:00
Damir Jelić c4ed5b6cda matrix-sdk: Upgrade our deps. 2020-08-11 16:54:58 +02:00
Damir Jelić 0d2f8c6d0f crypto: Fix some clippy warnings. 2020-08-11 16:01:48 +02:00
Damir Jelić fa1a40543c crypto: Add a missing license header to the sas helpers file. 2020-08-11 15:55:13 +02:00
Damir Jelić 7637e79f2c matrix-sdk: Fix the tarpaulin skip directives. 2020-08-11 15:49:04 +02:00
Damir Jelić d0a5b86ff3 crypto: Remove our lock around the cryptostore. 2020-08-11 15:39:50 +02:00
Damir Jelić 707b4c1185 crypto: Put a bunch of crypto store stuff behind atomic references. 2020-08-11 15:17:33 +02:00
Damir Jelić 2437a92998 crypto: Don't require the account loading method to borrow self mutably. 2020-08-11 15:12:15 +02:00
Damir Jelić 947fa08dae crypto: Don't require the load_account to mutably borrow self. 2020-08-11 15:08:07 +02:00
Damir Jelić 8f4ac3da7f crypto: Change the way we load the devices/sessions in the SqliteStore. 2020-08-11 14:43:18 +02:00
Damir Jelić 01bcbaf063 crypto: Remove most mutable self borrows from the crypto-store trait. 2020-08-11 14:34:42 +02:00
Damir Jelić ac2469d270 crypto: Change the way we check if an user is already tracked. 2020-08-11 13:45:32 +02:00
Damir Jelić db553b2040 crypto: Fix some clippy warnings. 2020-08-11 13:38:20 +02:00
Damir Jelić eeb6a811c0 crypto: Make the in-memory stores threadsafe and cloneable. 2020-08-11 13:18:58 +02:00
Damir Jelić 528483ef0e crypto: Remove the last mutable self borrows in the Olm machine methods. 2020-08-11 12:22:14 +02:00
Damir Jelić 72168ce084 crypto: Fix the unknown method tests fot the SAS state transitions. 2020-08-11 11:51:34 +02:00
Damir Jelić 6c85d3e28f crypto: Use TryFrom to check the accepted SAS protocols. 2020-08-11 11:24:29 +02:00
Damir Jelić d5a853f3da crypto: More SAS tests for all the unknown SAS methods. 2020-08-11 11:05:22 +02:00
Damir Jelić c15ffb989a crypto: Remove an unused import. 2020-08-11 09:48:01 +02:00
Damir Jelić 2b78f05aad crypto: More SAS tests. 2020-08-11 09:28:28 +02:00
Damir Jelić 1f0a96e31d crypto: Disable the SAS timeout test on macOS. 2020-08-10 17:26:15 +02:00
Damir Jelić 6593cce778 crypto: Simplify the Instant substraction. 2020-08-10 16:53:15 +02:00
Damir Jelić d7bcf42a2b crypto: False alarm with the deadlock we just didn't use the right method. 2020-08-10 16:18:20 +02:00
Damir Jelić 18b655f829 crypto: Test the cancellation of timed out verifications. 2020-08-10 15:55:08 +02:00
Damir Jelić e2e70d6583 crypto: Cancel timed out verifications. 2020-08-10 15:24:22 +02:00
Damir Jelić 7bcdc2a3b6 Merge branch 'master' into sas-timeout 2020-08-10 14:57:32 +02:00
Damir Jelić 7eeff64059 crypto: Cancel timed out events on the state transitions. 2020-08-10 14:29:38 +02:00
Damir Jelić 6c4e2fa508 crypto: Remove mutable borrows in the tests. 2020-08-10 14:15:47 +02:00
Damir Jelić d5cd608045 base: Remove some unnecessary mutable borrows of the olm machine. 2020-08-10 14:11:55 +02:00
Jonas Platte d83fc971ce
Update ruma 2020-08-10 13:58:39 +02:00
Damir Jelić 87bcba3561 crypto: Add timestamps to the SAS struct so we can check if it timed out. 2020-08-10 13:30:12 +02:00
Damir Jelić 81e9a7cefc crypto: Pass a String when setting the other SAS pubkey. 2020-08-10 10:18:57 +02:00
Jonas Platte d016ce1848
Use identifier macros in tests 2020-08-06 13:03:32 +02:00
Devin Ragotzy a3b4cab22e matrix_sdk_crypto: Fix clippy warnings add wasm emscripten to .gitignore 2020-08-04 20:02:09 -04:00
Damir Jelić 807432b31f crypto: Calculate the correct extra info when generating emojis. 2020-08-04 13:54:00 +02:00
Damir Jelić 69d2a00759 crypto: Add a TODO about SAS timing out. 2020-08-04 12:56:55 +02:00
Damir Jelić be01ee2de0 crypto: Cancel the verification if we find a MAC mismatch. 2020-08-04 12:31:56 +02:00
Damir Jelić 408fe5da4b crypto: Check that the other device had a valid MAC. 2020-08-04 12:14:19 +02:00
Damir Jelić 2bf8c99dfe Merge branch 'master' into sas-verification 2020-08-04 11:23:24 +02:00
Damir Jelić 26ec0c6368 crypto: Proptest the emoji/decimal calculation. 2020-08-03 17:22:44 +02:00
Damir Jelić 9f0fbcccf6 crypto: Remove verification objects that are done or canceled. 2020-08-03 16:18:35 +02:00
Damir Jelić e431ba0bf5 crypto: Fix some clippy warnings. 2020-08-03 15:05:19 +02:00
Damir Jelić f4517c150c crypto: Add more log lines to the SAS code. 2020-08-03 14:51:04 +02:00
Damir Jelić e37229554b crypto: Make sure that we don't hold on to a mutex guard over an await. 2020-08-03 14:49:33 +02:00
Damir Jelić df9da7539a crypto: Expose some more SAS info publicly. 2020-08-03 14:33:15 +02:00
Damir Jelić 1787d2ebe6 crypto: Hook up marking the device as verified. 2020-08-03 12:38:43 +02:00
Devin Ragotzy 0ac2b84c02 Unify import style across workspace 2020-08-02 08:05:43 -04:00
Devin Ragotzy ed1f12ce37 Run cargo fmt with merge-imports true 2020-08-02 07:46:02 -04:00
Damir Jelić 1a40491c0b matrix-sdk: Fix some clippy warnings. 2020-07-31 15:18:03 +02:00
Damir Jelić 7ecd4a035f crypto: Split out the Sas logic into different files. 2020-07-31 14:54:08 +02:00