Skip to main content

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 found
  • 1 – Issues found; CI/CD failure
  • 2 – 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

Release files for pqc-migration-scanner 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pqc-migration-scanner 0.1.0
File Size Uploaded
pqc_migration_scanner-0.1.0.tar.gz 13.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pqc-migration-scanner 0.1.0
File Interpreter ABI Platform
pqc_migration_scanner-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 32.0 kB

Release files / pqc_migration_scanner-0.1.0.tar.gz

Download URL pqc_migration_scanner-0.1.0.tar.gz
Size 13.3 kB
Tags Source
SHA-256 checksum
How to use checksums
e6dda8e449ed29980c2e474f4e9560399468ac265505ec39014ecb471740c430
BLAKE2b-256 checksum
How to use checksums
f8625b51030272f44d7c36e97bd9a4b4e0df1d984f7f664b25ad349eb9894579
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / pqc_migration_scanner-0.1.0-py3-none-any.whl

Download URL pqc_migration_scanner-0.1.0-py3-none-any.whl
Size 18.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
255e1a9a10eaf9a8d69f7a2bfcf48c03aa7f9cd13aa9b57217e60033407fc18a
BLAKE2b-256 checksum
How to use checksums
27ce1867193777f32e6bd00e2482397c12f65d9ba687ffe17a05c22023a6e2e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page