Skip to main content

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 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

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

pqc_migration_scanner-0.1.0.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

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

pqc_migration_scanner-0.1.0-py3-none-any.whl (18.7 kB view details)

Uploaded Python 3

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

Hashes for pqc_migration_scanner-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e6dda8e449ed29980c2e474f4e9560399468ac265505ec39014ecb471740c430
MD5 3ee790c3ff1b64a5a4d8d347085baa70
BLAKE2b-256 f8625b51030272f44d7c36e97bd9a4b4e0df1d984f7f664b25ad349eb9894579

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pqc_migration_scanner-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 255e1a9a10eaf9a8d69f7a2bfcf48c03aa7f9cd13aa9b57217e60033407fc18a
MD5 f8eb17ad3f96cbf0ee547e5062e692bc
BLAKE2b-256 27ce1867193777f32e6bd00e2482397c12f65d9ba687ffe17a05c22023a6e2e8

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