Skip to content

Commit 7e4eeeb

Browse files
authored
Add measurements format conversion helper (#161)
1 parent d3b6c91 commit 7e4eeeb

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#!/usr/bin/env bash
2+
# TEMPORARY: reshape dstack-mr GCP measurements (make measure-gcp ->
3+
# build/gcp_measurements.json) into cvm-reverse-proxy's dcap-tdx
4+
# --server-measurements format. Drop once cvm-reverse-proxy accepts the
5+
# condensed dstack-mr output directly.
6+
#
7+
# dstack-mr emits mrtd[] (one per known GCP firmware) and rtmr0[] (equal-size
8+
# per-firmware chunks: firmware x machine-type-ACPI x boot variants), while
9+
# cvm-reverse-proxy wants flat measurement sets it ORs over. We pair mrtd[i]
10+
# with its rtmr0 chunk; a genuine quote matches exactly one set.
11+
#
12+
# Usage: scripts/gcp_measurements_to_dcap.sh [gcp_measurements.json] > out.json
13+
set -euo pipefail
14+
jq '
15+
(.mrtd | length) as $m
16+
| (((.rtmr0 | length) / $m) | floor) as $c
17+
| [ range(0; $m) as $i
18+
| range(0; $c) as $j
19+
| { measurement_id: "local fw\($i)-v\($j)",
20+
attestation_type: "dcap-tdx",
21+
measurements: {
22+
"0": { expected: .mrtd[$i] },
23+
"1": { expected: .rtmr0[$i*$c + $j] },
24+
"2": { expected: .rtmr1 },
25+
"3": { expected: .rtmr2 },
26+
"4": { expected: .rtmr3 }
27+
} } ]
28+
' "${1:-build/gcp_measurements.json}"

0 commit comments

Comments
 (0)