Skip to main content

py-fn-dsa

Python bindings for Thomas Pornin's c-fn-dsa using CFFI out-of-line API mode.

Features

  • Thin wrapper around upstream c-fn-dsa
  • Windows and Linux support
  • Pythonic API
  • Upstream validation, KAT, and interoperability tests

Installation

uv sync

Quick Start

from py_fn_dsa import keygen, sign, verify
vk, sk = keygen()
sig = sign(sk, b"hello")
assert verify(vk, sig, b"hello")

API Reference

  • keygen()
  • sign()
  • verify()

Security Notes

Uses the upstream implementation without modifying cryptographic algorithms.

Development

uv sync
uv run pytest

Acknowledgements

  • Thomas Pornin and the c-fn-dsa project.

License

MIT

Metadata

Release files for py-fn-dsa 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for py-fn-dsa 0.2.0
File Size Uploaded
py_fn_dsa-0.2.0.tar.gz 1.5 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for py-fn-dsa 0.2.0
File
py_fn_dsa-0.2.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64, Linux glibc 2.26+ x86-64 Details
py_fn_dsa-0.2.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
py_fn_dsa-0.2.0-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.26+ x86-64 Details
py_fn_dsa-0.2.0-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.26+ x86-64, Linux glibc 2.28+ x86-64 Details
py_fn_dsa-0.2.0-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.26+ x86-64 Details
py_fn_dsa-0.2.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.26+ x86-64 Details
py_fn_dsa-0.2.0-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.26+ x86-64 Details

Total release size: 16.8 MB

Release files / py_fn_dsa-0.2.0.tar.gz

Download URL py_fn_dsa-0.2.0.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
1942c40b3bebbab5821329800cc3a09c86d9d13c734fb453a147a59f8cb687c3
BLAKE2b-256 checksum
How to use checksums
2593f04f9f6ffc1d07a644c7d8236a46442aebe1b25423d8f8c85ea87bcb608b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / py_fn_dsa-0.2.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

Download URL py_fn_dsa-0.2.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 4.0 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
cea2d38c4d6a50816970b97819ad294f05f8c91ade313572695c0cacb95470e6
BLAKE2b-256 checksum
How to use checksums
cb558c814596ad646ac53f950db5d4ba4f63cc260cded435bab0d4747f5e3b6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / py_fn_dsa-0.2.0-cp314-cp314-win_amd64.whl

Download URL py_fn_dsa-0.2.0-cp314-cp314-win_amd64.whl
Size 121.8 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
7dd7e0af7d7c8f7aa4ac0462715f060b377b45d4b5c3f7f2c578894b46ca8360
BLAKE2b-256 checksum
How to use checksums
54bc2df899ca53f7130d50a274ccd6b8c5e4a5358d68913634982e309996bc95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.4 {"installer":{"name":"uv","version":"0.12.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / py_fn_dsa-0.2.0-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

Download URL py_fn_dsa-0.2.0-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 3.4 MB
Tags CPython 3.14 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2176ffc53fc96a860df840fb9a7146cccd32bb32f2695eb286890be9cff55336
BLAKE2b-256 checksum
How to use checksums
b74cd50624dbb002f130079e29842caa94722166d981d284afbc91d898c90d60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / py_fn_dsa-0.2.0-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

Download URL py_fn_dsa-0.2.0-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 2.7 MB
Tags CPython 3.13 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
25d91aeab2b2c9e39436311218604b4328d690601d14dbbd9492a1a2a4198c74
BLAKE2b-256 checksum
How to use checksums
a32987e2f79c50a8f08fe550ade67cc06a55d76620b807c3cf597146b2286276
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / py_fn_dsa-0.2.0-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

Download URL py_fn_dsa-0.2.0-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 2.0 MB
Tags CPython 3.12 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c0af8aecbdbebec4c0cbfbfc1513dfbc2364abcec72072f39343d4a9c6bc8df5
BLAKE2b-256 checksum
How to use checksums
75df3f3cb70be8fc5c0725e46fae7b6cafb69c65c6bcddb0ebe27ad1ebb9eeec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / py_fn_dsa-0.2.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

Download URL py_fn_dsa-0.2.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 1.9 MB
Tags CPython 3.11 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6680d41924aa42fcbd9c9b2a7f57f293cebc4250942026d62242c9ab2cb91242
BLAKE2b-256 checksum
How to use checksums
961e9657b1069723e104cfcd18ad48aae73f08be9e26722fb8812202db071c7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / py_fn_dsa-0.2.0-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

Download URL py_fn_dsa-0.2.0-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 1.2 MB
Tags CPython 3.10 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6869236614e8467e27ee1f551eff696a14f640aed63c337727d5b4922638ec92
BLAKE2b-256 checksum
How to use checksums
a8cfd15d37e9e3f645ec550c850dba3f6641de54c605549312f6a74350842b1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.2.0 This release

8 release files

0.1.0

8 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page