Files
tpm2-linux/tpm-nv-read-password.sh

38 lines
729 B
Bash
Executable File

#!/usr/bin/env bash
#
# Read a password previously stored with tpm-nv-store-password.sh from a
# TPM 2.0 NV index.
# Requires: tpm2-tools, access to /dev/tpmrm0 (tss group or root).
set -euo pipefail
HANDLE="0x1500016"
usage() {
cat <<-EOF
Usage: $(basename "$0") [-H handle]
-H handle NV index the password was stored at (default: ${HANDLE})
EOF
}
while getopts "H:h" opt; do
case "$opt" in
H) HANDLE="$OPTARG" ;;
h) usage; exit 0 ;;
*) usage; exit 1 ;;
esac
done
command -v tpm2_nvread >/dev/null || {
echo "tpm2-tools is required (apt install tpm2-tools)" >&2
exit 1
}
if ! tpm2_nvreadpublic | grep -q "^${HANDLE}:"; then
echo "No NV index found at ${HANDLE}" >&2
exit 1
fi
tpm2_nvread -C o "$HANDLE"