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.9.tar.gz (8.7 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.9-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sigvault-4.3.9.tar.gz
  • Upload date:
  • Size: 8.7 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.9.tar.gz
Algorithm Hash digest
SHA256 dd66af031e3b0b95680c11dde6847b2dbefff9cd738f03f6c5ec7259aebb8a52
MD5 deab98c16edb0619ba32165aa0789982
BLAKE2b-256 96ce90ad5c5d3925217ca4616d7790b14ec719a366b9d9f3a21c9dd74e4adcaf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sigvault-4.3.9-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.9-py3-none-any.whl
Algorithm Hash digest
SHA256 6816b8265f73835090f0e01ccac68dc9487ebf93b0695e2a733f9cda9503c1ed
MD5 ed436804d82549fa6acaba3b29597332
BLAKE2b-256 18dc4f5de83dcc550b421b1948c8d5c3ad613040788b51dbf01d533494585e6f

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