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

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 pytest pytest-asyncio pytest-cov mypy pylint flake8
$ mypy --strict x3dh/ setup.py tests/
$ pylint x3dh/ setup.py tests/
$ flake8 x3dh/ setup.py tests/
$ pytest --cov=x3dh --cov-report term-missing:skip-covered

Documentation

View the documentation on readthedocs.io or build it locally, which requires the Python packages listed in docs/requirements.txt. 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.0.3.tar.gz (15.3 kB view details)

Uploaded Source

Built Distribution

X3DH-1.0.3-py3-none-any.whl (21.2 kB view details)

Uploaded Python 3

File details

Details for the file X3DH-1.0.3.tar.gz.

File metadata

  • Download URL: X3DH-1.0.3.tar.gz
  • Upload date:
  • Size: 15.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for X3DH-1.0.3.tar.gz
Algorithm Hash digest
SHA256 3aa55318e01685491ace71450968930592c9fc2b3985928c2e6ef1ab0de555d5
MD5 bba24dbdf1a9ccd9e280072a4212dbd1
BLAKE2b-256 6a6e4692170ffd25fb75a3f9989fd886b72fe40c4b39882ed5369503a764fd07

See more details on using hashes here.

File details

Details for the file X3DH-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: X3DH-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 21.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for X3DH-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6c18ee3492a6d5b9f2e712a4570f6fc83a026e42d5c36fbaf6cd4f7efeeca550
MD5 d01498bc02f174dc4e7f06be36d2dfc2
BLAKE2b-256 dde117de7a18b3178e10475e5847a75d31dae533c892e7ee995aaf58586bf98c

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