cmeng-git / atalk-android

xmpp/jabber client for android
Apache License 2.0
155 stars 56 forks source link

OTR chats between aTalk and pidgin-otr do not work #186

Closed plambe closed 2 years ago

plambe commented 2 years ago

Hi,

Since it seems aTalk is the last maintained XMPP client for Android that still supports OTR, I'm trying to make it interoperate with Pidgin. At the moment that doesn't work - aTalk does not seem to show any errors, however Pidgin shows errors and considers communication with aTalk invalid.

For example, if I start a private conversation from Pidgin to aTalk, then Pidgin shows the following: Error setting up private conversation: Malformed message received

In case I send an OTR encrypted message from aTalk, then Pidgin shows: The encrypted message received from <xmpp account> is unreadable, as you are not currently communicating privately.

Looking at Pidgin's debug logs and comparing Pidgin to Pidgin communication with aTalk to Pidgin communication, so far I only notice that aTalk has an XML tag "thread" that Pidgin to Pidgin lacks, e.g.: <thread>𐌃𣼞逗11</thread>

Any assistance with this would be appreciated.

cmeng-git commented 2 years ago

Please note aTalk supports only OTR V3 max. The current OTR version is V4 - in progress.

I have done a quick test with pidgin (Pidgin 2.13.0 (libpurple 2.13.0)) installed on pc with Ubuntu 20.04 OS. The Pidgin client has both the OTR and OMEMO plugins enabled.

a. When I try to enable OTR - 'start private conversion' on pidgin, I found that pidgin does not send the OTR setup protocol; instead it sends the OMEMO encryption option. b. When I try to start OTR session from aTalk, again pidgin responded with an OMEMO protocol.

After this, when a message is send from pidgin, it is always encoded as an OMEMO message. Look like pidgin always use OMEMO as first priority for private conversation.

From your reports, it seems you are able to initialise the OTR protocol, but failed with 'Error setting up private conversation: Malformed message received' I suspect the problem is due to pidgin, not following the XMPP standard in parsing the received stanza message; as mentioned in your comment, it seems pidgin does not know how to parse 𐌃𣼞逗11. Please see https://xmpp.org/extensions/xep-0201.html.

As the OMEMO protocol has many advantages over OTR, many of the xmpp clients have started dropping support for OTR protocol. aTalk has no intention to enhance OTR to support OTR V4; it fact aTalk has intention to remove OTR support in the future release.

plambe commented 2 years ago

As far as I can see, the OTR protocol version 4 is not created by the same group as the previous versions. Therefore I can't (yet) trust it with privacy. The same goes for OMEMO, though to a lesser extent as it's been around longer.

I suppose I'm left using old versions of xabber and conversations then.

Since most likely you are correct that Pidgin is unable to parse a valid XMPP message and therefore the issue is with Pidgin, I think this issue needs to be closed.

Thank you for the information!

cmeng-git commented 2 years ago

FYI: https://xmpp.org/extensions/xep-0384.html