Skip to main content

Post-quantum (ML-DSA-87 / Falcon) cryptographic tokens — Python client for the Sigvault REST server.

Project description

sigvault

PyPI Python versions Apache-2.0

Python client for Sigvault — post-quantum (ML-DSA-87, Falcon-512/1024) cryptographic tokens over a zero-dependency REST API.

  • Stdlib-only. No requests, no httpx, no compiled wheels. One universal wheel, works on Python 3.8+ everywhere (Linux, macOS, Windows, WASM, Alpine).
  • Talks to qv-server — the same sovereign Node server available as a Docker image at ghcr.io/007krcs/qv-server:4.2.

Install

pip install sigvault

Run the server

docker run -p 7433:7433 \
  -e QV_MASTER_KEY_HEX=$(openssl rand -hex 32) \
  ghcr.io/007krcs/qv-server:4.2

30-second demo

from sigvault import QVClient

qv = QVClient("http://localhost:7433")

key = qv.keygen(label="demo")
iss = qv.issue(
    key_id=key["keyId"],
    claims={"sub": "user-123", "role": "admin"},
    ttl=3600,
)

out = qv.verify(key_id=key["keyId"], token=iss["token"])
assert out["claims"]["sub"] == "user-123"

Error handling

from sigvault import QVClient, QVVerifyError, QVHTTPError

qv = QVClient("http://localhost:7433")
try:
    qv.verify(key_id=key_id, token=tampered_token)
except QVVerifyError as e:
    # Signature / expiry / replay / revocation failure.
    ...
except QVHTTPError as e:
    # Server returned 4xx/5xx for non-verification reasons.
    print(e.status, e.code, e.message)

License

Apache-2.0.

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

sigvault-4.3.3.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

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

sigvault-4.3.3-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file sigvault-4.3.3.tar.gz.

File metadata

  • Download URL: sigvault-4.3.3.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for sigvault-4.3.3.tar.gz
Algorithm Hash digest
SHA256 1e4a235c5ae1ace4960f58d39aeed407f50580719101e25156cbb726707ead56
MD5 f0a9cdb305d3d84de85afb06caebbf0d
BLAKE2b-256 103b975dd28a142b950eedd006d2595da064e695353972d85bf18990864324c2

See more details on using hashes here.

File details

Details for the file sigvault-4.3.3-py3-none-any.whl.

File metadata

  • Download URL: sigvault-4.3.3-py3-none-any.whl
  • Upload date:
  • Size: 9.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for sigvault-4.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2c418e74356275f3cbd05d5ddcb32d04f24361f9a394a4cadb5562a6dbae52b2
MD5 8d3735b568f61daa8aeede262417bad4
BLAKE2b-256 3369316ae8f5a34df11e40f48991adb2c488ee27605a47f3b677d616fce69cb8

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