Skip to content

Commit b3cdce2

Browse files
h4x3rotabclaude
andcommitted
tsm-shim: scope README to the fixed-directory pattern it serves
The shim serves one fixed inblob/outblob; it doesn't implement the standard configfs-tsm flow where the caller mkdirs a fresh report entry per request. Say so plainly instead of implying go-configfs-tsm/libtdx-attest work. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 147de69 commit b3cdce2

1 file changed

Lines changed: 11 additions & 8 deletions

File tree

tsm-shim/README.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@ Some attestation binaries get their TDX quote through the kernel's `configfs-tsm
44
files (`/sys/kernel/config/tsm/report/*` — write `inblob`, read `outblob`) instead
55
of the dstack SDK. dstack doesn't expose those files to containers, so they fail.
66

7-
This sidecar bridges them: it serves `inblob`/`outblob` from a shared volume and
8-
forwards each request to the guest-agent's `GetQuote`. The quote is the real
9-
hardware quote (`report_data` passed through unchanged), so an unmodified binary
10-
works with only docker-compose changes — no OS change, no FUSE, no privileged
11-
container. CI publishes the image to `ghcr.io/dstack-tee/dstack-tsm-shim`.
7+
This sidecar bridges them: it serves one **fixed** `inblob`/`outblob` directory
8+
from a shared volume and forwards each request to the guest-agent's `GetQuote`.
9+
The quote is the real hardware quote (`report_data` passed through unchanged), so
10+
a binary pointed at that directory works with only docker-compose changes — no OS
11+
change, no FUSE, no privileged container. CI publishes the image to
12+
`ghcr.io/dstack-tee/dstack-tsm-shim`.
1213

1314
## Use it
1415

@@ -51,8 +52,10 @@ phala cvms logs <app_id> -c app # expect PASS and a ~5 KB quote
5152

5253
## Good to know
5354

54-
- Covers the configfs-tsm `inblob`/`outblob` path (go-configfs-tsm, recent
55-
libtdx-attest). It does **not** handle the `/dev/tdx-guest` ioctl, which needs a
56-
raw TDREPORT that dstack doesn't expose.
55+
- Works for binaries pointed at a **fixed** report directory (write `inblob`, read
56+
`outblob`, no `mkdir`). It does **not** implement the standard configfs-tsm flow
57+
where the caller `mkdir`s a fresh `report/<entry>/` per request (e.g.
58+
`go-configfs-tsm`), nor the `/dev/tdx-guest` ioctl (which needs a raw TDREPORT
59+
dstack doesn't expose).
5760
- One request at a time, one shim per app — a shared `inblob`/`outblob` can't tell
5861
concurrent callers apart. An empty `outblob` read means the quote failed.

0 commit comments

Comments
 (0)