Damir Jelić
8c4acf54e0
crypto: Reorder the errors so unpickling now returns the timestamp error.
2020-09-02 12:11:06 +02:00
Damir Jelić
c652762255
crypto: Allow user identities to be seralized/deserialized.
2020-09-02 11:54:04 +02:00
Damir Jelić
4bab678e46
crypto: Allow most of the ReadOnlyDevice to be serialized.
2020-09-02 11:49:49 +02:00
Damir Jelić
81b127b6e7
crypto: Modify all the pickling logic so we return serializeable structs.
2020-09-02 11:45:35 +02:00
Damir Jelić
269cfc3d34
crypto: Add a pickled account struct making account storing easier.
2020-09-02 09:37:10 +02:00
Damir Jelić
987d87cd5d
crypto: Use the correct async-trait macro for the CryptoStores.
2020-09-01 17:41:30 +02:00
Damir Jelić
0de4a21320
crypto: Expose some missing structs that are needed to implement a cryptostore.
2020-09-01 17:39:51 +02:00
Damir Jelić
a2bfa08e09
crypto: Initial decryption method for key exports.
2020-08-26 19:14:24 +02:00
Damir Jelić
39628a308b
matrix-sdk: Allow any event content to be sent out with room_send().
2020-08-26 15:41:27 +02:00
Damir Jelić
6760f81498
matrix-sdk: Update Ruma.
2020-08-26 13:40:38 +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ć
8d39821a1f
crypto: Remove some unused imports from the top level module.
2020-08-24 14:34:22 +02:00
Damir Jelić
2bcbf1eca4
Merge branch 'power-ev-overflow' into master
2020-08-24 14:27:02 +02:00
Damir Jelić
298c260c5f
crypto: Document the outgoing request types.
2020-08-23 17:03:04 +02:00
Devin Ragotzy
72614e4252
matrix_sdk_crypto: Appease clippy
2020-08-22 08:00:32 -04: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ć
002531349e
crypto: Decluter the main doc page a bit.
2020-08-21 15:06:54 +02:00
Damir Jelić
e38bfc64f4
crypto: Streamline the key claiming so we use the new mark request as sent method.
2020-08-21 14:40:49 +02:00
Damir Jelić
93e1967119
crypto: Initial refactor to switch to the outgoing_requests queue.
2020-08-21 13:35:01 +02:00
Damir Jelić
aee40977a3
crypto: Clamp the rotation period ms so users can't wedge E2E.
...
Users may set a very small rotation period this might mean that a
session might expire by the time it's shared ending up in a loop where
we constantly need to share a group session yet never manage to send a
message.
2020-08-21 12:50:16 +02:00
Damir Jelić
ce93869915
crypto: Return an Option instead of an empty result for the key uploads.
2020-08-21 09:50:01 +02:00
Damir Jelić
202c20feda
crypto: Rename the method to set the local trust of a device.
2020-08-20 18:01:34 +02:00
Damir Jelić
c307690c2e
crypto: Fix a clippy warning and some spelling.
2020-08-20 16:06:06 +02:00
Damir Jelić
552a12eeed
crypto: More docs for the user identities.
2020-08-20 15:52:40 +02:00
Damir Jelić
c2ad298963
crypto: Check that the user ids match for the cross signing keys.
2020-08-20 15:40:49 +02:00
Damir Jelić
d908d0f817
crypto: Don't allow user identities to verify devices of other users.
2020-08-20 15:17:19 +02:00
Damir Jelić
9edc876160
crypto: Check that the master key and subkeys have the same user id.
2020-08-20 15:14:58 +02:00
Damir Jelić
398edbbe0c
crypto: Reset the verification state of our identity if the master keys change.
2020-08-20 15:13:55 +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ć
a57f63d614
crypto: Document the user identities.
2020-08-20 14:44:16 +02:00
Damir Jelić
74dd0a00d3
crypto: Simplify the default hashmaps in the memory stores.
2020-08-20 12:23:18 +02:00
Damir Jelić
b97e3d7bae
crypto: Fix a clippy warning.
2020-08-20 10:49:14 +02:00
Damir Jelić
c3eb4d8106
crypto: Simplify some more function definitions.
2020-08-20 10:36:58 +02:00
Damir Jelić
ea49a35b43
crypto: Simplify the function signature of share_group_session.
2020-08-20 10:25:05 +02:00
Damir Jelić
a99e47c310
crypto: Shorten some log lines.
2020-08-20 10:23:16 +02:00
Damir Jelić
69fbe65ac4
crypto: Add some docs for the cross signing keys handling method.
2020-08-20 10:21:00 +02:00
Damir Jelić
aaa15c768c
crypto: Simplify the Olm message map construction.
2020-08-20 10:19:55 +02:00
Damir Jelić
58185e08e8
crypto: Move the olm_encrypt() method into the higher level Device.
2020-08-20 10:18:36 +02:00
Damir Jelić
1bd15b9fdd
crypto: Remove some unneeded clones.
2020-08-19 18:04:06 +02:00
Damir Jelić
23126c4e48
crypto: Disable the sqlite store test if the feature is disabled.
2020-08-19 17:55:28 +02:00
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
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
Damir Jelić
a7a9ac24ed
crypto: Move the key count field into the account.
2020-07-13 15:49:16 +02:00
Damir Jelić
b2ccb61864
crypto: Add the device id and identity keys to the megolm session.
...
This way we don't need to pass in the account to encrypt events.
2020-07-13 14:32:59 +02:00
Damir Jelić
ac264918b8
crypto: Move the megolm decryption logic into the session.
2020-07-13 14:00:42 +02:00
Damir Jelić
8e19c583c6
crypto: Move the megolm encryption logic into the outbound group session.
2020-07-13 13:19:25 +02:00
Damir Jelić
c2f1e4de64
crypto: Disable a clippy warning.
2020-07-11 23:15:10 +02:00
Jonas Platte
eea00301ff
Remove immediately-deref'ed double references
2020-07-11 21:20:02 +02:00
Jonas Platte
9b5f95672b
Use js_int macros to improve readability
2020-07-11 21:06:21 +02:00
Jonas Platte
1fcb68c59f
Remove unused dependencies
2020-07-11 20:55:05 +02:00
Damir Jelić
18ccd30c8c
crypto: Add a bunch of TODO lines documenting how to refactor stuff further.
2020-07-11 12:05:52 +02:00
Damir Jelić
df2bcf6f1f
crypto: Style fix for a doc comment.
2020-07-11 09:45:52 +02:00
Damir Jelić
27eeeb8db6
crypto: Move the one-time key signing into the accoung.
2020-07-10 17:53:04 +02:00
Damir Jelić
6ded76a5a7
crypto: Move the device_keys() method into the account.
2020-07-10 17:10:34 +02:00
Damir Jelić
58d79ca9c6
crypto: Put the user id and device id into the account.
2020-07-10 15:43:32 +02:00
Devin R
dcc3d6e755
sdk_base: Remove room_id as argument from all Room methods
...
Remove room_id paramater from some client methods. Make CreationContent
two methods of RoomBuilder. Add docs for MessageWrapper.
2020-07-10 08:59:02 -04:00
Devin R
eb5949dbc2
Move matrix-sdk to ruma monorepo
2020-07-10 08:59:00 -04:00
Damir Jelić
283cf0d782
matrix-sdk: Bump all our deps.
2020-07-07 15:52:08 +02:00
Damir Jelić
262a61afc9
crypto: Simplify the group session pair creation.
2020-06-25 13:31:30 +02:00