Commit graph

103 commits

Author SHA1 Message Date
Damir Jelić
24ce4881c7 crypto: Add a method to save/load arbitrary objects from a CryptoStore.
This actually adds trait methods that save/load strings from the
CryptoStore. We add a wrapper for the CryptoStore since we can't mix
trait objects and generics, so we add generic methods to save/load
anything that implements Serialize/Deserialize.
2020-09-16 16:03:19 +02:00
Damir Jelić
22daf0d81e Merge branch 'to-device-txn-uuid' into crypto-improvements 2020-09-04 12:54:40 +02:00
Damir Jelić
adf8905d9f crypto: Rename the memory stores into caches and reorder the store module. 2020-09-04 12:42:40 +02:00
Damir Jelić
7b3dfe2f27 crypto: Move the device and user identities under one module. 2020-09-04 10:51:46 +02:00
Jonas Platte
73c104cac1
Replace IncomingToDeviceRequest with customized request type 2020-09-03 20:02:55 +02:00
Damir Jelić
95c8708995 crypto: Document and rename the mark_requests_as_sent() method. 2020-08-24 14:49:57 +02:00
Damir Jelić
edea5e1c51 crypto: Fix a clippy warning. 2020-08-21 16:46:28 +02:00
Damir Jelić
b3941ca254 crypto: Verify user identities when we're the first one to confirm as well. 2020-08-21 16:39:15 +02:00
Damir Jelić
c3c6428717 crypto: Remove some clippy warnings. 2020-08-21 16:31:02 +02:00
Damir Jelić
de90da4adc crypto: Make the verification machine compatible with how we queue up requests. 2020-08-21 16:26:34 +02:00
Damir Jelić
89b56b5af8 crypto: Don't expose the btree map of the master key dirrectly.
This implements PartialEq for the master key so we can check if they
have changed when doing SAS.
2020-08-20 15:06:49 +02:00
Damir Jelić
7f23cbbeb5 crypto: Add a TODO about cross signing signatures. 2020-08-19 14:49:40 +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ć
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ć
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ć
6db7eb0694 crypto: Add a method to directly verify a device. 2020-08-17 17:36:07 +02:00
Damir Jelić
43aea6e482 crypto: Rename Device to ReadOnlyDevice. 2020-08-17 16:17:28 +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ć
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ć
d706140a8f crypto: Fix a SAS docstring. 2020-08-12 12:49:29 +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ć
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ć
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
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
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