abrmd_nvundefinespecial.sh 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # SPDX-License-Identifier: BSD-3-Clause
  2. source helpers.sh
  3. cleanup() {
  4. tpm2 flushcontext session.ctx 2>/dev/null || true
  5. tpm2 startauthsession --policy-session -S session.ctx
  6. tpm2 policyauthvalue -S session.ctx
  7. tpm2 policycommandcode -S session.ctx TPM2_CC_NV_UndefineSpaceSpecial
  8. tpm2 nvundefine -S session.ctx 1 2>/dev/null || true
  9. tpm2 flushcontext session.ctx 2>/dev/null || true
  10. rm -f policy.dat session.ctx
  11. if [ "${1}" != "no-shutdown" ]; then
  12. shut_down
  13. fi
  14. }
  15. trap cleanup EXIT
  16. start_up
  17. cleanup "no-shutdown"
  18. tpm2 startauthsession -S session.ctx
  19. tpm2 policyauthvalue -S session.ctx
  20. tpm2 policycommandcode -S session.ctx TPM2_CC_NV_UndefineSpaceSpecial -L policy.dat
  21. tpm2 nvdefine -C p -s 32 -a "ppread|ppwrite|authread|authwrite|platformcreate|policydelete|write_stclear|read_stclear" -L policy.dat 1
  22. tpm2 flushcontext session.ctx
  23. tpm2 startauthsession --policy-session -S session.ctx
  24. tpm2 policyauthvalue -S session.ctx
  25. tpm2 policycommandcode -S session.ctx TPM2_CC_NV_UndefineSpaceSpecial
  26. tpm2 nvundefine -S session.ctx 1
  27. exit 0