flashbots / flashbots/attested-tls
azure: TCTI is hardcoded to the raw /dev/tpm0 device
- Dominant language
- Rust
- Stars
- 5
- Forks
- 3
- Avg merge
- 4d 1h
- Merged PRs (30d)
- 8
Description
`crates/attestation/src/azure/nv_index.rs` builds its TSS context with the
hardcoded default TCTI:
```rust
let conf: TctiNameConf = TctiNameConf::Device(DeviceConfig::default());
```
`DeviceConfig::default()` is the raw `/dev/tpm0` device, which the kernel
hands to one client at a time: any other TPM user on the machine
(tpm2-tools, systemd, a second evidence-generating process) makes context
creation fail with a device-busy error, and vice versa. The kernel's TPM
resource manager (`/dev/tpmrm0`) multiplexes clients, but there is
currently no way to select it.
Proposal: resolve the TCTI via `TctiNameConf::from_environment_variable()`
(which honors the conventional `TPM2TOOLS_TCTI` / `TCTI` variables, e.g.
`device:/dev/tpmrm0`) and keep the current default as fallback — no
behavior change unless the variable is set.
Note the azure evidence path also reaches the same hardcoded pattern
upstream through `az_tdx_vtpm::vtpm` (az-cvm-vtpm `src/vtpm/mod.rs`), so
fully honoring the variable needs the matching upstream change too — filed
as https://github.com/kinvolk/azure-cvm-tooling/issues/92.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in crates/attestation/src/azure/nv_index.rs at the hardcoded TctiNameConf::Device(DeviceConfig::default()) call, then trace the Azure evidence path through az_tdx_vtpm::vtpm and az-cvm-vtpm src/vtpm/mod.rs. Review the linked azure-cvm-tooling issue for the upstream change. Done means the conventional TCTI environment variable is honored while the existing device default remains the fallback across the Azure path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- security
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100