Commit Graph

272 Commits (cf9ecbd0e85e03bbb020582e314d9122d7478df1)

Author SHA1 Message Date
Damir Jelić 3a5cc833d1 crypto: Simplify the session saving methods in the cyrptostore. 2020-04-16 10:14:23 +02:00
Damir Jelić 514ced1243 crypto: Don't add the same session twice to the memory session store. 2020-04-16 10:10:18 +02:00
Damir Jelić bedb788432 crypto: Test the keys info for a device. 2020-04-15 18:55:15 +02:00
Damir Jelić 14f25bf66a crypto: Skip the coverage for debug implementations. 2020-04-15 18:22:04 +02:00
Damir Jelić aeb93e19e2 crypto: Test our in-memory device store. 2020-04-15 17:51:51 +02:00
Damir Jelić 616a67c1cb Merge branch 'bot-example' 2020-04-15 16:10:18 +02:00
Damir Jelić af73ebdf09 crypto: Add some tests to our in-memory stores. 2020-04-15 15:32:58 +02:00
Devin R c495a50c52 async_client: make pub API take &self instead of &mut, use read where possible 2020-04-15 08:29:34 -04:00
Devin R 3f9243a326 command-bot: add comments, use timestamp to filter old messages 2020-04-15 07:52:29 -04:00
Damir Jelić 53a2b8eb7c crypto: Implement a better debug trait for sessions. 2020-04-15 13:46:43 +02:00
Devin R 49e962e9c4 event_emitter: use Arc<RwLock<Room for EventEmitter and joined_rooms HashMap 2020-04-15 06:58:25 -04:00
Damir Jelić 33a1b8b791 crypto: Add more test for the Olm wrappers. 2020-04-15 12:44:00 +02:00
Devin R cf029b2e4f make EventEmitter shared refs, in AsyncClient::sync lock only in inner most scope 2020-04-14 18:10:10 -04:00
Damir Jelić 6bdf8e522e Merge branch 'api-endpoints' 2020-04-14 14:22:23 +02:00
Damir Jelić 25e60d398b crypto: Move the session mutex into the Session struct. 2020-04-14 14:05:18 +02:00
Devin R 2cfaf64feb cargo fmt/clippy 2020-04-14 06:42:42 -04:00
Devin R e64d073402 rename RoomMessageBuilder, make examp build, expand on docs 2020-04-14 06:36:03 -04:00
Devin R 1a7856e9fe fix room_send example, cargo fmt/clippy 2020-04-13 14:46:54 -04:00
Devin R fb10e9bf87 add optional txn_id to room_send, add docs to room_messages 2020-04-13 14:08:51 -04:00
Devin R 0d8702b292 rename get_message_events to room_messages 2020-04-12 08:21:23 -04:00
Devin R 5180f99a0e cargo fmt/update fixed olm 2020-04-11 15:58:34 -04:00
Devin R 7aeeeea432 request_builder: test GetMessageBuilder 2020-04-11 08:46:45 -04:00
Devin R 6358db94c7 more docs 2020-04-10 21:44:16 -04:00
Devin R c69d54e2d4 async_client: impl kick, join, leave, invite, create for 2020-04-10 16:32:28 -04:00
Damir Jelić cb8f1c1a5b crypto: Zeroize the GroupSessionKey struct. 2020-04-10 17:02:51 +02:00
Damir Jelić 8210c2377d crypto: Take the session key out of the RoomKey event. 2020-04-10 17:02:30 +02:00
Damir Jelić 01656690bc crypto: Save the account after an inbound session was created. 2020-04-10 16:18:55 +02:00
Damir Jelić 7577ddfc00 crypto: Remove one-time keys after a inbound session was created successfully. 2020-04-10 16:18:29 +02:00
Damir Jelić c282d9fabc machine: Uncomment account saving after keys were published. 2020-04-10 16:17:31 +02:00
Damir Jelić a4d41378d4 crypto: Move the inbound group session lock into the session struct. 2020-04-10 16:08:47 +02:00
Damir Jelić b8d6a4c49a crypto: Move the account mutex into the account struct. 2020-04-10 15:28:43 +02:00
Damir Jelić 7c20c79f32 crypto: Add test for the session creation. 2020-04-10 14:44:50 +02:00
Damir Jelić af7309033c crypto: Rename the session creation method. 2020-04-10 14:44:25 +02:00
Damir Jelić d04c7e0190 crypto: Add a GroupSessionKey type. 2020-04-10 14:00:03 +02:00
Damir Jelić 9d52037b40 crypto: Add docs to our olm-rs wrappers. 2020-04-10 13:47:38 +02:00
Damir Jelić c215dfa55d crypto: Don't manually implement Send, those are now in olm-rs. 2020-04-10 11:59:51 +02:00
Damir Jelić bdd1fb2c19 async_client: Expand the docs for the message sending method. 2020-04-10 11:53:07 +02:00
Damir Jelić 7540e025f1 async_client: Share group sessions before encrypting room messages. 2020-04-10 11:50:18 +02:00
Damir Jelić a389905734 base_client: Expose the method to check if a group session needs to be shared. 2020-04-10 11:47:01 +02:00
Damir Jelić b43407b165 crypto: Add a method to check if a group session needs to be shared. 2020-04-10 11:46:31 +02:00
Damir Jelić 0a2b66de9a crytpo: Change the share_group_session method to always create a new session. 2020-04-10 11:45:50 +02:00
Damir Jelić 1504b3a02a crypto: Change the encrypt method to not require to take mut self. 2020-04-10 11:44:09 +02:00
Damir Jelić 1e3f93ca22 crypto: Remove an unused enumerate. 2020-04-10 11:43:03 +02:00
Damir Jelić 86617b42e2 async_client: Remove the transaction id. 2020-04-10 11:41:16 +02:00
Damir Jelić c5f7af9118 crypto: Recreate group sessions if they are expired. 2020-04-10 09:58:13 +02:00
Damir Jelić 0215e89ff8 crypto: Use an UUID for the to-device requests for session sharing. 2020-04-10 09:57:10 +02:00
Damir Jelić 609df21271 async_client: Add a method to share room keys. 2020-04-09 16:29:03 +02:00
Damir Jelić 61f3da3161 async_client: Add the content-type header to our requests. 2020-04-09 16:28:27 +02:00
Damir Jelić ee290add45 async_client: Build the URL path a bit more cleanly. 2020-04-09 16:27:43 +02:00
Damir Jelić 8583232873 base_client: Expose the methods necessary for message encryption. 2020-04-09 16:27:09 +02:00
Damir Jelić 01664bc613 async_client: Allow the content and event type to be overridden when sending messages. 2020-04-09 16:26:00 +02:00
Damir Jelić dc2983d9a2 crypto: Add initial support to encrypt messages. 2020-04-09 16:24:40 +02:00
Damir Jelić a5f43db859 crypto: Add some more methods to the group session wrapper. 2020-04-09 16:23:24 +02:00
Damir Jelić b4de95185d device: Change to the higher level ruma types for device ids. 2020-04-09 16:22:25 +02:00
Damir Jelić 2c7115da84 async_client: Use a UUID for the transaction id. 2020-04-09 16:19:32 +02:00
Damir Jelić f19e251de1 crypto: Add some initial code for megolm session sharing. 2020-04-08 15:06:57 +02:00
Damir Jelić 816295cd48 crytpo: Add a wrapper for outbound megolm sessions. 2020-04-08 15:05:57 +02:00
Devin R 2137d198fc remove internal assertions in favor of returning clients and rooms 2020-04-07 16:11:35 -04:00
Devin R 4dbc0aaad6 clean up, cargo fmt/clippy, add example/TestRunner tests 2020-04-07 08:55:42 -04:00
Devin R f635fbe0cf note about async client test runner 2020-04-06 21:01:48 -04:00
Devin R 9ffe7cca10 more work needed for AsyncClient test runner 2020-04-06 20:59:44 -04:00
Devin R 78f92130fa add individual events for tests, working TestRunner 2020-04-06 15:29:38 -04:00
Devin R 854948fc6d generic add event 2020-04-06 09:11:38 -04:00
Devin R 00ac6d08f9 bring over test builder 2020-04-06 07:13:45 -04:00
Devin R c2b3210cc9 cargo fmt/clippy, move power levels into Room 2020-04-05 12:41:00 -04:00
Devin R e987a9006b remove User and merge fields into RoomMember 2020-04-05 08:34:02 -04:00
Devin R 25a3533792 don't unwrap UserId from state key 2020-04-05 08:23:59 -04:00
Devin R eff322c0c5 crypto compiles, tests pass 2020-04-03 11:00:37 -04:00
Devin R db62c1fa25 cargo fmt/clippy no more warnings 2020-04-03 09:14:46 -04:00
Devin R 4ac9153be1 use RoomId and UserId over string, use setter method names in Room 2020-04-03 09:07:40 -04:00
Damir Jelić 74f1a21e42 rust-sdk: Updates for the new ruma crate versions. 2020-04-03 14:09:56 +02:00
Damir Jelić 12dc5212e3 rust-sdk: Remove a bunch of unused imports and unused variables. 2020-04-03 12:34:05 +02:00
Damir Jelić 294ca108bb rust-sdk: Move some encryption specific imports under a cfg. 2020-04-03 10:42:03 +02:00
Damir Jelić 7c6d0d14dd crypto: Fix the sqlite tests. 2020-04-03 10:39:07 +02:00
Damir Jelić 670761376d async_client: Claim keys for missing sessions if we try to send in an encrypted room. 2020-04-03 10:30:32 +02:00
Damir Jelić 2dd84517b9 crypto: Expose the key-claiming methods in the clients. 2020-04-03 10:27:30 +02:00
Damir Jelić 3d0829b2a0 crypto: Add the new devices to the store. 2020-04-03 10:21:14 +02:00
Damir Jelić 6fce9b335a crypto: Add a method to check for missing Olm sessions for users. 2020-04-03 10:20:03 +02:00
Damir Jelić ff9bcdddb9 crypto: Use a SignedKey type when creating outbound Olm sessions. 2020-04-03 10:16:20 +02:00
Damir Jelić aa7bedbefd Merge branch 'ev-emitter' 2020-04-03 10:14:40 +02:00
Devin R a96286a5ff remove calculate in docs, fix unused imports 2020-04-02 18:22:52 -04:00
Devin R 187734f449 add test and docs for EventEmitter, fix review issues 2020-04-02 15:59:13 -04:00
Damir Jelić 8d487ac097 crypto: Allow the device store to be cloned. 2020-04-02 17:27:39 +02:00
Damir Jelić 785db205c3 crypto: Add initial key claiming handling. 2020-04-02 16:07:21 +02:00
Damir Jelić 913cc374d0 crypto: Calculate the deleted devices in a key query. 2020-04-02 14:52:15 +02:00
Devin R 55c25ce6ba fix encryption feature Mutex::lock instead of RwLock::read 2020-04-02 07:21:24 -04:00
Devin R c172507b5f cargo fmt/clippy 2020-04-02 07:06:21 -04:00
Damir Jelić 56084a7809 crypto: Initial support for device tracking. 2020-04-02 11:14:23 +02:00
Devin R 2ed152708c use inner event type for EventEmitter methods 2020-04-01 16:36:20 -04:00
Devin R 83bf8bc67c oops replace tracing::debug for crypto features 2020-04-01 16:36:20 -04:00
Devin R 5c418f3420 cargo fmt/clippy 2020-04-01 16:36:20 -04:00
Devin R f2b50677b9 fix example, use tokio::Mutex for all types that could be passed
in async thread spawn envs
2020-04-01 16:36:17 -04:00
Devin R 5612825762 add EventEmitter trait, clean up imports so new warnings are easier to see 2020-04-01 16:35:50 -04:00
Damir Jelić 5e22eb9faf room: Handle encryption events. 2020-04-01 16:06:28 +02:00
Damir Jelić 2020700673 crypto: Prepare the scaffolding for key queries and user tracking. 2020-04-01 15:37:00 +02:00
Damir Jelić fdb2028dfc Merge branch 'room-calculate-name' 2020-04-01 09:39:25 +02:00
Denis Kasak a298b7f9fd
Add Room::calculate_name convenience method.
Signed-off-by: Denis Kasak <dkasak@termina.org.uk>
2020-03-31 23:19:50 +02:00
Damir Jelić 453c9f3be5 Merge branch 'room-name' 2020-03-31 22:07:30 +02:00
Devin R c3f4a946cb remove split on UserId, update tests to correct domain 2020-03-31 15:18:27 -04:00
Damir Jelić 559a5847bb crypto: Implement group session loading for the sqlite store. 2020-03-31 16:22:45 +02:00