Cryptographic discovery and CBOM generation for the post-quantum transition.

Scan source, dependencies, certificates, and configuration. Correlate the evidence. Classify quantum exposure. Emit a CycloneDX CBOM and a prioritized migration report.

Install

One binary. Rules embedded.

Go 1.26+. Pre-built binaries for linux, darwin, and windows (amd64/arm64) are on GitHub Releases. Default rule packs ship inside the binary.

go install github.com/sgoveia/cryptarium/cmd/cryptarium@v0.3.0

What it scans

Four evidence sources, one inventory.

Unlike single-source scanners, cryptarium unifies and correlates findings so a result is a linked picture — not four disconnected lists.

  • Source

    Go, Python, JavaScript/TypeScript, Java, C/C++ via tree-sitter and YAML rule packs.

  • Dependencies

    Go modules today (go.mod + known-library catalog). Other ecosystems via source rules.

  • Certificates & keys

    X.509 and PKCS#12 (.pem, .crt, .p12, …). Private key bytes are never emitted.

  • Configuration

    nginx TLS cipher suites, SSH algorithm directives, JWT alg in auth-ish JSON/YAML.

Sample output

Prioritized, not a spreadsheet.

Markdown is the default report. Also available: JSON, CycloneDX CBOM 1.6+, and SARIF for CI.

Priority Class Location Primitive Recommendation
critical (83) broken certs/ecdsa-p256.pem ECDSA ML-DSA-65 (FIPS 204)
critical (83) broken certs/rsa2048.pem RSA ML-KEM-768 / ML-DSA-65 (FIPS 203 / FIPS 204)
high (70) broken go.mod:6 RSA ML-KEM-768 / ML-DSA-65 (FIPS 203 / FIPS 204)
high (78) broken token.go:9 RSA ML-KEM-768 / ML-DSA-65 (FIPS 203 / FIPS 204)

Classification

Broken, weakened, or safe — with a migration target.

Classifications and targets track NIST FIPS 203/204/205. Hybrid classical-plus-PQC constructions are a first-class recommended transition state.

Classical primitive Status Recommended target
RSA Broken (Shor) ML-KEM (FIPS 203) for key establishment; ML-DSA (FIPS 204) for signatures
ECDH / DH Broken (Shor) ML-KEM; hybrid X25519 + ML-KEM-768 during transition
ECDSA / EdDSA / DSA Broken (Shor) ML-DSA (FIPS 204); SLH-DSA (FIPS 205) where a conservative hash-based option is preferred
AES-128 Weakened (Grover) AES-256
SHA-256 Weakened (Grover) SHA-384 / SHA-512 in high-assurance contexts
SHA-1, MD5, 3DES Already broken Deprecate immediately

CI

Gate builds on severity.

Drop the GitHub Action into a workflow. Upload SARIF, fail on a threshold with --fail-on.

- uses: sgoveia/cryptarium@v0.3.0
  with:
    path: .
    fail-on: critical
    upload-sarif: true

Scope

What this is not

Credibility depends on never overstating what static discovery can prove.

  • Not a cryptographic correctness auditor (padding, IV reuse, side channels)
  • Not a binary, firmware, or container analyzer (roadmap)
  • Not a runtime or network TLS scanner (roadmap); it sees what code and config contain, not what is negotiated on the wire
  • Not a multi-ecosystem dependency scanner yet; only go.mod manifests today
  • Not a replacement for a cryptographer’s judgment on migration design