Commit graph

112 commits

Author SHA1 Message Date
59543ac585
Add missing argument to should_heartbeat call
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-16 21:31:57 +02:00
aa54f58649 Always publish on session_start
The condition wasn't necessary in session_start for PEP nodes not to be
published multiple times.

This also fixes the fact that we weren't publishing on reconnect.

And also fixes one indentation level too many in the _initial_publish
method.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-15 00:46:35 +02:00
fbe5e36c3e Fix #10: ensure device list and bundle are published after startup
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-15 00:46:35 +02:00
7e079f4260 make_heartbeat needs to be async
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-14 09:45:15 +02:00
95481e64b2 decrypt_message: don't always send heartbeat
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-14 09:45:15 +02:00
89eb4dfece decrypt_message: msg.send isn't a coroutine
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-14 09:45:15 +02:00
7f1d48c529 make_heartbeat: add parameter to make_message
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-14 09:45:15 +02:00
ad5822b360 Automatically send heartbeats
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-14 09:45:15 +02:00
62fa03959a Ensure bundles are republished on decrypt
This would likely do that we had a fixed set of prekeys because we
wouldn't republish after one was used.

This shouldn't have any security implications. Just so that we wouldn't
have been able to initiate new sessions after all published prekeys were
used up, as we don't have the private keys anymore. They are deleted
when used (as should be) by the backend OMEMO library.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-14 09:39:40 +02:00
af33cd41e5
Learn about chain length: new should_heartbeat method
With this commit, slixmpp-omemo now reads the ratchet chain length,
(both receiving and sending), that we should track to know when to send
a heartbeat message.

This allows us to signal other devices that we are still active and
listening. Some clients will stop encrypting to us if we haven't replied
for a certain number of messages.

