Commit graph

252 commits

Author SHA1 Message Date
05b5705f22
Don't fail on decrypting heartbeats
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-12-14 17:20:16 +01:00
494899bb3c
Add interface semi-hidden to RatchetForwardingMessage
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-18 00:30:07 +02:00
26665d9e6a should_heartbeat: factor out in internal method to avoid reparsing message
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-17 20:18:47 +02:00
bb52d93241
should_heartbeat: also return True on new sessions
And the docstring now reflects the reality again!

We're parsing the Encrypted dict again, when we just did it in
decrypt_message above, but this function is also part of the API and
doing that for them is the least we can do.

Maybe there should be an internal function that we can call from
decrypt_message, that also gets called by should_heartbeat.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-17 18:58:31 +02:00
91a04000d7
Treat receiving chain length None as 0
It appears a receiving chain length set to None just means we haven't
received any message for this session yet. It doesn't make sense to spam
heartbeats at this stage

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-17 11:31:36 +02:00
baf29cb05f
should_heartbeat: correctly return what last commit said
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-17 03:39:48 +02:00
c7a0a092d4 should_heartbeat: also take into account unacked sessions
receiving_chain_length would sometimes be None (thanks python strict
typing) causing the thing to fail.

When this is the case, I assume this means the session hasn't been
confirmed from our side yet and it would be good to ACK it. (To be
confirmed with people who know, in progress).

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-17 02:56:57 +02:00
a2a287ee5d
don't include empty sessions in _chain_lengths method
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-16 21:49:55 +02:00
7a887ccac3 Pass correct argument type to should_heartbeat call
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-16 21:37:56 +02:00
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
a8ce75551a
Update ChangeLog
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-15 02:36:13 +02:00
311292a0be Merge branch 'initial-publish' into 'master'
Fix #10: ensure device list and bundle are published after startup

Closes #10

See merge request poezio/slixmpp-omemo!11
2021-07-15 00:48:58 +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
3ac03796dc Merge branch 'heartbeat' into 'master'
Automatically send heartbeats

See merge request poezio/slixmpp-omemo!10
2021-07-15 00:43:30 +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
38701075e9
echo_client: fix wrong variable error
Thanks mathieui

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-13 20:28:19 +02:00
59e82ec9ee
echo_bot: implement basic commands
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-12 23:25:57 +02:00
ba028d98c8
echo_bot: Don't pass the whole message to plain_reply and encrypted_reply anymore
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-12 23:12:09 +02:00
cea2345f29
echo_bot: change messages style
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-12 19:26:24 +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
92a379a327 Merge branch 'change-fp-repr' into 'master'
fp_from_ik: change fp repr to lowercase with no colon

See merge request poezio/slixmpp-omemo!8
2021-07-12 11:09:42 +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
ce868745d5
CI: Allow failure for now
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-03-11 01:26:34 +01:00
a478dc59de
Add .gitlab-ci.yml
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-03-11 01:24:48 +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
7d80d74554
Add ChangeLog
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-03-10 23:03:48 +01:00
7a60a96e5d
Remove the note on licensing
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-02-11 00:38:44 +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
fc8349a5a3 Merge branch 'master' into 'master'
preventing `variable not defined` exception when no option available

See merge request poezio/slixmpp-omemo!5
2020-01-28 00:21:41 +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
4ee6b424dd
Make no promises for python 3.5/3.6
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-29 01:54:52 +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