certifycreation.sh 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. # SPDX-License-Identifier: BSD-3-Clause
  2. source helpers.sh
  3. cleanup() {
  4. rm -f primary.ctx creation.data creation.digest creation.ticket rsa.pub \
  5. rsa.priv signature.bin attestation.bin sslpub.pem qual.dat sec_key.pub \
  6. sec_key.priv sec_key.ctx
  7. if [ "$1" != "no-shut-down" ]; then
  8. shut_down
  9. fi
  10. }
  11. trap cleanup EXIT
  12. start_up
  13. cleanup "no-shut-down"
  14. tpm2 clear -Q
  15. tpm2 createprimary -C o -c primary.ctx --creation-data creation.data \
  16. -d creation.digest -t creation.ticket -Q
  17. tpm2 create -G rsa -u rsa.pub -r rsa.priv -C primary.ctx -c signing_key.ctx -Q
  18. tpm2 readpublic -c signing_key.ctx -f pem -o sslpub.pem
  19. tpm2 certifycreation -C signing_key.ctx -c primary.ctx -d creation.digest \
  20. -t creation.ticket -g sha256 -o signature.bin --attestation attestation.bin \
  21. -f plain -s rsassa
  22. openssl dgst -verify sslpub.pem -keyform pem -sha256 -signature signature.bin \
  23. attestation.bin
  24. #
  25. # Test with qualifier data
  26. #
  27. dd if=/dev/urandom of=qual.dat bs=1 count=32
  28. tpm2 certifycreation -C signing_key.ctx -c primary.ctx -d creation.digest \
  29. -t creation.ticket -g sha256 -o signature.bin --attestation attestation.bin \
  30. -f plain -s rsassa -q qual.dat
  31. openssl dgst -verify sslpub.pem -keyform pem -sha256 -signature signature.bin \
  32. attestation.bin
  33. #
  34. # Test certification with non primary keys
  35. #
  36. tpm2 create -C primary.ctx -u sec_key.pub -r sec_key.priv -t creation.ticket \
  37. -d creation.digest --creation-data creation.data -Q
  38. tpm2 load -C primary.ctx -u sec_key.pub -r sec_key.priv -c sec_key.ctx -Q
  39. tpm2 certifycreation -C signing_key.ctx -c sec_key.ctx -d creation.digest \
  40. -t creation.ticket -g sha256 -o signature.bin --attestation attestation.bin \
  41. -f plain -s rsassa
  42. openssl dgst -verify sslpub.pem -keyform pem -sha256 -signature signature.bin \
  43. attestation.bin
  44. exit 0