#!/bin/bash
# Measure all of the luks disk encryption headers into
# a PCR so that we can detect disk swap attacks.
. /etc/functions

TRACE "Under /bin/qubes-measure-luks"

die() { echo >&2 "$@"; exit 1; }

# Measure the luks headers into PCR 6
for dev in "$@"; do
	cryptsetup luksHeaderBackup $dev \
		   --header-backup-file /tmp/lukshdr-$(echo "$dev" | sed 's/\//_/g') \
		|| die "$dev: Unable to read luks header"
done

sha256sum /tmp/lukshdr-* > /tmp/luksDump.txt || die "Unable to hash luks headers"
rm /tmp/lukshdr-*

tpmr extend -ix 6 -if /tmp/luksDump.txt \
|| die "Unable to extend PCR"