A Python implementation of the Extended Triple Diffie-Hellman key agreement protocol.
Project description
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 |
e330111a942a43ca65c961f617cc7647ef0931bffa9fab6e88c7fe86f4847435
|
|
MD5 |
1d1a5356f730d6e8ca81cdf0733ad623
|
|
BLAKE2b-256 |
95b6cc4f0e9f39d0e9f77dcccd0643152f5f0009c20879dabf7e7d62b944d223
|
Provenance
The following attestation bundles were made for x3dh-1.2.0.tar.gz
:
Publisher:
test-and-publish.yml
on Syndace/python-x3dh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1
-
Predicate type:
https://docs.pypi.org/attestations/publish/v1
-
Subject name:
x3dh-1.2.0.tar.gz
-
Subject digest:
e330111a942a43ca65c961f617cc7647ef0931bffa9fab6e88c7fe86f4847435
- Sigstore transparency entry: 246801324
- Sigstore integration time:
-
Permalink:
Syndace/python-x3dh@52db86377f0a0fbb2d61fa197ad79bc9078d0e71
-
Branch / Tag:
refs/tags/v1.2.0
- Owner: https://github.com/Syndace
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com
-
Runner Environment:
github-hosted
-
Publication workflow:
test-and-publish.yml@52db86377f0a0fbb2d61fa197ad79bc9078d0e71
-
Trigger Event:
push
-
Statement type:
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
Algorithm | Hash digest | |
---|---|---|
SHA256 |
82fc521e31df29154ffa2b5b26959ba11338b416808fe3892adf2842e9e820da
|
|
MD5 |
55f8423193c6f70d74c3cf956b7e838a
|
|
BLAKE2b-256 |
8db1452d3920c24dad5a7af9d32d851b388433441cc3c6e41386d59d1d1ba05a
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1
-
Predicate type:
https://docs.pypi.org/attestations/publish/v1
-
Subject name:
x3dh-1.2.0-py3-none-any.whl
-
Subject digest:
82fc521e31df29154ffa2b5b26959ba11338b416808fe3892adf2842e9e820da
- Sigstore transparency entry: 246801344
- Sigstore integration time:
-
Permalink:
Syndace/python-x3dh@52db86377f0a0fbb2d61fa197ad79bc9078d0e71
-
Branch / Tag:
refs/tags/v1.2.0
- Owner: https://github.com/Syndace
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com
-
Runner Environment:
github-hosted
-
Publication workflow:
test-and-publish.yml@52db86377f0a0fbb2d61fa197ad79bc9078d0e71
-
Trigger Event:
push
-
Statement type: