caliptra-dpe

July 17, 2026 ยท View on GitHub

High level module that implements DPE and defines high-level traits that are used to communicate with the crypto peripherals and PCRs

Crates:

  • dpe: The DPE firmware implementation
  • simulator: A userspace DPE simulator

Development

This project uses the xtask pattern for common development tasks. You can run them using cargo xtask <command>.

Development Environment

A Nix flake is provided to set up a consistent development environment with all necessary dependencies (Rust, Go, uv, OpenSSL, etc.).

If you have Nix installed with flakes enabled, you can enter the development environment by running:

nix develop

xtask Commands

Available commands:

  • cargo xtask ci: Run all CI checks (format, lint, test, etc.)
  • cargo xtask test: Run all tests.
    • cargo xtask test unit: Run Rust unit tests.
    • cargo xtask test verification: Run Go verification tests.
    • cargo xtask test certs: Run cert parser tests.
    • cargo xtask test generate-test-data: Generate test certificates and keys.
    • cargo xtask test panic-check: Run panic check (verify firmware has no panic symbols).
    • cargo xtask test miri --nthreads <n> (--nextest): Run miri tests with n threads (--nextest via nextest).
  • cargo xtask precheckin: Run formatting, linters, and license header checks.
    • cargo xtask precheckin headers: Check license headers.
    • cargo xtask precheckin format: Check code formatting.
    • cargo xtask precheckin lint: Run linters.
  • cargo xtask cert-graph: Build the DPE certificate/CSR visualizer WebAssembly app and JS bindings.
    • cargo xtask cert-graph --serve: Build and start the local HTTP server (http://localhost:8080).
    • cargo xtask cert-graph --serve --port 9090: Host on a custom port.
  • cargo xtask run-tool: Run a tool from the tools/ folder.
    • cargo xtask run-tool sample-dpe-cert: Run sample_dpe_cert.
    • cargo xtask run-tool cert-size: Run cert-size.