Commit Graph

205 Commits (5b758b8344f32f06e2ebc6e2725f7c6bfc30be41)

Author SHA1 Message Date
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
Damir Jelić 7ceda2f39c crypto: Update to the latest Ruma changes. 2020-07-31 12:05:07 +02:00
Damir Jelić a71c7b2964 crypto: Add a method to set the verification state of devices. 2020-07-30 15:54:56 +02:00
Damir Jelić d9fbc18777 crypto: Update to the latest Ruma changes. 2020-07-30 15:48:13 +02:00
Damir Jelić a58ace70a7 crypto: Fix the SAS MAC calculation KEYIDS -> KEY_IDS. 2020-07-30 15:45:19 +02:00
Damir Jelić 5a58fdff98 cyrpto: Fix a clippy warning. 2020-07-29 14:50:39 +02:00
Damir Jelić 21b0afe72c matrix-sdk: Add a Sas wrapper. 2020-07-29 14:19:47 +02:00
Damir Jelić a726ebab39 crypto: Allow Sas objects to be canceled. 2020-07-29 13:53:33 +02:00
Damir Jelić 4634efc092 crypto: More SAS content to to-device request logic. 2020-07-29 13:23:03 +02:00
Damir Jelić 117ebeaf4b crypto: Return requests when you want to accept a verification. 2020-07-29 12:47:36 +02:00
Damir Jelić 7f2df68d62 crypto: Expose some SAS methods publicly. 2020-07-28 16:24:45 +02:00
Damir Jelić a6fa9f99fd crypto: Hook up the verification machine. 2020-07-28 15:37:20 +02:00
Damir Jelić 7e95d85f17 crypto: Move the cryptostore behind a lock. 2020-07-28 15:03:44 +02:00
Damir Jelić 57b65ec8c4 crypto: Add a verification machine. 2020-07-28 14:45:53 +02:00
Damir Jelić 2d6fff7927 crypto: A bit of cleanup and docs. 2020-07-28 11:29:13 +02:00
Damir Jelić 792623f53d crypto: Fix a clippy warning. 2020-07-27 15:57:30 +02:00
Damir Jelić 6e67585bf6 crypto: Handle all the cancel states. 2020-07-27 15:56:28 +02:00
Damir Jelić 5471c07244 crypto: More canceling. 2020-07-27 15:34:18 +02:00
Damir Jelić 0b04f7960b crypto: Add more checks and cancels in the SAS state machine. 2020-07-27 15:28:14 +02:00
Damir Jelić 623f91733e crypto: More verification canceling. 2020-07-27 13:18:00 +02:00
Damir Jelić da3734ffc7 crypto: Add initial SAS canceling. 2020-07-27 13:16:56 +02:00
Damir Jelić 7128505768 Merge branch 'master' into sas-verification 2020-07-26 21:20:53 +02:00
Jonas Platte 6a96368048
Upgrade ruma 2020-07-26 16:58:27 +02:00
Damir Jelić 8c9c843bfc crypto: Fix a comment in the sas file. 2020-07-25 10:59:20 +02:00
Damir Jelić 094b2f90d6 Merge branch 'master' into sas-verification 2020-07-25 10:31:20 +02:00
Damir Jelić 2cbdca1f58 crypto: Make it easier to create canceled SasState. 2020-07-25 10:24:44 +02:00
Jonas Platte 7aea6160c3
Flatten nested match for less indentation 2020-07-25 02:31:52 +02:00
Jonas Platte ca88539ec4
Upgrade ruma 2020-07-25 02:23:10 +02:00
Damir Jelić 670755bfce crypto: Start checking and cancelling our SAS flows. 2020-07-24 17:51:20 +02:00
Damir Jelić 46c1657643 crypto: Fix some clippy warnings. 2020-07-24 16:04:47 +02:00
Damir Jelić 9ac1417292 crypto: Add a higher level simple and threadsafe SAS object. 2020-07-24 15:49:00 +02:00
Damir Jelić de94b903d6 crypto: Rename the Sas struct. 2020-07-24 11:32:38 +02:00
Damir Jelić 2f28976694 crypto: Make the Sas struct thread safe. 2020-07-24 11:26:45 +02:00
Damir Jelić 8ff8ea1342 crypto: Add docs for the SAS structs and methods. 2020-07-23 17:25:57 +02:00
Damir Jelić a1edef0ed5 crypto: Fix some clippy warnings. 2020-07-23 14:47:47 +02:00
Damir Jelić ee51ed78be crypto: Allow users to check the SAS even after a mac event was received. 2020-07-23 14:35:29 +02:00
Damir Jelić 2729f01e0f crypto: Move the emoji/decimal sas calculation out of the Sas object. 2020-07-23 14:26:50 +02:00
Damir Jelić e6730a7007 crypto: More SAS refactoring. 2020-07-23 14:14:29 +02:00
Damir Jelić 6fd852d573 crypto: Refactor out some common SAS methods. 2020-07-23 14:02:07 +02:00
Damir Jelić 7f2b268a59 Merge branch 'master' into sas-verification 2020-07-23 13:43:01 +02:00
Damir Jelić bb9adea5de crypto: Implement the whole SAS flow. 2020-07-23 13:41:57 +02:00
Damir Jelić b1ae5534a1 crypto: Hold a copy of the account to get the ed25519 key when doing SAS. 2020-07-23 11:19:19 +02:00
Damir Jelić 9214f01185 cyrpto: Fill out the method to get the MacEventContent. 2020-07-23 11:08:09 +02:00
Damir Jelić c35f73473e crypto: Add a copyright header to the sas file. 2020-07-23 09:21:11 +02:00
Jonas Platte bf54b17a2f
Upgrade ruma 2020-07-22 22:31:42 +02:00
Damir Jelić 4ce26f4fa0 crypto: Add support to get the SAS emoji out of a verification. 2020-07-22 16:41:16 +02:00
Damir Jelić cdcbcdfab3 crypto: Add support to display the decimal SAS value. 2020-07-22 15:11:34 +02:00
Damir Jelić 7a2d5c30db crypto: More Sas states and add an initial test. 2020-07-22 13:43:11 +02:00
Damir Jelić a7bc1a95d3 device: Add a method to create a Device from an Account. 2020-07-22 13:41:49 +02:00
Damir Jelić 4fa58bfaac crypto: Add getters for the user and device id in the account. 2020-07-22 13:40:47 +02:00
Damir Jelić e612326714 Merge branch 'master' into sas-verification 2020-07-22 11:30:58 +02:00
Damir Jelić 9ef784d665 crypto: Simplify the OlmMachine -> Device conversion. 2020-07-22 09:27:43 +02:00
Damir Jelić 2481fbbd27 crypto: Store the device signatures with the devices as well. 2020-07-21 17:33:47 +02:00
Damir Jelić a9d645cbcd crypto: Rewrite the device keys fetching in the SQLiteStore using filter_map. 2020-07-21 16:46:11 +02:00
Damir Jelić 578c927e58 crypto: Simplify the share_group_session method. 2020-07-21 14:13:10 +02:00
Damir Jelić 24baf1fe0f crypto: More doc fixes. 2020-07-21 13:04:51 +02:00
Damir Jelić 861c07d5ce cyrpto: Fix the docs for the Session encrypt method. 2020-07-21 12:59:15 +02:00
Damir Jelić 451d902604 crypto: Allow that many arguments on the from_pickle session method. 2020-07-21 12:57:31 +02:00
Damir Jelić c3f00c96f8 crypto: Don't require the account to be passed when encrypting. 2020-07-21 12:46:06 +02:00
Damir Jelić e50cf39a17 crypto: Store a copy of the user_id/device_id and identity keys in sessions. 2020-07-21 12:40:23 +02:00
Damir Jelić 3f1439fe28 crypto: Move the olm encryption logic into the Session struct. 2020-07-21 12:03:05 +02:00
Damir Jelić 3d6872607e crypto: Move the m.room_key content creation into the outbound group session. 2020-07-21 11:12:20 +02:00
Damir Jelić fe33430e9b crypto: Use DeviceId instead of str everywhere. 2020-07-21 10:48:15 +02:00
Damir Jelić b22324b305 crypto: Split out the olm module into separate files. 2020-07-21 10:38:14 +02:00
Devin R 037d62b165 matrix-sdk-crypto: Remove map clone from user_devices 2020-07-20 08:10:42 -04:00
Devin R 8c39db002b Remove inaccurate comment about DeviceId 2020-07-18 08:52:51 -04:00
Devin R e27b6fb51e matrix-sdk-crypto: Fix map_clone clippy warning 2020-07-18 08:52:51 -04:00
Devin R 807435c043 Updates DeviceId to be Box<DeviceId> 2020-07-18 08:51:19 -04:00
Devin R 71f2a042c2 Rename Stub -> Sync for all ruma events 2020-07-18 08:37:43 -04:00
Damir Jelić d273786d83 matrix-sdk: Bump our dependencies. 2020-07-17 10:01:22 +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ć de1988265d crypto: Move the outbound session creation logic into the account. 2020-07-15 15:39: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ć 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
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
Damir Jelić 18b444aac5 crypto: Move the uploaded key count handing into the account. 2020-07-13 16:46:51 +02:00