Skip to main content
  1. Projects/
  2. CLI Tools/

CMVP TUI

··2 mins·
Ethan Troy
Author
Ethan Troy
hacker & writer
Table of Contents

CMVP TUI

What It Does
#

Interactive terminal UI for searching through NIST’s Cryptographic Module Validation Program database. Pulls data from the NIST CMVP API.

How It Works
#

flowchart TD
    subgraph CLI["Command Line"]
        A[main.go]
        B[--version flag]
    end

    subgraph Core["Internal Packages"]
        C[internal/api]
        D[internal/model]
        E[internal/tui]
    end

    subgraph UI["Bubbletea TUI"]
        F[Module List]
        G[Search Filter]
        H[Detail View]
        I[Algorithm Display]
    end

    subgraph API["NIST CMVP API"]
        J[modules.json]
        K[historical-modules.json]
        L[algorithms.json]
    end

    A --> B
    B --> C
    C -->|HTTP GET| J & K & L
    J & K & L --> D
    D --> E
    E --> F
    F --> G
    G --> H
    H --> I

The application is built around three internal packages. The api package fetches JSON from the NIST CMVP API—a static API I built that scrapes NIST’s official database weekly. This avoids hammering NIST directly and provides faster, more reliable lookups. The model package parses module data, certificate info, and algorithm mappings into Go structs. The tui package renders the interface using Bubbletea and Lip Gloss.

Cross-platform binaries are generated via GoReleaser.

Install
#

# Homebrew (macOS/Linux)
brew install ethanolivertroy/sectools/cmvp

# Go
go install github.com/ethanolivertroy/cmvp-tui@latest

Or grab a binary from releases.

Why
#

Sometimes you just want to quickly look up if a crypto module is FIPS validated without dealing with NIST’s website. This lets you do that from your terminal.

Built with Go and Bubbletea (same TUI framework I used for Vanta Go Export and CISA KEV TUI).

Cross-platform binaries via GoReleaser.


Changelog
#

v0.1.0 (2025-12-12)
#

Renamed from NIST-CMVP-CLI to cmvp-tui

  • Shorter, cleaner name
  • New repo: ethanolivertroy/cmvp-tui
  • Same functionality, same Homebrew install command

Related