Commit Graph

35 Commits (24592adbba3c7d3574f631bdbadc67f85192e18e)

Author SHA1 Message Date
Damir Jelić 7ec5a5ad1a Merge branch 'master' into crypto-improvements 2020-11-26 13:24:57 +01:00
Jonas Platte 0422bae924
Fix clippy lint rc_buffer 2020-11-25 19:01:28 +01:00
Damir Jelić b27f1b0e34 crypto: Fix some clippy warnings. 2020-10-30 14:38:29 +01:00
Damir Jelić b67cd4ddd2 crypto: Create a trusted public cross signing identity when we create a private one. 2020-10-30 13:21:14 +01:00
Damir Jelić 44cc1cef71 crypto: Let devices hold on to the private identity. 2020-10-30 11:41:48 +01:00
Damir Jelić 34bec59389 crypto: Hold on to the private identity in the store. 2020-10-30 11:34:55 +01:00
Damir Jelić 2077ea0ddf crypto: Split out the device_key signing method. 2020-10-27 13:48:51 +01:00
Damir Jelić e757d605f5 crypto: Allow users to be signed as well. 2020-10-27 13:29:19 +01:00
Damir Jelić 5fd004bae5 crypto: Connect the private identity to the verification machine. 2020-10-23 11:17:13 +02:00
Damir Jelić 7cab7cadc9 crypto: Rework the cryptostore.
This modifies the cryptostore and storage logic in two ways:
    * The cryptostore trait has only one main save method.
    * The receive_sync method tries to save all the objects in one
    `save_changes()` call.

This means that all the changes a sync makes get commited to the store
in one transaction, leaving us in a consistent state.

This also means that we can pass the Changes struct the receive sync
method collects to our caller if the caller wishes to store the room
state and crypto state changes in a single transaction.
2020-10-20 17:19:37 +02:00
Damir Jelić 425a07d670 crypto: Don't load all the devices in the sqlite store. 2020-10-16 16:57:26 +02:00
Damir Jelić e7a24d5e68 crypto: Move the session managers under a common module. 2020-10-16 11:09:55 +02:00
Damir Jelić c85fe6bc21 crypto: Initial support for private cross signing identities. 2020-10-14 15:35:06 +02:00
Damir Jelić bd0ac703a0 crypto: Initial logic for session unwedging. 2020-10-09 15:39:35 +02:00
Damir Jelić 473e49252e crytpo: Get the session from the list of sessions in a safe manner. 2020-10-08 15:56:17 +02:00
Damir Jelić 723fdeaa06 crypto: Fix a clippy warning. 2020-10-08 12:59:10 +02:00
Damir Jelić 19d513e3c0 crypto: Simplify and test the group session invalidation logic. 2020-10-08 12:40:42 +02:00
Damir Jelić 23ac00c8ec crypto: Initial support for group session invalidation. 2020-10-08 11:16:02 +02:00
Damir Jelić 1d8f01ef11 crypto: Remove the third Device variant. 2020-10-01 12:15:13 +02:00
Damir Jelić c8ca93c924 crytpo: Let the verification machine hold on to a raw CryptoStore.
This will later be useful when our higher level store wrapper holds on
to a verification machine to return higher level Device objects.
2020-10-01 11:17:27 +02:00
Damir Jelić ff2079da91 crypto: Move the group session handling logic into separate module. 2020-09-30 15:43:25 +02:00
Damir Jelić 84066d4a76 crypto: Split out the Account into a read only portion and one with effects. 2020-09-29 12:03:41 +02:00
Damir Jelić a357536ade crypto: Initial scaffolding for incoming key share handling. 2020-09-28 09:27:16 +02:00
Damir Jelić f3be27921c crypto: Move the device trust state logic into the read only device. 2020-09-24 12:45:23 +02:00
Damir Jelić 5a86b067e4 crypto: Add tests for the identity manager. 2020-09-23 15:45:25 +02:00
Damir Jelić 2e3d30d7b4 crypto: Move the identity/device management logic into a separate struct. 2020-09-18 20:50:32 +02:00
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ć 14226c0778 crypto: Refactor some tests. 2020-09-08 16:17:17 +02:00
Damir Jelić 9810a2f630 crypto: Finish up the cross signing storing for the sqlite store. 2020-09-08 15:24:23 +02:00
Damir Jelić 083cebe735 crypto: Initial WIP user identity storing logic. 2020-09-07 16:57:58 +02:00
Damir Jelić faaf3f7a29 crypto: Identities add some methods to get the keys/signatures of the keys. 2020-09-07 16:57:17 +02:00
Damir Jelić 89efcee337 crypto: Move the signature verification method under an Utility struct. 2020-09-04 13:18:31 +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