Skip to main content

OMEMO plugin for Poezio

Project description

PyPI PyPI - Python Version

poezio-omemo - OMEMO plugin for Poezio

This is a Poezio plugin providing OMEMO support. It's distributed separately for licensing reasons.

This plugin is very much alpha. It handles encryption and decryption of OMEMO messages, but doesn't display the encryption state of messages, and neither does it have a way to do manual trust management.

OMEMO Protocol Version Support

Currently supports OMEMO in the eu.siacs.conversations.axolotl namespace. Support for OMEMO in the omemo:2 namespace will be added as soon as Slixmpp gains support for XEP-0420: Stanza Content Encryption.

Trust

Internally supports both Blind Trust Before Verification and manual trust management, however the UI does not currently offer a way to manage trust manually. This means that for now, all devices are always trusted blindly.

Installation

Arch Linux (AUR)

Packages for Arch Linux are available on AUR:

Debian

A Request for packaging has been posted, but so far, Debian has not packaged poezio-omemo yet..

Everything else (pip/uv)

For all other cases, the plugin can be installed and made available to Poezio by adding one of the following at the end of Poezio's update.sh script:

For the latest release:
uv pip install poezio-omemo
For the latest commit on the main branch:
uv pip install git+https://codeberg.org/poezio/poezio-omemo
For your local clone of this repository:
uv pip install /path/to/your/clone

After adding that line, you might have to create a local commit in your clone of Poezio using:

git add update.sh && git commit -m "Install poezio-omemo in update.sh"

You should now be able to use ./update.sh and ./launch.sh as usual.

Common Issues

This plugin is NOT to be placed in the Poezio plugin folder, doing so may shadow the OMEMO library and render it inaccessible from Poezio. This module declares itself via pkg_resources under the poezio_plugins group.

Other possible issues when loading the plugin may be that the OMEMO library is incorrectly setup.

In a Python interpreter:

>>> # Is the backend OMEMO library is reachable? (success: no error, no output)
>>> import omemo
>>> # Is poezio-omemo reachable? (success: no error, no output)
>>> import poezio_omemo
>>> # Is the module probably declared in plugin entries? (success: true)
>>> import pkg_resources
>>> "omemo" in map(lambda e: e.name, pkg_resources.iter_entry_points("poezio_plugins"))

If this doesn't yield any error and Poezio still can't load the plugin, try starting it with a debug file (-d poezio.log) and join our channel.

Use in Poezio

Once installed (see the Installation section), you can add omemo in the plugin_autoload configuration. See the Poezio documentation for more information about autoloading plugins. To load it manually in Poezio, type /load omemo.

Type Checks and Linting

poezio-omemo uses mypy for static type checks and both pylint and Flake8 for linting. All checks can be run locally with the following commands:

$ pip install --upgrade .[lint]
$ mypy poezio_omemo/
$ pylint poezio_omemo/
$ flake8 poezio_omemo/

Note on the Underlying OMEMO Library

The underlying library python-omemo has not undergone any security audits. If you have the knowledge, any help is welcome.

Please take this into consideration when using this library.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

poezio_omemo-0.9.0.tar.gz (26.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

poezio_omemo-0.9.0-py3-none-any.whl (26.3 kB view details)

Uploaded Python 3

File details

Details for the file poezio_omemo-0.9.0.tar.gz.

File metadata

  • Download URL: poezio_omemo-0.9.0.tar.gz
  • Upload date:
  • Size: 26.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for poezio_omemo-0.9.0.tar.gz
Algorithm Hash digest
SHA256 2e66e8f27b97f08898c2a35b05fe6d00379a5d0681e4b471f61c3c3bf7f5f01a
MD5 f73c4443dd7b99f2d9ad9e6cd73e9d00
BLAKE2b-256 283316e056b8d9058ee23d5a5e45aede49035df7d5172aca5fffb775497f9b0d

See more details on using hashes here.

File details

Details for the file poezio_omemo-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: poezio_omemo-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 26.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for poezio_omemo-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b23202bca5b1eab7b31e02ed29dc26af32a73841b6e8e62cc691186e01d1e975
MD5 d16ba095598f8a674755dd24fb1c5840
BLAKE2b-256 3e37f60482ad4c9af866e3900f690954d00123fe75edc55abb7b26b7de2eda26

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page