abrmd_policyauthvalue.sh 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # SPDX-License-Identifier: BSD-3-Clause
  2. source helpers.sh
  3. policyauthvalue=policy.dat
  4. session_ctx=session.ctx
  5. o_policy_digest=policy.digest
  6. primary_key_ctx=prim.ctx
  7. key_ctx=key.ctx
  8. key_pub=key.pub
  9. key_priv=key.priv
  10. plain_txt=plain.txt
  11. signature_txt=signature.txt
  12. testpswd=testpswd
  13. cleanup() {
  14. rm -f $policyauthvalue $session_ctx $o_policy_digest $primary_key_ctx \
  15. $key_ctx $key_pub $key_priv $plain_txt $signature_txt
  16. tpm2 flushcontext $session_ctx 2>/dev/null || true
  17. if [ "${1}" != "no-shutdown" ]; then
  18. shut_down
  19. fi
  20. }
  21. trap cleanup EXIT
  22. start_up
  23. cleanup "no-shutdown"
  24. echo "plaintext" > $plain_txt
  25. tpm2 startauthsession -S $session_ctx
  26. tpm2 policyauthvalue -S $session_ctx -L $policyauthvalue
  27. tpm2 flushcontext $session_ctx
  28. rm $session_ctx
  29. tpm2 createprimary -C o -c $primary_key_ctx
  30. tpm2 create -g sha256 -G ecc -u $key_pub -r $key_priv -C $primary_key_ctx \
  31. -L $policyauthvalue -p $testpswd
  32. tpm2 load -C $primary_key_ctx -u $key_pub -r $key_priv -c $key_ctx
  33. tpm2 sign -c $key_ctx -p $testpswd -o $signature_txt $plain_txt
  34. tpm2 verifysignature -c key.ctx -m $plain_txt -s $signature_txt
  35. tpm2 startauthsession --policy-session -S $session_ctx
  36. tpm2 policyauthvalue -S $session_ctx -L $policyauthvalue
  37. tpm2 sign -c $key_ctx -p session:$session_ctx+$testpswd -o $signature_txt $plain_txt
  38. tpm2 verifysignature -c key.ctx -m $plain_txt -s $signature_txt
  39. tpm2 flushcontext $session_ctx
  40. rm $session_ctx
  41. exit 0