I’m looking for an XMPP client that supports OpenPGP (XEP-0027).

Of course it should automatically decrypt/encrypt the messages for given contacts, so no copy-and-paste to some other OpenPGP tool.

  • It must be a local client, so no Web apps.
  • I’d prefer if the OpenPGP support comes by default, but an extension is okay, too.
  • It should still be maintained (no tools that got their last update way more than 1 year ago, unless it’s known that the developers still react to issues and would publish security updates if need be).

  • OS doesn’t matter (I need to recommend tools to my peers that use various different systems).

  • Cost and license don’t matter.
  • Psi has support for OpenPGP, but I haven't used it recently and don't know if there are not issues with a communiaction with Gajim or Pidgim.
    – Szpak
    Feb 5, 2014 at 22:06
  • 1
    Btw, I don't know your requirements, but you could probably also consider an usage of Off-the-Record Messaging (OTR) which is supported by several XMPP clients.
    – Szpak
    Feb 5, 2014 at 22:08
  • @Szpak: Regarding OTR: Thanks for the suggestion, but the deniability OTR offers is exactly what I don’t want in my case. And it should be possible to send encrypted messages to offline contacts -- I assume this is not possible with OTR.
    – unor
    Feb 6, 2014 at 11:08
  • 1
    @DanteTheEgregore: I rephrased the whole question. (Now Gajim and Pidgin (via plugin) would make valid answers.)
    – unor
    Mar 14, 2014 at 14:08
  • 1
    Please note that XEP-0027 is seriously flawed and should not be used. There is currently an effort to create a successor for XEP-0027 underway.
    – Flow
    Jan 7, 2016 at 13:29

1 Answer 1


Gajim (FLOSS; available for GNU/Linux, FreeBSD, Microsoft Windows) supports OpenPGP by default.

Your own key:

  1. Open the accounts menu (Ctrl+Shift+a).
  2. Select an account.
  3. Go to the tab about personal information.
  4. Under the "OpenPGP" section, press the button for selecting a key.
  5. Select your key from the list.

Now when you go online with this account, you have to enter your passphrase. (You could also let your GPG agent manage this; just enable the corresponding section in your account’s "OpenPGP" tab).

Key of your contact:

  1. For a contact, select Manage ContactAssign OpenPGP Key
  2. Select the key of your contact from the list.

Now when you are chatting with this contact (works also when the contact is offline), you can enable OpenPGP encryption in the chat window’s toolbar (Alt+d).

A little shield icon as well as status messages indicate that the encryption is active.


  • In case you are going online without entering your OpenPGP passphrase, and someone sent/sends you encrypted messages, they are displayed as

    ([This message is *encrypted* (See :XEP:`27`])

    which is fine. However, if you reconnect and enter the passphrase correctly, your chatlog still shows this notice although you would now be able to decrypt it (probably because only this notice and not the full stream is logged). But I didn’t find any other way to decrypt theses message later on.

    Old ticket about this: Provide OpenPGP ciphertext if unable to decrypt

  • When receiving encrypted offline messages, the status message sometimes says that these messages were transmitted unencrypted, however, according to my local tests they were in fact encrypted.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.