EO 14412CNSA 2.0CycloneDX 1.6NIST PQC

Open Source Cryptographic Bill of MaterialsInstant. Complete. Enterprise Ready.

Scan any codebase in seconds. Detect every algorithm, key, and certificate. Block deprecated crypto before it merges. Self-host or cloud.

$ brew install keylens/tap/cbom
EnterpriseSelf-host, SSO, Audit
0+ GitHub stars·0+ forks·0 contributors·--- days until EOY 2026
keylens — scan
$cbom scan .
Scanning 847 files across 3 languages…
Detected23 cryptographic assetsin312ms
ALGORITHM STATUS FILE
AES-256-GCM ✓ Compliant src/crypto/encrypt.rs
ML-KEM-768 ✓ Compliant src/pqc/kem.rs
RSA-2048 ✗ Deprecated src/auth/jwt.go
SHA-1 ✗ Deprecated lib/hash.py
ML-DSA-65 ✓ Compliant src/pqc/sign.rs
ECDSA-P256 ⚠ Review src/tls/cert.ts
Summary: 3 compliant 1 review 2 deprecated
CBOM exported → report.cdx.json
$

Enterprise-Grade Cryptographic Compliance

SOC 2Q3 2026
FedRAMPQ4 2026
Air-GapAvailable
SSO/SAMLAvailable
Audit LogsAvailable

Deployment Options

Self-hostedYour infrastructure — Available now
Air-gappedNo internet required — Available now
ContainerizedKubernetes ready — Available now
SaaSCloud managed — Coming Q3
Download Compliance Datasheet →

Why KeyLens?

Side-by-side with CBOMkit — the only other open source CBOM tool.

FeatureKeyLensCBOMkit
Scan engineRust (native binary)Java (JVM/Docker)
Languages20+ (Tree-sitter AST)Java + Python only
Time to scan 10K LOC~300ms~8-12s
Installbrew installDocker + JDK 21
CI/CD integrationNative GitHub ActionDocker-based
Policy engineRego (built-in)Limited built-in
CBOM diff (CI gating) Yes No
Air-gapped deploy Yes No
SSO/SAML Yes No
LicenseMPL-2.0MIT

See It in Action

From quick scans to full CI/CD gating in minutes.

bash
# Scan your codebase
$ cbom scan .

# Filter by algorithm family
$ cbom scan . --filter 'algo.family=="SHA"'

# Output as CBOM (CycloneDX 1.6)
$ cbom scan . --format cbom --output report.json

# Export for auditor
$ cbom scan . --format pdf > crypto-inventory.pdf
yaml
name: Crypto Gate
on: [pull_request]

jobs:
  cbom-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Run KeyLens CBOM scan
        uses: keylens/cbom-action@v1
        with:
          policy: cnsa-2.0
          fail-on: deprecated
          output: cbom-report.json

      - name: CBOM Diff (block regressions)
        uses: keylens/cbom-action@v1
        with:
          command: diff
          baseline: main
rego
package keylens.policy

# Block SHA-1 in all codebases
deny[msg] {
    input.algorithm.name == "SHA-1"
    msg := sprintf(
        "SHA-1 detected in %s — migrate to SHA-256+",
        [input.location.file]
    )
}

# Require PQC for key exchange
deny[msg] {
    input.algorithm.primitive == "KEM"
    not startswith(input.algorithm.name, "ML-KEM")
    msg := sprintf(
        "Non-PQC KEM '%s' in %s — use ML-KEM",
        [input.algorithm.name, input.location.file]
    )
}

Covered by KeyLens

Before KeyLens

  • Manual inventory in spreadsheets
  • 3-6 week audit cycles
  • $200k+ in consulting fees
  • Results stale on delivery

After KeyLens

  • cbom scan .
  • Results in under 2 minutes
  • Auditor-ready CBOM output
  • Continuous, automated, free