Skip to main content

A Python implementation of the OMEMO Multi-End Message and Object Encryption protocol.

Project description

PyPI PyPI - Python Version Build Status Documentation Status

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


Download files

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

Source Distribution

OMEMO-1.2.0.tar.gz (35.9 kB view details)

Uploaded Source

Built Distribution

OMEMO-1.2.0-py3-none-any.whl (39.5 kB view details)

Uploaded Python 3

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

Hashes for OMEMO-1.2.0.tar.gz
Algorithm Hash digest
SHA256 41e4f644ce7dddfe5011189e1bceceae949473fa895588b89675db8198cd9d25
MD5 c79e29276d38778d6a08b87abf0e3f33
BLAKE2b-256 2c2bc98b0300e5702ea9e75bee9b1a63ccf2a622d0f6e2c4c31464e494d5dc40

See more details on using hashes here.

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

Hashes for OMEMO-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 efa9ae6bae968a0ac1e08c97ff0d40ddcc48538e0c5ced1c67988062b0dc2624
MD5 434b443f024cbfded94b048029cca838
BLAKE2b-256 a01fa773bbadf14e447b70643a0ee6a57ca5186cd88ab23d6b51cde1682636f4

See more details on using hashes here.

Supported by

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