Skip to main content

Find quantum-vulnerable cryptography in your codebase

Project description

qproof

Find quantum-vulnerable cryptography in your codebase.

qproof scans source code and dependencies for cryptographic algorithms, classifies their quantum risk, and recommends post-quantum replacements — with references to NIST, CNSA 2.0, ENISA, and EU standards.

CI PyPI Python License: MIT

Why qproof?

Quantum computers will break RSA, ECDSA, and Diffie-Hellman. The EU requires full PQC migration by 2035 (high-risk systems by 2030). NSA's CNSA 2.0 mandates transition starting now.

qproof tells you exactly where you're exposed and what to do about it.

  • Scans Python, JavaScript/TypeScript, Go, Java, Rust source code
  • Detects crypto dependencies in package.json, requirements.txt, go.mod, and more
  • Classifies each finding: VULNERABLE, PARTIAL, or SAFE
  • Recommends post-quantum replacements (ML-KEM, ML-DSA per FIPS 203/204)
  • References NIST, CNSA 2.0, ENISA, EU 2024/1101, CCN-STIC 221/807
  • Outputs Rich terminal tables or JSON for CI/CD integration

Quick start

pip install qproof
qproof scan .

Installation

# From PyPI
pip install qproof

# From source
git clone https://github.com/qproof/qproof.git
cd qproof
pip install -e ".[dev]"

Requires Python 3.10+.

Usage

# Scan current directory — Rich terminal output
qproof scan .

# Scan a specific path
qproof scan /path/to/project

# JSON output (for CI/CD)
qproof scan . --format json

# Save JSON report to file
qproof scan . --format json --output report.json

What it detects

Category Examples Risk
Asymmetric crypto RSA, ECDSA, ECDH, Ed25519, DH VULNERABLE
Broken hashes MD5, SHA-1 VULNERABLE
Deprecated ciphers DES, 3DES, RC4 VULNERABLE
Partial-risk symmetric AES-128, Blowfish PARTIAL
Quantum-safe AES-256, SHA-256, SHA-3, ChaCha20 SAFE

43 algorithms classified. 13 libraries mapped (Python + npm).

Output example

+------------+------------------+----------+------------------+
| Risk       | Algorithm        | File     | Replacement      |
+------------+------------------+----------+------------------+
| VULNERABLE | RSA              | app.py:5 | ML-KEM (FIPS 203)|
| VULNERABLE | SHA-1            | app.py:9 | SHA-256          |
| SAFE       | AES-256          | app.py:12| No change needed |
+------------+------------------+----------+------------------+

Quantum Ready Score: 33.3% — 1 SAFE / 3 total

Standards referenced

qproof maps every algorithm to formal standards for compliance reporting:

  • NIST: SP 800-131A Rev.2, FIPS 203 (ML-KEM), FIPS 204 (ML-DSA), FIPS 180-4, FIPS 197
  • NSA CNSA 2.0: Transition timeline 2025-2035
  • ENISA: PQC Integration Study, ECCG Agreed Cryptographic Mechanisms v2
  • EU: Recommendation 2024/1101, Coordinated PQC Roadmap (2030/2035)
  • CCN (Spain): CCN-STIC 221, CCN-STIC 807 (ENS compliance)

Supported dependency files

File Ecosystem
requirements.txt Python
Pipfile Python
pyproject.toml Python
package.json npm
go.mod Go
Cargo.toml Rust
pom.xml Java/Maven
build.gradle Java/Gradle

Roadmap

  • v0.1 — Regex source scanner, dependency scanner, Rich/JSON output
  • v0.2 — AST scanner (tree-sitter), SARIF output, GitHub Action
  • v0.3 — CBOM CycloneDX, config scanner (TLS/JWT/SSH), Go/Java source support
  • v1.0 — SaaS dashboard, compliance PDF reports

Contributing

Contributions welcome. Please open an issue first to discuss changes.

git clone https://github.com/qproof/qproof.git
cd qproof
pip install -e ".[dev]"
pytest -v
ruff check qproof/ tests/

License

MIT — see LICENSE.


Built by the EYES team. Scanning the quantum horizon.

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

qproof-0.1.0.tar.gz (42.2 kB view details)

Uploaded Source

Built Distribution

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

qproof-0.1.0-py3-none-any.whl (30.0 kB view details)

Uploaded Python 3

File details

Details for the file qproof-0.1.0.tar.gz.

File metadata

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

File hashes

Hashes for qproof-0.1.0.tar.gz
Algorithm Hash digest
SHA256 34d29d61bb25c7bbee985014ca0760eb80dc20328de6d39510f6bd80697beba1
MD5 476361d29ad54dbefe5faebe323f9226
BLAKE2b-256 7e3d6062ef7418fa38df8c8eca560f3c4bd36cfb295a24a586d424a5bfa94460

See more details on using hashes here.

File details

Details for the file qproof-0.1.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for qproof-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f1279e0fc4106d62c72fbbb6f30308355c91532c5b5248fff4721c1683e4a3fc
MD5 b58027a81b0cf4389ad5da409d9b1b22
BLAKE2b-256 bf3ce7a28a04a7fca0093c802634648f104bea6824ef6e066499fc2ec585ebbf

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