Skip to main content

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.

PyPI Python License: GPL-3.0-only

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:

comparison

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slh_dsa_multi-0.2.0.tar.gz (122.9 kB view details)

Uploaded Source

Built Distributions

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

slh_dsa_multi-0.2.0-cp312-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (380.7 kB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ x86-64

slh_dsa_multi-0.2.0-cp312-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (370.8 kB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ ARM64

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

Hashes for slh_dsa_multi-0.2.0.tar.gz
Algorithm Hash digest
SHA256 187a46db85589f5faee57a868970fe59de92efbe2871494ac26c922d35e9b455
MD5 d30be1af9ad667767a64eaefa9369ac0
BLAKE2b-256 8dd6ba6fdfdcbdea9b533c3c95d09fe12c56a1d731d4144986bd1169b0035de5

See more details on using hashes here.

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

File hashes

Hashes for slh_dsa_multi-0.2.0-cp312-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a2e9bf35241fe2c2393a62b8f184a1de965cda7e2400a597b4c8e10887677b04
MD5 905be6905e8082a3eb49b7019921c744
BLAKE2b-256 bf93c8846c4e08c3b70a736424423f7e5e0b072ca5927c469430c73a46b9706d

See more details on using hashes here.

File details

Details for the file slh_dsa_multi-0.2.0-cp312-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for slh_dsa_multi-0.2.0-cp312-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 d2881292cb5fe1034099993834e38eb74008552406bf05c5e34c834b363ea474
MD5 8dc0956403c35f0c9225e1cc67b28b5e
BLAKE2b-256 f2a8f9310795bd23a38fb83dbfdca53523c7a0bb2ad0bf09dd165fb145a2b945

See more details on using hashes here.

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