readpublic.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # SPDX-License-Identifier: BSD-3-Clause
  2. source helpers.sh
  3. alg_primary_obj=sha256
  4. alg_primary_key=rsa
  5. alg_create_obj=sha256
  6. alg_create_key=hmac
  7. file_primary_key_ctx=context.p_"$alg_primary_obj"_"$alg_primary_key"
  8. file_readpub_key_pub=opu_"$alg_create_obj"_"$alg_create_key"
  9. file_readpub_key_priv=opr_"$alg_create_obj"_"$alg_create_key"
  10. file_readpub_key_name=name.load_"$alg_primary_obj"_"$alg_primary_key"-\
  11. "$alg_create_obj"_"$alg_create_key"
  12. file_readpub_key_ctx=ctx_load_out_"$alg_primary_obj"_"$alg_primary_key"-\
  13. "$alg_create_obj"_"$alg_create_key"
  14. file_readpub_output=readpub_"$file_readpub_key_ctx"
  15. Handle_readpub=0x81010014
  16. cleanup() {
  17. rm -f $file_primary_key_ctx $file_readpub_key_pub $file_readpub_key_priv \
  18. $file_readpub_key_name $file_readpub_key_ctx $file_readpub_output
  19. tpm2 evictcontrol -Q -C o -c $Handle_readpub 2>/dev/null || true
  20. if [ "$1" != "no-shut-down" ]; then
  21. shut_down
  22. fi
  23. }
  24. trap cleanup EXIT
  25. start_up
  26. cleanup "no-shut-down"
  27. tpm2 clear
  28. tpm2 createprimary -Q -C e -g $alg_primary_obj -G $alg_primary_key \
  29. -c $file_primary_key_ctx
  30. tpm2 create -Q -g $alg_create_obj -G $alg_create_key -u $file_readpub_key_pub \
  31. -r $file_readpub_key_priv -C $file_primary_key_ctx
  32. tpm2 load -Q -C $file_primary_key_ctx -u $file_readpub_key_pub \
  33. -r $file_readpub_key_priv -n $file_readpub_key_name -c $file_readpub_key_ctx
  34. tpm2 readpublic -Q -c $file_readpub_key_ctx -o $file_readpub_output
  35. tpm2 evictcontrol -Q -C o -c $file_readpub_key_ctx $Handle_readpub
  36. rm -f $file_readpub_output
  37. tpm2 readpublic -Q -c $Handle_readpub -o $file_readpub_output
  38. exit 0