A Python implementation of the OMEMO Multi-End Message and Object Encryption protocol.
Project description
python-omemo
A Python implementation of the OMEMO Multi-End Message and Object Encryption protocol.
A complete implementation of XEP-0384 on protocol-level, i.e. more than just the cryptography. python-omemo supports different versions of the specification through so-called backends. A backend for OMEMO in the urn:xmpp:omemo:2
namespace (the most recent version of the specification) is available in the python-twomemo Python package. A backend for (legacy) OMEMO in the eu.siacs.conversations.axolotl
namespace is available in the python-oldmemo package. Multiple backends can be loaded and used at the same time, the library manages their coexistence transparently.
Installation
Install the latest release using pip (pip install OMEMO
) or manually from source by running pip install .
in the cloned repository.
Testing, Type Checks and Linting
python-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
$ pip install --upgrade twisted twomemo[xml] oldmemo[xml]
$ mypy --strict --disable-error-code str-bytes-safe omemo/ setup.py examples/ tests/
$ pylint omemo/ setup.py examples/ tests/
$ flake8 omemo/ setup.py examples/ tests/
$ pytest --cov=omemo --cov-report term-missing:skip-covered
Getting Started
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/
.
The functionality.md
file contains an overview of supported functionality/use cases, mostly targeted at developers.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file OMEMO-1.2.0.tar.gz
.
File metadata
- Download URL: OMEMO-1.2.0.tar.gz
- Upload date:
- Size: 35.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41e4f644ce7dddfe5011189e1bceceae949473fa895588b89675db8198cd9d25 |
|
MD5 | c79e29276d38778d6a08b87abf0e3f33 |
|
BLAKE2b-256 | 2c2bc98b0300e5702ea9e75bee9b1a63ccf2a622d0f6e2c4c31464e494d5dc40 |
File details
Details for the file OMEMO-1.2.0-py3-none-any.whl
.
File metadata
- Download URL: OMEMO-1.2.0-py3-none-any.whl
- Upload date:
- Size: 39.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | efa9ae6bae968a0ac1e08c97ff0d40ddcc48538e0c5ced1c67988062b0dc2624 |
|
MD5 | 434b443f024cbfded94b048029cca838 |
|
BLAKE2b-256 | a01fa773bbadf14e447b70643a0ee6a57ca5186cd88ab23d6b51cde1682636f4 |