A plugin for slixmpp offering the OMEMO Multi-End Message and Object Encryption protocol, based on python-omemo.
Currently supports OMEMO in the eu.siacs.conversations.axolotl
namespace.
Support for OMEMO in the omemo:2
namespace is prepared and will be enabled as soon as Slixmpp gains support for XEP-0420: Stanza Content Encryption.
Supports Blind Trust Before Verification and manual trust management.
Install the latest release using pip (pip install slixmpp_omemo
) or manually from source by running pip install .
in the cloned repository.
slixmpp-omemo uses pytest as its testing framework, mypy for static type checks and both pylint and Flake8 for linting. All tests/checks can be run locally with the following commands:
$ pip install --upgrade pytest pytest-asyncio pytest-cov mypy pylint flake8
$ mypy --strict --disable-error-code str-bytes-safe --untyped-calls-exclude=slixmpp slixmpp_omemo/ setup.py examples/ tests/
$ pylint slixmpp_omemo/ setup.py examples/ tests/
$ flake8 slixmpp_omemo/ setup.py examples/ tests/
$ pytest --cov=slixmpp_omemo --cov-report term-missing:skip-covered
Refer to the documentation on readthedocs.io, or build/view it locally in the docs/
directory. To build the docs locally, install the requirements listed in docs/requirements.txt
, e.g. using pip install -r docs/requirements.txt
, and then run make html
from within the docs/
directory. The documentation can then be found in docs/_build/html/
.