OMEMO Plugin for Gajim
Download the Plugin via Gajims Plugin Manager.
See AUR package.
Debian & Ubuntu
gajim-omemo is available in backports, testing, and universe repos.
sudo apt-get install gajim-omemo to install the plugin.
layman -a flow && emerge gajim-omemo to install the plugin.
Tested on Fedora 25.
Add this snippet to
[ux] name=Unixadm.org - Fedora $releasever base repository baseurl=http://reposerv.unixadm.org/fedora/$releasever/$basearch/ enabled=1 includepkgs=python3-axolotl python3-axolotl-curve25519 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-UNIXADM gpgcheck=1
Optional: Fetch the gpg key and save it to
/etc/pki/rpm-gpg/RPM-GPG-KEY-UNIXADM (or else, set gpgcheck to 0).
wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-UNIXADM https://www.unixadm.org/RPM-GPG-KEY-UNIXADM.asc
dnf install python3-axolotl python3-axolotl-curve25519 protobuf3-python
Distributions without a package
Install the Plugin with the Gajim PluginManager. You need Gajim 0.16.6 or higher. If your package manager does not provide an up to date version you can visit gajim.org for further install instructions.
- Check if you have Gajim 1.0.0 or higher installed
sudo apt-get install build-essential libssl-dev libffi-dev python3-dev
sudo apt-get install python3-setuptools
sudo apt-get install python3-cryptography
sudo apt-get install python3-axolotl
- Restart Gajim, and activate OMEMO in Gajims PluginManager
Enable the OMEMO plugin in the Plugin-Manager. If your contact supports OMEMO, you should be able to activate it using the lock icon in the lower right of your chat window.
If you open the chat window, the Plugin will tell you with a green status message if its enabled or disabled. If you see no status message, your contact doesnt support OMEMO.
Beware, every status message is green. A green message does not mean encryption is active. Read the message ! You can also check if encryption is enabled/disabled, when you click on the OMEMO icon.
When you send your first message, the Plugin will query your contacts encryption keys and you will see them in a readable fingerprint format in the fingerprint window which pops up. You have to trust at least one fingerprint to be able to send messages. You can receive messages from fingerprints where you didn't make a trust decision, but you can't receive Messages from not trusted fingerprints.
Verification QR Codes
It is possible to show a QR Verification Code in the Plugin's Config Window.
You have to install the
python-future packages for it to work (Debian, Ubuntu).
If you want to use PIP for installing python packages,
future packages have to be installed.
Groupchat with OMEMO encryption works only in rooms that are:
- works only with contacts that you have in your roster
For filetransfers in Gajim 0.16 use the HttpUploadPlugin plugin.
Gajim 1.0 comes with HTTP Upload integrated into core, there is no plugin needed.
For decrypting and showing pictures in the chat window use the UrlImagePreviewPlugin plugin.
If you want to use these plugins together with OMEMO, you have to install the
To see OMEMO related debug output, start Gajim with the parameter:
I found a bug
Please report it to the issue tracker. If you are experiencing misbehaviour, please provide detailed steps to reproduce this and provide debugging output. Also, please always mention the exact Gajim version you are using.
You can contact us at email@example.com.
2.5.8 / 2018-03-31
- Bug fix
2.5.7 / 2018-02-26
- Big fix
2.5.6 / 2018-01-26
- Fix decrypting MAM MUC messages
2.5.5 / 2017-12-17
- Bug fix
2.5.4 / 2017-12-16
- Bug fix
2.5.3 / 2017-12-10
- Bug fix
2.5.2 / 2017-12-10
- Small refactoring
2.5.1 / 2017-11-21
- Bug fix
2.5.0 / 2017-11-20
- Add MAM for MUC decryption
2.4.3 / 2017-11-15
- Use Gajim API to announce caps
2.4.2 / 2017-11-15
- Query devicelists for contacts where we have none, this makes us a bit more independent from PEP
- Fix encrypting in Groupchats
- Improve error messages
2.4.1 / 2017-11-12
- Bug fix
2.4.0 / 2017-11-10
2.3.8 / 2017-10-07
- Bug Fixes
2.3.7 / 2017-08-26
- Query only the most recent PEP items
2.3.6 / 2017-08-21
- Adapt to Gaim beeing now a Package
2.3.5 / 2017-08-07
- Support 12bit IVs on httpupload files
2.3.4 / 2017-06-10
- Some Refactoring
2.3.3 / 2017-06-09
- Move encryption logic for files from the HTTPUploadPlugin to the OMEMOPlugin
2.3.2 / 2017-06-02
- Adapt to patches regarding LMC in Gajim
2.3.1 / 2017-05-23
2.3.0 / 2017-05-07
- Make plugin compatible with Gajims encryption API
2.2.1 / 2017-04-15
- Recognize aesgcm uri scheme
2.2.0 / 2017-04-06
- Add auth tag to key instead of payload
- Support decryption of aesgcm:// uri scheme
- Make python-cryptography mandatory
- small bugfixes
2.1.0 / 2017-03-26
- Add file decryption
2.0.4 / 2017-03-01
- Use correct tag name for EME
2.0.3 / 2017-02-28
- Set an inactive device active again after receiving a message from it
2.0.2 / 2017-02-28
- Fix a bug when publishing devices
- Fix copying fingerprint
- Fix layout issue
- Dont handle type 'normal' messages
2.0.1 / 2017-01-14
- Better XEP Compliance
2.0.0 / 2016-12-04
- Port Plugin from GTK2