Multi-backend FIPS-205 SLH-DSA bindings
Project description
Beware: This package have been generated and has not been audited.
slh_dsa_multi
Multi-backend FIPS-205 SLH-DSA bindings.
While waiting for SLH-DSA in pyca/cryptography this exposes a range of SLH-DSA implementations.
The default vendored backend is slhdsa-c can be rebuild via pip install.
This an unaudited and experimental library.
Backends
| Backend | Source | Selected as | Pinned |
|---|---|---|---|
| slhdsa-c | vendored, compiled at install | "slhdsa-c" |
2b111e07 |
| nettle | vendored, compiled at install | "nettle" |
66c7ef01 |
| botan3 | system botan3 bindings |
"botan3" |
n/a |
| liboqs | system oqs (liboqs-python) |
"liboqs" |
n/a |
| OpenSSL | system OpenSSL3.5 or later | "openssl" |
n/a |
Use the backend= API argument or SLH_DSA_BACKEND environment variable to select.
Quickstart
from slh_dsa_multi import SLHDSAPrivateKey
sk = SLHDSAPrivateKey.generate("SLH-DSA-SHA2-128s")
pk = sk.public_key()
sig = sk.sign(b"hello world")
pk.verify(sig, b"hello world")
raw = sk.private_bytes_raw()
sk2 = SLHDSAPrivateKey.from_private_bytes(raw, "SLH-DSA-SHA2-128s")
Domain separation via context=b"...". No pre-hash variants are supported.
Signing is randomized (hedged) by default for practical security.
Deterministic signing deterministic=True should use
a secret seed addrnd=os.urandom(16) stored with the private key.
Benchmarks
See how these bindings perform:
This comparison is unfair due to the way these backends have been packaged.
If you don't know which one to pick, use the default or openssl as usual.
License
See LICENSE
Vendored backends:
- slhdsa-c (ISC or MIT or Apache-2.0)
- nettle (LGPLv3+/GPLv2+)
These bindings targets GPL-3.0-only and can be reused.
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 Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file slh_dsa_multi-0.2.0.tar.gz.
File metadata
- Download URL: slh_dsa_multi-0.2.0.tar.gz
- Upload date:
- Size: 122.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
187a46db85589f5faee57a868970fe59de92efbe2871494ac26c922d35e9b455
|
|
| MD5 |
d30be1af9ad667767a64eaefa9369ac0
|
|
| BLAKE2b-256 |
8dd6ba6fdfdcbdea9b533c3c95d09fe12c56a1d731d4144986bd1169b0035de5
|
File details
Details for the file slh_dsa_multi-0.2.0-cp312-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: slh_dsa_multi-0.2.0-cp312-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 380.7 kB
- Tags: CPython 3.12+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2e9bf35241fe2c2393a62b8f184a1de965cda7e2400a597b4c8e10887677b04
|
|
| MD5 |
905be6905e8082a3eb49b7019921c744
|
|
| BLAKE2b-256 |
bf93c8846c4e08c3b70a736424423f7e5e0b072ca5927c469430c73a46b9706d
|
File details
Details for the file slh_dsa_multi-0.2.0-cp312-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.
File metadata
- Download URL: slh_dsa_multi-0.2.0-cp312-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
- Upload date:
- Size: 370.8 kB
- Tags: CPython 3.12+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d2881292cb5fe1034099993834e38eb74008552406bf05c5e34c834b363ea474
|
|
| MD5 |
8dc0956403c35f0c9225e1cc67b28b5e
|
|
| BLAKE2b-256 |
f2a8f9310795bd23a38fb83dbfdca53523c7a0bb2ad0bf09dd165fb145a2b945
|