Damir Jelić
|
6f5352b9a9
|
crypto: Test the signature checking of user identities.
|
2020-08-19 17:52:38 +02:00 |
Damir Jelić
|
eb16737d3b
|
crypto: Add some comments about the order of signature checks.
|
2020-08-19 15:35:34 +02:00 |
Damir Jelić
|
56309ae12c
|
matrix-sdk: Bump the versions of our deps.
|
2020-08-19 14:52:11 +02:00 |
Damir Jelić
|
7f23cbbeb5
|
crypto: Add a TODO about cross signing signatures.
|
2020-08-19 14:49:40 +02:00 |
Damir Jelić
|
3153a81cd2
|
crypto: Add support to check the cross signing verification state of a device.
|
2020-08-19 14:47:22 +02:00 |
Damir Jelić
|
c3e593d998
|
crypto: The device identity can be our own, so store the identity enum instead.
|
2020-08-19 14:43:49 +02:00 |
Damir Jelić
|
c2a386b889
|
crypto: Fix a clippy warning.
|
2020-08-19 14:40:04 +02:00 |
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 |
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 |