diff options
author | Lennart Poettering <lennart@poettering.net> | 2022-12-16 16:25:34 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2023-01-17 09:42:16 +0100 |
commit | f44ed151c6c203f01a9fe8623b282ecd4ef2e0a9 (patch) | |
tree | d5fef364c4998822aa067bd44df7bd31c40e4811 /test/units | |
parent | 2bd33c909c0cf02a2a794ac83d66e8b32879c25d (diff) | |
download | systemd-f44ed151c6c203f01a9fe8623b282ecd4ef2e0a9.tar.gz |
test: add simple integration test for checking PCR extension works as it should
Diffstat (limited to 'test/units')
-rwxr-xr-x | test/units/testsuite-70.sh | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/units/testsuite-70.sh b/test/units/testsuite-70.sh index d64674461f..2ab8855ddc 100755 --- a/test/units/testsuite-70.sh +++ b/test/units/testsuite-70.sh @@ -172,6 +172,36 @@ else echo "/usr/lib/systemd/systemd-measure or PCR sysfs files not found, skipping signed PCR policy test case" fi +if [ -e /usr/lib/systemd/systemd-pcrphase ] && \ + [ -f /sys/class/tpm/tpm0/pcr-sha256/11 ]; then + + # Let's measure the machine ID + tpm2_pcrread sha256:15 -Q -o /tmp/oldpcr15 + mv /etc/machine-id /etc/machine-id.save + echo 994013bf23864ee7992eab39a96dd3bb >/etc/machine-id + SYSTEMD_FORCE_MEASURE=1 /usr/lib/systemd/systemd-pcrphase --machine-id + mv /etc/machine-id.save /etc/machine-id + tpm2_pcrread sha256:15 -Q -o /tmp/newpcr15 + + # And check it matches expectations + ( cat /tmp/oldpcr15 ; + echo -n "machine-id:994013bf23864ee7992eab39a96dd3bb" | openssl dgst -binary -sha256 ) | openssl dgst -binary -sha256 | cmp - /tmp/newpcr15 + + rm /tmp/oldpcr15 /tmp/newpcr15 + + # And similar for the boot phase measurement into PCR 11 + tpm2_pcrread sha256:11 -Q -o /tmp/oldpcr11 + SYSTEMD_FORCE_MEASURE=1 /usr/lib/systemd/systemd-pcrphase foobar + tpm2_pcrread sha256:11 -Q -o /tmp/newpcr11 + + ( cat /tmp/oldpcr11 ; + echo -n "foobar" | openssl dgst -binary -sha256 ) | openssl dgst -binary -sha256 | cmp - /tmp/newpcr11 + + rm /tmp/oldpcr11 /tmp/newpcr11 +else + echo "/usr/lib/systemd/systemd-pcrphase or PCR sysfs files not found, skipping PCR extension test case" +fi + echo OK >/testok exit 0 |