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.2.0.tar.gz (22.6 kB view details)

Uploaded Source

Built Distribution

x3dh-1.2.0-py3-none-any.whl (21.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for x3dh-1.2.0.tar.gz
Algorithm Hash digest
SHA256 e330111a942a43ca65c961f617cc7647ef0931bffa9fab6e88c7fe86f4847435
MD5 1d1a5356f730d6e8ca81cdf0733ad623
BLAKE2b-256 95b6cc4f0e9f39d0e9f77dcccd0643152f5f0009c20879dabf7e7d62b944d223

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for x3dh-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 82fc521e31df29154ffa2b5b26959ba11338b416808fe3892adf2842e9e820da
MD5 55f8423193c6f70d74c3cf956b7e838a
BLAKE2b-256 8db1452d3920c24dad5a7af9d32d851b388433441cc3c6e41386d59d1d1ba05a

See more details on using hashes here.

Provenance

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