summaryrefslogtreecommitdiffstatshomepage
path: root/tests/test_nvpcr_masks.py
diff options
context:
space:
mode:
authorsommerfeld <sommerfeld@sommerfeld.dev>2026-09-30 08:54:59 +0100
committersommerfeld <sommerfeld@sommerfeld.dev>2026-09-30 08:54:59 +0100
commit76db86a22a23ccfed07d6160cfdab4ef60067ef0 (patch)
tree777d78d3bc017a21a8ba453fbd258c3be947e678 /tests/test_nvpcr_masks.py
parent78a74ad7b930b2136dbb4b77a0ed545141b4ad2e (diff)
downloaddotfiles-76db86a22a23ccfed07d6160cfdab4ef60067ef0.tar.gz
dotfiles-76db86a22a23ccfed07d6160cfdab4ef60067ef0.tar.bz2
dotfiles-76db86a22a23ccfed07d6160cfdab4ef60067ef0.zip
Mask unused NvPCR measurements on the Arch host
Diffstat (limited to 'tests/test_nvpcr_masks.py')
-rw-r--r--tests/test_nvpcr_masks.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/test_nvpcr_masks.py b/tests/test_nvpcr_masks.py
new file mode 100644
index 0000000..b2ec429
--- /dev/null
+++ b/tests/test_nvpcr_masks.py
@@ -0,0 +1,43 @@
+import subprocess
+import unittest
+from pathlib import Path
+
+ROOT = Path(__file__).resolve().parents[1]
+MASKS = [
+ *(
+ f"etc/nvpcr/{name}.nvpcr"
+ for name in ("cryptsetup", "hardware", "login", "verity")
+ ),
+ "etc/systemd/system/systemd-pcrlogin@.service",
+ "etc/systemd/system/systemd-pcrproduct.service",
+]
+
+
+class NvPCRTests(unittest.TestCase):
+ def test_masks_are_empty_regular_files(self):
+ for name in MASKS:
+ path = ROOT / name
+ self.assertFalse(path.is_symlink())
+ self.assertEqual(path.read_bytes(), b"")
+
+ def test_initramfs_keeps_existing_files_and_includes_masks(self):
+ config = ROOT / "etc/mkinitcpio.conf.d/60-no-nvpcr.conf"
+ output = subprocess.check_output(
+ [
+ "bash",
+ "-c",
+ 'FILES=(existing); source "$1"; printf "%s\\n" "${FILES[@]}"',
+ "bash",
+ str(config),
+ ],
+ text=True,
+ ).splitlines()
+ self.assertEqual(output, ["existing", *(f"/{name}" for name in MASKS)])
+
+ def test_srk_setup_and_pcr7_policy_remain_enabled(self):
+ for name in ("systemd-tpm2-setup.service", "systemd-tpm2-setup-early.service"):
+ self.assertFalse((ROOT / "etc/systemd/system" / name).exists())
+ policy = (
+ ROOT / "etc/systemd/system/systemd-pcrlock-make-policy.service.d/pcr7.conf"
+ )
+ self.assertIn("--pcr=7 --location=770", policy.read_text())