#!/bin/sh # Retrieve the sealed file from the NVRAM, unseal it and compute the totp . /etc/functions TOTP_SEALED="/tmp/secret/totp.sealed" TOTP_SECRET="/tmp/secret/totp.key" tpm nv_readvalue \ -in 4d47 \ -sz 312 \ -of "$TOTP_SEALED" \ || die "Unable to retrieve sealed file from TPM NV" tpm unsealfile \ -hk 40000000 \ -if "$TOTP_SEALED" \ -of "$TOTP_SECRET" \ || die "Unable to unseal totp secret" rm -f "$TOTP_SEALED" if ! totp -q < "$TOTP_SECRET"; then rm -f "$TOTP_SECRET" die 'Unable to compute TOTP hash?' fi rm -f "$TOTP_SECRET" exit 0