Welcome to the Power Users community on Codidact!
Power Users is a Q&A site for questions about the usage of computer software and hardware. We are still a small site and would like to grow, so please consider joining our community. We are looking forward to your questions and answers; they are the building blocks of a repository of knowledge we are building together.
Linux / Android XMPP communication with OMEMO
The OMEMO encryption ecosystem for XMPP (Jabber) is split into distinct, incompatible versions.
Unfortunately there are different versions of OMEMO encryption existing, that are incompatible to each other.
If I understand correctly, OMEMO:0 is just broken; siacs[1] encrypts content 1-on-1, but leaks metadata; OMEMO:1 fixes the metadata and allows private group chats; and OMEMO:2 changes the way content can be grouped.
I've been using Conversations.im on Android, which uses the "siacs" versions. I'm looking for a reputable Qt-based Linux XMPP client compatible with siacs OMEMO.
The Qt options I know of are…
- KDE's own Kaidan, which is OMEMO:1 or higher and will not talk to Conversations.
- Psi and Psi+, which might have a compatible OMEMO version, but it's immaterial as they crash immediately upon launch.
-
Dino.im would be another possibility, but it won't accept certificate pinning for self-signed servers like mine.Edit: Dino is GTK.
I'm hoping not to break down and use Pidgin.[2]
Alternatively, I could make do with a good Android client that uses a newer version of OMEMO. There is understandable resistance for Conversations' maintainer to update to an OMEMO version that will render it incapable of communicating securely with any non-Conversations XMPP client for which it had previously done so.
1 answer
Psi+ has a PPA with a version that doesn't crash. Its OMEMO plugin does indeed work with siacs clients.
Unfortunately, Psi+ does not have an icon pack that matches KDE Plasma, making the UI consistency I had hoped for... kind of moot.
Aside: You might want to be a little careful about how you do keyring authn/authr unless you're on *Buntu 25.04+ or Debian 13+. Otherwise, it seems that a key can sign for any package, including built-in ones.
0 comment threads