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 withnthreads (--nextestvia 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 thetools/folder.cargo xtask run-tool sample-dpe-cert: Runsample_dpe_cert.cargo xtask run-tool cert-size: Runcert-size.