Skip to main content

A Python implementation of the Extended Triple Diffie-Hellman key agreement protocol.

Project description

PyPI PyPI - Python Version Build Status Documentation Status

This repository is actively maintained.

Activity is low at times because this project is already feature-complete, documented and tested.

python-x3dh

A Python implementation of the Extended Triple Diffie-Hellman key agreement protocol.

Installation

Install the latest release using pip (pip install X3DH) or manually from source by running pip install . in the cloned repository.

Differences to the Specification

In the X3DH specification, the identity key is a Curve25519/Curve448 key and XEdDSA is used to create signatures with it. This library does not support Curve448, however, it supports Ed25519 in addition to Curve25519. You can choose whether the public part of the identity key in the bundle is transferred as Curve25519 or Ed25519. Refer to the documentation for details.

Testing, Type Checks and Linting

python-x3dh 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 x3dh/ tests/
$ pylint x3dh/ tests/
$ flake8 x3dh/ tests/
$ pytest

Documentation

View 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. You can find the generated documentation in docs/_build/html/.

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

x3dh-1.3.0.tar.gz (21.0 kB view details)

Uploaded Source

Built Distribution

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

x3dh-1.3.0-py3-none-any.whl (19.9 kB view details)

Uploaded Python 3

File details

Details for the file x3dh-1.3.0.tar.gz.

File metadata

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

File hashes

Hashes for x3dh-1.3.0.tar.gz
Algorithm Hash digest
SHA256 3bb822024b80d1388fa05764a5fdcbb4e804b15f04c7b398cee9114af9013236
MD5 852050ff9edecda8c825ae939273e9bb
BLAKE2b-256 793307464282c2664cb43e1f1e3d928a47ad91d195066a78a1bcc4d2db28e50a

See more details on using hashes here.

Provenance

The following attestation bundles were made for x3dh-1.3.0.tar.gz:

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

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

File details

Details for the file x3dh-1.3.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for x3dh-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 92548974e0cd9eccf19315f59014e5796ee4c5440b6fe753a9168fb92dd6c914
MD5 c6983d638a123c0f5849992f79668b73
BLAKE2b-256 bbf5c18d9e408a3cf4eb4c7c568b1ef0507cf3a5938325aed8c1684084a3313a

See more details on using hashes here.

Provenance

The following attestation bundles were made for x3dh-1.3.0-py3-none-any.whl:

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

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