metropolis: use swtpm from monorepo
Change-Id: I6da94c7eaa31930d120955a17661152fc284f4a0
Reviewed-on: https://review.monogon.dev/c/monogon/+/3130
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
Tested-by: Jenkins CI
diff --git a/metropolis/test/launch/cluster/cluster.go b/metropolis/test/launch/cluster/cluster.go
index e7a49a2..4c678a1 100644
--- a/metropolis/test/launch/cluster/cluster.go
+++ b/metropolis/test/launch/cluster/cluster.go
@@ -326,10 +326,18 @@
}
// Start TPM emulator as a subprocess
+ swtpm, err := runfiles.Rlocation("swtpm/swtpm")
+ if err != nil {
+ return fmt.Errorf("could not find swtpm: %w", err)
+ }
+
tpmCtx, tpmCancel := context.WithCancel(options.Runtime.ctxT)
tpmd := filepath.Join(r.ld, "tpm")
- tpmEmuCmd := exec.CommandContext(tpmCtx, "swtpm", "socket", "--tpm2", "--tpmstate", "dir="+tpmd, "--ctrl", "type=unixio,path="+tpmSocketPath)
+ tpmEmuCmd := exec.CommandContext(tpmCtx, swtpm, "socket", "--tpm2", "--tpmstate", "dir="+tpmd, "--ctrl", "type=unixio,path="+tpmSocketPath)
+ // Silence warnings from unsafe libtpms build (uses non-constant-time
+ // cryptographic operations).
+ tpmEmuCmd.Env = append(tpmEmuCmd.Env, "MONOGON_LIBTPMS_ACKNOWLEDGE_UNSAFE=yes")
tpmEmuCmd.Stderr = os.Stderr
tpmEmuCmd.Stdout = os.Stdout