|
|
# OMEMO Plugin for Gajim
|
|
|
|
|
|
This Plugin adds support for the [OMEMO Encryption](http://conversations.im/omemo) to [Gajim](https://gajim.org/). This
|
|
|
plugin is [free software](http://www.gnu.org/philosophy/free-sw.en.html)
|
|
|
This Plugin adds support for the [OMEMO Encryption](http://conversations.im/omemo) to Gajim. The OMEMO Plugin is [free software](http://www.gnu.org/philosophy/free-sw.en.html)
|
|
|
distributed under the GNU General Public License version 3 or any later version.
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
### Windows
|
|
|
|
|
|
On Windows please download the Plugin via Gajims Plugin Manager
|
|
|
Download the Plugin via Gajims Plugin Manager.
|
|
|
|
|
|
|
|
|
### Linux
|
|
|
|
|
|
#### Arch
|
|
|
See [AUR](https://aur.archlinux.org/packages/gajim-plugin-omemo/) package
|
|
|
**Arch**
|
|
|
|
|
|
See [AUR](https://aur.archlinux.org/packages/gajim-plugin-omemo/) package.
|
|
|
|
|
|
**Debian & Ubuntu**
|
|
|
|
|
|
The package `gajim-omemo` is available in backports, testing, and universe repos.
|
|
|
|
|
|
#### Debian & Ubuntu
|
|
|
Packagename `gajim-omemo` available in backports, testing, universe
|
|
|
Use `sudo apt-get install gajim-omemo` to install the plugin.
|
|
|
|
|
|
#### Gentoo
|
|
|
`layman -a flow && emerge gajim-omemo`
|
|
|
**Gentoo**
|
|
|
|
|
|
#### Fedora
|
|
|
Use `layman -a flow && emerge gajim-omemo` to install the plugin.
|
|
|
|
|
|
### tested on Fedora 25
|
|
|
**Fedora**
|
|
|
|
|
|
*Tested on Fedora 25.*
|
|
|
|
|
|
Add this snippet to `/etc/yum.repos.d/ux.repo`:
|
|
|
|
|
|
add this snippet to `/etc/yum.repos.d/ux.repo`
|
|
|
```
|
|
|
[ux]
|
|
|
name=Unixadm.org - Fedora $releasever base repository
|
... | ... | @@ -35,89 +41,97 @@ includepkgs=python-axolotl python-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)
|
|
|
|
|
|
*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 python-axolotl python-axolotl-curve25519 protobuf-python`
|
|
|
|
|
|
#### Distributions without a package
|
|
|
### Distributions without a package
|
|
|
|
|
|
Install the Plugin with the Gajim PluginManager. You *need* Gajim
|
|
|
version *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.
|
|
|
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](https://gajim.org/) for further install instructions.
|
|
|
|
|
|
|
|
|
1. check if you have Gajim 0.16.6 or higher
|
|
|
1. Check if you have Gajim 0.16.6 or higher installed
|
|
|
2. `sudo apt-get install build-essential libssl-dev libffi-dev python-dev`
|
|
|
3. `sudo apt-get install python-setuptools`
|
|
|
4. `sudo apt-get install python-cryptography`
|
|
|
5. `sudo apt-get install python-axolotl`
|
|
|
6. Restart Gajim, and activate OMEMO in Gajims PluginManager
|
|
|
|
|
|
|
|
|
## Running
|
|
|
Enable *OMEMO Multi-End Message and Object Encryption* in the Plugin-Manager.
|
|
|
If your contact supports OMEMO you should see a new orange fish icon in the chat window.
|
|
|
|
|
|
Encryption will be enabled by default for contacts that support OMEMO.
|
|
|
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.
|
|
|
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.
|
|
|
|
|
|
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 send messages.
|
|
|
you can receive messages from fingerprints where you didnt made a trust decision, but you cant
|
|
|
receive Messages from *not trusted* fingerprints
|
|
|
|
|
|
## Verification QR Codes
|
|
|
|
|
|
It is possible to show a QR Verification Code in the Plugin Config Window.
|
|
|
It is possible to show a [QR Verification Code](https://en.wikipedia.org/wiki/QR_code) in the Plugin's Config Window.
|
|
|
|
|
|
You have to install the `python-qrcode` and `python-future` packages for it to work (Debian, Ubuntu).
|
|
|
|
|
|
You have to install the `python-qrcode` and `python-future` package for it to work (Debian, Ubuntu)
|
|
|
If you want to use PIP for installing python packages, `qrcode`, `pillow`, and `future` packages have to be installed.
|
|
|
|
|
|
If you want to use PIP, following packages have to be installed:
|
|
|
`qrcode`, `pillow`, `future`
|
|
|
|
|
|
## Groupchat
|
|
|
|
|
|
Groupchat works only in rooms that are
|
|
|
Groupchat with OMEMO encryption works only in rooms that are:
|
|
|
- non-anonymous
|
|
|
- members-only
|
|
|
- works only with contacts that you have in your roster
|
|
|
|
|
|
|
|
|
## Filetransfer
|
|
|
|
|
|
For Filetransfer use the [HttpUploadPlugin](./HttpUploadPlugin) plugin.
|
|
|
For filetransfers in Gajim 0.16 use the [HttpUploadPlugin](./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](./UrlImagePreviewPlugin) plugin.
|
|
|
|
|
|
For decrypting and showing pictures in chat use the [UrlImagePreviewPlugin](./UrlImagePreviewPlugin) plugin.
|
|
|
If you want to use these plugins together with OMEMO, you have to install the `python-cryptography` package.
|
|
|
|
|
|
If you want to use these plugins together with *OMEMO* you have to install the `python-cryptography` package
|
|
|
|
|
|
## Performance
|
|
|
If you experience lag when sending a message, install `python-cryptography`
|
|
|
If that doesnt help, you can convert your database to WAL mode with
|
|
|
If you experience lag when sending a message, install `python-cryptography`.
|
|
|
|
|
|
If that doesnt help, you can convert your database to WAL mode with:
|
|
|
|
|
|
```
|
|
|
sqlite3 omemo_your@jid.com.db
|
|
|
PRAGMA journal_mode=WAL
|
|
|
```
|
|
|
Warning: This mode could lead to data loss if Gajim crashes
|
|
|
|
|
|
**Warning: This mode could lead to data loss if Gajim crashes!**
|
|
|
|
|
|
|
|
|
## Debugging
|
|
|
To see OMEMO related debug output start Gajim with the parameter
|
|
|
`-l gajim.plugin_system.omemo=DEBUG`.
|
|
|
|
|
|
To see OMEMO related debug output, start Gajim with the parameter:
|
|
|
|
|
|
`-l gajim.plugin_system.omemo=DEBUG`
|
|
|
|
|
|
|
|
|
## I found a bug
|
|
|
Please report it to the [issue
|
|
|
tracker](https://dev.gajim.org/gajim/gajim-plugins/issues). If you are experiencing
|
|
|
misbehaviour please provide detailed steps to reproduce and debugging output.
|
|
|
Always mention the exact Gajim version.
|
|
|
misbehaviour, please provide detailed steps to reproduce this and provide debugging output. Also, please always mention the exact Gajim version you are using.
|
|
|
|
|
|
|
|
|
## Contact
|
|
|
You can contact us at gajim@conference.gajim.org
|
|
|
You can contact us at [gajim@conference.gajim.org](xmpp:gajim@conference.gajim.org?join).
|
|
|
|
|
|
|
|
|
## Changelog
|
|
|
## Changelog (Gajim 0.16)
|
|
|
|
|
|
###### 1.2.8 - 07.10.2017
|
|
|
- Bug fixes
|
... | ... | @@ -152,26 +166,21 @@ You can contact us at gajim@conference.gajim.org |
|
|
- Small bugfixes
|
|
|
|
|
|
###### 1.1.0 - 26.03.2017
|
|
|
|
|
|
- Add file decryption
|
|
|
|
|
|
###### 1.0.4 - 01.03.2017
|
|
|
|
|
|
- Use correct tag name for EME
|
|
|
|
|
|
###### 1.0.3 - 12.02.2017
|
|
|
|
|
|
- Set an inactive device active again after receiving a message from it
|
|
|
|
|
|
###### 1.0.2 - 04.02.2017
|
|
|
|
|
|
- Fix a bug when publishing devices
|
|
|
- Fix copying fingerprint
|
|
|
- Fix layout issue
|
|
|
- Dont handle type 'normal' messages
|
|
|
|
|
|
###### 1.0.1 - 14.01.2017
|
|
|
|
|
|
- Better XEP Compliance
|
|
|
- Bugfixes
|
|
|
|