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.8.0.tar.gz (20.6 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.8.0-py3-none-any.whl (26.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: poezio_omemo-0.8.0.tar.gz
  • Upload date:
  • Size: 20.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for poezio_omemo-0.8.0.tar.gz
Algorithm Hash digest
SHA256 eb8b41795fe9a191893b6a39dde0e55ce17ab08b9512ce9b7e535069941b02a1
MD5 46cedcee42fcd2eb66c55ac981878c85
BLAKE2b-256 ed6c4afb879f342d24b34f6c2c01e154cb6963b34c77c0a88bec611fb5a60447

See more details on using hashes here.

File details

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

File metadata

  • Download URL: poezio_omemo-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 26.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for poezio_omemo-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a01db7c38ef5a22a1ef02a18ee110384e0be56a7406cd1cf0ecd258dd7887b2d
MD5 d56913fdc0472c0521d8cfa5f570792f
BLAKE2b-256 d36eabcae24078047c38a171cd1a89ba30b4dc2ad5b3aeeef97d5c9227ffb313

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