CLI tool for scanning codebases for post-quantum cryptography vulnerabilities
Project description
pqc-migration-scanner
Scan your codebase for post-quantum cryptography vulnerabilities before Cloudflare's 2029 deadline.
What is this?
pqc-migration-scanner is a production-ready CLI tool and GitHub Action that automatically detects post-quantum cryptography (PQC) compliance issues in your codebase. It identifies outdated OpenSSL versions, weak TLS configurations, deprecated cipher suites, and insufficient key sizes—then generates actionable remediation reports aligned with NIST recommendations. Use it as a CLI tool, integrate it into your CI/CD pipeline, or deploy it as a GitHub Action to catch PQC issues before they reach production.
Features
- Multi-detector scanning – OpenSSL versions, TLS configurations, cipher suites, key sizes, and hardcoded cryptographic patterns
- NIST-aligned remediation – Every finding includes specific steps to reach PQC readiness
- Multiple output formats – Text, JSON, and Markdown reports for easy integration with existing workflows
- GitHub Action ready – Drop into your CI/CD with zero configuration; auto-generates compliance badges
- Cloudflare 2029 deadline tracking – Built-in timeline awareness for regulatory compliance
- README badges – Auto-generate "PQC Ready" or "Migration Required" badges for your project
- Enterprise-scale scanning – Efficiently handles large codebases across multiple repos
Quick Start
Installation
# Install from PyPI
pip install pqc-migration-scanner
# Or clone and install from source
git clone https://github.com/yourusername/pqc-migration-scanner.git
cd pqc-migration-scanner
pip install -e .
CLI Usage
# Scan current directory
pqc-scanner scan .
# Scan specific path with JSON output
pqc-scanner scan ./src --format json --output report.json
# Generate markdown report for README
pqc-scanner scan . --format markdown --output PQC_REPORT.md
# Generate compliance badge
pqc-scanner badge --output badge.svg
GitHub Action
Add to .github/workflows/pqc-compliance.yml:
name: PQC Compliance Check
on: [push, pull_request]
jobs:
pqc-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: yourusername/pqc-migration-scanner@v1
with:
format: markdown
fail-on-issues: true
- name: Upload Report
if: always()
uses: actions/upload-artifact@v3
with:
name: pqc-report
path: pqc-report.md
Usage Examples
Scan and Generate Report
pqc-scanner scan ./my-project --format markdown --output COMPLIANCE.md
Output includes:
- Detected vulnerabilities with severity levels
- Specific file locations and line numbers
- Remediation steps tied to NIST recommendations
- Cloudflare 2029 deadline countdown
Integrate with CI/CD
pqc-scanner scan . --format json --output results.json --fail-on-issues
Exit codes:
0– No issues found1– Issues found; CI/CD failure2– Scanning error
Check Compliance Status
pqc-scanner status .
Returns current PQC readiness score and migration progress.
Tech Stack
- Language: Python 3.10+
- CLI Framework: Click
- Scanning: AST parsing, regex pattern matching, version detection
- Reporting: Jinja2 templates for flexible output formats
- Distribution: PyPI + GitHub Actions marketplace
License
MIT
Get started now: Installation | GitHub Action Setup | Full Docs
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pqc_migration_scanner-0.1.0.tar.gz.
File metadata
- Download URL: pqc_migration_scanner-0.1.0.tar.gz
- Upload date:
- Size: 13.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6dda8e449ed29980c2e474f4e9560399468ac265505ec39014ecb471740c430
|
|
| MD5 |
3ee790c3ff1b64a5a4d8d347085baa70
|
|
| BLAKE2b-256 |
f8625b51030272f44d7c36e97bd9a4b4e0df1d984f7f664b25ad349eb9894579
|
File details
Details for the file pqc_migration_scanner-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pqc_migration_scanner-0.1.0-py3-none-any.whl
- Upload date:
- Size: 18.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
255e1a9a10eaf9a8d69f7a2bfcf48c03aa7f9cd13aa9b57217e60033407fc18a
|
|
| MD5 |
f8eb17ad3f96cbf0ee547e5062e692bc
|
|
| BLAKE2b-256 |
27ce1867193777f32e6bd00e2482397c12f65d9ba687ffe17a05c22023a6e2e8
|