qids — Python client for QIDS quantum digital signatures
qids is the Python client SDK for a QIDS Gateway. The gateway signs
documents with one-time universal hashing (OTUH), a quantum digital
signature scheme, and verifies them for the designated recipients. This
package sends the requests; the gateway holds the one-time key material, and
the client never sees it.
pip install qids
Python 3.10 or later. It depends on nothing outside the standard library.
The gateway itself is not on PyPI. It is delivered as a licensed container image. For access, contact raunakg2005@gmail.com.
Sign and verify
from qids import QIDSClient
client = QIDSClient(
node_id="bank_node_alpha",
qids_service_url="https://your-gateway.example.com",
api_key="sk_live_...", # from <gateway>/signup
)
signature = client.sign(
document_id="DOC-98104",
payload=b"TRANSFER 1,000,000 USD TO ACCT-48910",
recipient_ids=["bank_node_beta"],
)
print(signature.document_id, len(signature.signature_tags), "tag(s)")
print(signature.entropy_source, "qkd_backed =", signature.qkd_backed)
verification = client.verify(
document_id=signature.document_id,
payload=b"TRANSFER 1,000,000 USD TO ACCT-48910",
sender_id="bank_node_alpha",
signature_tag=signature.signature_tags[0],
)
print(verification.is_valid, verification.reason, verification.threat)
A changed payload is rejected, and the result names the threat (forgery).
What a signature guarantees
The forgery bound returned with each signature (signature.otuh) is
information-theoretic for a one-time key that is uniformly random and secret,
so where the key comes from matters, and every signature says
(entropy_source, qkd_backed):
- Key from a QKD system over ETSI GS QKD 014: the guarantee holds end to end.
- Key from the OS CSPRNG (the default): the guarantee rests on that generator and is computational in practice.
The gateway deals the recipients' key shares itself, so it is a trusted dealer: its guarantees are only as strong as the host it runs on.
Errors
QIDSAuthError (a missing or rejected API key) and QIDSServiceError (the
gateway returned an error or could not be reached) come from qids.client.
The QidsError hierarchy in qids.errors lets you catch everything the
package raises deliberately.
ETSI GS QKD 014
QIDSClient(..., etsi_kms_url=...) and client.get_etsi_client(peer_sae_id)
give direct access to a key-management entity through the ETSI GS QKD 014
REST API (qids.hardware.etsi_014.ETSI014Client).
Licence
Proprietary. Copyright © 2026 QIDS. All rights reserved. See LICENSE in
the distribution.
Metadata
Release files for qids 1.3.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| qids-1.3.7.tar.gz | 15.3 kB | Without provenance | Details for qids-1.3.7.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| qids-1.3.7-py3-none-any.whl | Python 3 | none | any | Details for qids-1.3.7-py3-none-any.whl |
Total release size: 31.5 kB
Release files / qids-1.3.7.tar.gz
| Download URL | qids-1.3.7.tar.gz |
|---|---|
| Size | 15.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e193ba8a5fdd71ee845c583233cd1767e1f6a712e8d8dc2421869c8e98d78483
|
|
BLAKE2b-256 checksum How to use checksums |
5304de1d243f759e4239afacdba2b47b8e8bdee1c2dedfa055ea128d3a8e13ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / qids-1.3.7-py3-none-any.whl
| Download URL | qids-1.3.7-py3-none-any.whl |
|---|---|
| Size | 16.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
da164591833ce00d574640f75bbccb7c10af48d3b3ad61eac435d5913b69ea33
|
|
BLAKE2b-256 checksum How to use checksums |
59b7b8200856b5f96fc54eb21b5498c9c7a20ee4160f8c554fb0ad2ce4be847b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Security for qids 1.3.7
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.