The current 0384 spec (0.7) says we should send a heartbeat message at
least once this number goes over 53 (fair dice roll). It doesn't say
when a client may/should stop encrypting to us, or what it should do at
all once we go over 53.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-13 20:29:14 +02:00
d9b77dbf86
Release 0.5.0
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-12 11:22:23 +02:00
78db04a1a8 Add my_fingerprint method
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-12 11:14:19 +02:00
6c61d0f237 fp_from_ik: change fp repr to lowercase with no colon
This allows the user to be able to do what they want with the string.
They can then insert colons, or split up in groups of chars or..

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-06-29 02:02:43 +02:00
957b555d93
Raise an exception when the payload is not of the form we expect
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-03-28 12:28:52 +01:00
94e3a62d8a
Error out when data_dir is not specified. #11
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-03-12 01:30:30 +01:00
534492fe45
Simplify fp_from_ik method, remove codec import
Reuse changes from python-omemo, explicitly the following PR under CC0:
https://github.com/Syndace/python-omemo/pull/28

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-03-11 03:26:32 +01:00
b5faae0b23
Change variable name to make mypy happier
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-03-11 01:33:10 +01:00
1ac08130ed
Ensure expect_problems is a dict within encrypt_message
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-03-11 01:32:39 +01:00
266684b036
Release version 0.4.0
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-03-10 23:17:01 +01:00
b380bfa7d6 Ensure devicelist and bundles are published after receiving precondition-not-met
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-02-11 00:29:46 +01:00
senior
b5ebcaf326 preventing variable not defined exception when no option available 2020-01-27 23:32:08 +03:00
fe897a786e
Attempt at having more useful errors for plugin setup
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-29 15:38:51 +01:00
6675ab631c
Bump version to 0.3.0
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-29 01:55:32 +01:00
fbf13b1adc
Fix comment
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-22 04:08:54 +01:00
fawz
60badde5a7 Pass correct type, use full jid explicitly 2019-12-14 18:08:23 +01:00
fawz
9f1f538d78 Populate expect_problems with JID instances instead of bare_jids 2019-12-14 18:08:23 +01:00
89758db2b2
Use the correct method name setTrust
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-13 19:13:39 +01:00
b18f7d9973
Update trust methods for 0.11.0 omemo update
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-13 19:05:49 +01:00
39a9fef73b
Phrasing + english in docstring
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-10-25 03:36:38 +02:00
9096891e28
Add docstring for _set_node_config
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-10-25 03:27:00 +02:00
6850051b32
Implement fallback on precondition-not-met error when publishing devicelist and bundle
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-10-25 03:19:34 +02:00
9e2dcc5529
Prepare for version 0.2.0
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-09-02 02:31:38 +02:00
62b6037611
Convert jid to str before passing in decrypt_message
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-09-02 02:17:19 +02:00
e893e6aeec
Change decrypt_message API. Don't take the entire message anymore
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-08-27 23:43:04 +02:00
2b63352626
Remove fingerprint from get_trust_for_jid, simply wrap the omemo lib method
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-08-25 23:20:42 +02:00
508a1fe987
Coding style changes
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-08-25 23:19:40 +02:00
9d3915a27c
Add docstring for get_trust_for_jid
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-08-25 11:48:48 +02:00
179db446fe
Add get_trust_for_jid method
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-08-25 01:56:28 +02:00
545123773b
Style fixes
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-08-25 00:39:03 +02:00
96e4ecf683
Properly name values passed to EncryptionPrepareException
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-08-25 00:35:30 +02:00
2a346ac48d
Keep track of known bundles on the instance
Since we're raising exceptions often to yield to the client, we need to
keep track of bundles on the object and not just in the method itself.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-08-24 00:44:46 +02:00
869b11d322
Make session_start handler async and use asyncio helper in it
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-08-24 00:14:41 +02:00
0e65c68371
Check for publish-options support and add them in devicelist and bundle set operations
Ensure that publish-options are added at the end in the pubsub request,
otherwise it seems to be invalid.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-08-24 00:13:41 +02:00
0b6ef3a860
Use get_info instead of get_items to get account features
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-08-23 22:36:43 +02:00
de585a23b2
Unnecessary elif after raise
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-08-23 12:52:46 +02:00
bf2b2283f5
Use session_start instead of session_bind to ensure we're authenticated
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-08-22 19:44:21 +02:00
a07c3d9745
Only use publish-options if advertized by the server
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-08-22 19:43:49 +02:00
c7e54488b7
v0.1.3 release
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-03-04 18:34:44 +00:00
4da2bf06e9
Prevent accessing list index when no device is available also in _store_device_ids
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-27 23:26:52 +00:00
c753a672f4
setup.py: specify 'packages' value to properly include slixmpp_omemo; remove MANIFEST.in
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-27 09:27:08 +00:00
be9139957c
Prevent accessing list index when no device is available
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-27 09:26:44 +00:00
b5f9eb7e87
Add manifest and bump version
Oops. Forgot to include _some_ files in the tarball..

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-27 09:02:56 +00:00
a72e81c329
xep_0384: Add publish-options when publishing devices and bundles
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-24 12:23:39 +00:00
e9717cd652
xep_0384: explicitely add 0060 as dep as we also depend on it
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-24 11:13:40 +00:00
99fdb6e3fc
xep_0384: rename variable to remove linting warning
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-23 18:34:43 +00:00
032469a05f
xep_0384: Remove unused variable
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-23 18:31:19 +00:00
52e49e9422
xep_0384: pass the correct omemo backend to _parse_bundle
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-23 13:41:56 +00:00
f3d9143bf6
xep_0384: update to using TrustException from the omemo lib
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-19 00:09:16 +00:00
de1ecb730a
Pass the correct variable to public_bundle.serialize
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-17 19:15:18 +00:00
85998773c8
Fix error message whe no data_dir specified
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-17 18:31:26 +00:00
f66f5a8db7
Fix import path of JSONFileStorage
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-17 18:30:31 +00:00
9a3283abf2
Initial split version of this repo
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-17 18:05:43 +00:00