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
algin 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.modmanifests today - Not a replacement for a cryptographer’s judgment on migration design