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.1.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.9.1-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: poezio_omemo-0.9.1.tar.gz
  • Upload date:
  • Size: 20.6 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.1.tar.gz
Algorithm Hash digest
SHA256 7c5183410f99decf3b26482d177cc9ba89c1b129454145f0e05cb486787942b5
MD5 6c723f0eb9dcc43050ffc94eac286581
BLAKE2b-256 d788c7b0d97dce31b282bea3dbb83e09d96cff9b55d24878df3ad0801a3e2701

See more details on using hashes here.

File details

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

File metadata

  • Download URL: poezio_omemo-0.9.1-py3-none-any.whl
  • Upload date:
  • Size: 21.4 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 516a1cb6031d296816683de74df235e52e3e8b13b1141933c0a80cdd9a7d9267
MD5 9d2fffbe82708f061b5eb84f2d8a361b
BLAKE2b-256 977757fdeea889f3488c3c7b7048a60dd41a8ae482bde8760f3299191a3d819d

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