Cryptography Bill of Materials
Know your cryptography,
before quantum breaks it.
xgrep inventories every cryptographic asset in your code and emits a CycloneDX 1.6 Cryptography Bill of Materials (CBOM). It is the inventory that post-quantum migration and crypto-compliance start from, produced fully offline from a single binary.
$ xgrep sbom --cbom .cryptographic-asset AES-256-GCM src/crypto/seal.go:19 quantum-safecryptographic-asset RSA-2048 src/auth/token.go:41 quantum-vulnerablecryptographic-asset SHA-256 src/util/digest.go:8 quantum-safeCycloneDX 1.6 CBOM · run `xgrep sbom --cbom -o cbom.json .` to save it
You can’t migrate what you can’t see.
A cryptographically relevant quantum computer would break the public-key cryptography (RSA, ECDSA, classic Diffie-Hellman) that protects data in transit and at rest today. Both NIST and the EU now direct organizations to inventory their cryptography as the first step of the transition. A CBOM is that inventory.
NIST finalized the first post-quantum standards in August 2024: FIPS 203 (ML-KEM), 204 (ML-DSA), and 205 (SLH-DSA). Its transition roadmap, NIST IR 8547, deprecates quantum-vulnerable algorithms from 2030 and disallows them after 2035, and names a cryptographic inventory as the essential first step. The NCCoE Migration to PQC project builds that same discipline, and US federal agencies already inventory their cryptography under OMB M-23-02.
Commission Recommendation (EU) 2024/1101 of 11 April 2024 calls on member states to adopt a coordinated roadmap for the transition to post-quantum cryptography. The resulting NIS Cooperation Group roadmap sets targets: quantum-vulnerable public-key cryptography should no longer be used stand-alone for high-risk use cases after 2030, and for medium-risk use cases after 2035.
An inventory, not a findings list.
A CBOM is fundamentally different from a vulnerability report. Strong, correctly-used cryptography is listed as an asset, not flagged as a problem, so you get a complete map of what you use and where.
Spot quantum-vulnerable assets at a glance.
Every algorithm asset carries a nistQuantumSecurityLevel. A value of 0 marks an asset that a quantum computer would break, so planning a migration is a matter of filtering the CBOM for the assets that need to move.
{"type": "cryptographic-asset","name": "RSA-2048","cryptoProperties": {"assetType": "algorithm","algorithmProperties": {"primitive": "pke","parameterSetIdentifier": "2048","nistQuantumSecurityLevel": 0}}}
Standards-based, ecosystem-ready.
xgrep produces the CBOM with the upstream CycloneDX Go library, so the output conforms to the official CycloneDX 1.6 schema and drops straight into the broader ecosystem: CBOMkit, CBOM viewers, and post-quantum migration tooling.
Cryptographic assets are detected across 15 languages, including their common crypto libraries (for example Java JCA and BouncyCastle, or Go’s standard library and x/crypto).
Learn more about the format in the CycloneDX CBOM specification.
Generate a CBOM.
One command, no build and no network. It runs anywhere xgrep runs, including CI, straight from a single binary.
# Print the cryptographic inventoryxgrep sbom --cbom .# Write a CycloneDX 1.6 CBOM to a filexgrep sbom --cbom -o cbom.json .
# Run it with npx, no install requirednpx @mondoohq/xgrep sbom --cbom .