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.6.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.6-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sigvault-4.3.6.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.6.tar.gz
Algorithm Hash digest
SHA256 89749f8606eefcfa5a5cd362b24082b706d15817c7dfc52ba017e44db3c30127
MD5 5dea5148171a6f2a7dc7da1a862a761f
BLAKE2b-256 7d8a3bd0257b73e71e93fdee8c22584d524541ba3334f1e894a1283d035b135a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sigvault-4.3.6-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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 f6905a67656cceed260b3794ae96144d6b8270ceb66bae5983226b4aa86e9596
MD5 b2429b067ca33a0ed31fb20d4be754f8
BLAKE2b-256 7be9ad7d82f20e2e657df022e2d07b2f762e3dac24eae9f699949b7841c693bd

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