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 .[dev]
$ mypy omemo/ examples/ tests/
$ pylint omemo/ examples/ tests/
$ flake8 omemo/ examples/ tests/
$ pytest

Getting Started

Refer to the documentation on readthedocs.io, or build it locally. Additional requirements to build the docs can be installed using pip install .[docs]. With all dependencies installed, run make html in 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-2.1.0.tar.gz (39.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

omemo-2.1.0-py3-none-any.whl (41.4 kB view details)

Uploaded Python 3

File details

Details for the file omemo-2.1.0.tar.gz.

File metadata

  • Download URL: omemo-2.1.0.tar.gz
  • Upload date:
  • Size: 39.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for omemo-2.1.0.tar.gz
Algorithm Hash digest
SHA256 578864904c27a6b260c8eb461b6c478aa208453c147672c8479f9a5ea4b5aad0
MD5 9788280dcd3696a8fde878ec7cc13641
BLAKE2b-256 037d2eb1b83f729b264fbc79e05075c51be1b7b312317eecca6c801aa8981266

See more details on using hashes here.

Provenance

The following attestation bundles were made for omemo-2.1.0.tar.gz:

Publisher: test-and-publish.yml on Syndace/python-omemo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omemo-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: omemo-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 41.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for omemo-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8319fae4a9764ff9038504384553862c49011d447353ab1890bf871349c146c0
MD5 75bdb20c233dcaf40fcc27d52dd7b7ab
BLAKE2b-256 d4dd3c2a55c6c38e560b47db5348b31db8b4dbd5e8f5c5ce89f421d16f6dd619

See more details on using hashes here.

Provenance

The following attestation bundles were made for omemo-2.1.0-py3-none-any.whl:

Publisher: test-and-publish.yml on Syndace/python-omemo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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