evictcontrol.sh 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. # SPDX-License-Identifier: BSD-3-Clause
  2. source helpers.sh
  3. cleanup() {
  4. rm -f primary.ctx decrypt.ctx key.pub key.priv key.name decrypt.out \
  5. encrypt.out secret.dat key.dat evict.log primary.ctx key.ctx
  6. if [ "$1" != "no-shut-down" ]; then
  7. shut_down
  8. fi
  9. }
  10. trap cleanup EXIT
  11. start_up
  12. cleanup "no-shut-down"
  13. tpm2 clear -Q
  14. tpm2 createprimary -Q -C e -g sha256 -G rsa -c primary.ctx
  15. tpm2 create -Q -g sha256 -G aes -u key.pub -r key.priv -C primary.ctx
  16. tpm2 load -Q -C primary.ctx -u key.pub -r key.priv -n key.name -c key.dat
  17. # Load the context into a specific handle, delete it
  18. tpm2 evictcontrol -Q -c key.dat 0x81010003
  19. tpm2 evictcontrol -Q -c 0x81010003 0x81010003
  20. # Load the context into a specific handle, delete it without an explicit -p
  21. tpm2 evictcontrol -Q -C o -c key.dat 0x81010003
  22. tpm2 evictcontrol -Q -C o -c 0x81010003
  23. # Load the context into an available handle, delete it
  24. tpm2 evictcontrol -C o -c key.dat > evict.log
  25. phandle=$(yaml_get_kv evict.log "persistent-handle")
  26. tpm2 evictcontrol -Q -C o -c $phandle
  27. yaml_verify evict.log
  28. # verify that platform hierarchy auto selection for persistent handle works
  29. tpm2 createprimary -C p -c primary.ctx
  30. tpm2 create -C primary.ctx -c key.ctx
  31. tpm2 evictcontrol -C p -c key.ctx > evict.log
  32. phandle=$(yaml_get_kv evict.log persistent-handle)
  33. tpm2 evictcontrol -C p -c $phandle
  34. exit 0