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 .[test,lint]
$ 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.0.0.tar.gz (41.1 kB view details)

Uploaded Source

Built Distribution

omemo-2.0.0-py3-none-any.whl (43.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for omemo-2.0.0.tar.gz
Algorithm Hash digest
SHA256 63a492ef4e054da8db7ba4875805c2e2bfc3db65c67cab186102af2cfbdc411f
MD5 75993ebe30669011424c21d287e4109f
BLAKE2b-256 59037a3010b55a9472ba84f4122c80081237a28e936ba44411f1e6fd5401762c

See more details on using hashes here.

Provenance

The following attestation bundles were made for omemo-2.0.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.0.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for omemo-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3850e7c531b4e40e2c8fefc4e335c88751094cc45a089525c12b053ceaf0fb1c
MD5 a5d65294cc751a1add1bfa7a2fd236dd
BLAKE2b-256 e8797a9de6f83e85505f104e8b5cef5808a26f5a360e619e43d3d55741faa962

See more details on using hashes here.

Provenance

The following attestation bundles were made for omemo-2.0.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 Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page