fapi-set-get-certificate.sh 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. set -e
  2. source helpers.sh
  3. start_up
  4. CRYPTO_PROFILE="RSA"
  5. setup_fapi $CRYPTO_PROFILE
  6. function cleanup {
  7. tss2 delete --path=/
  8. shut_down
  9. }
  10. trap cleanup EXIT
  11. KEY_PATH=HS/SRK/myRSACrypt
  12. READ_CERTIFICATE_FILE=$TEMP_DIR/read_certificate.file
  13. WRITE_CERTIFICATE_FILE=$TEMP_DIR/write_certificate.file
  14. cat > $WRITE_CERTIFICATE_FILE <<EOF
  15. "-----BEGIN CERTIFICATE-----\n\
  16. MIIDBjCCAe4CCQDcvXBOEVM0UTANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJE\n\
  17. RTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0\n\
  18. cyBQdHkgTHRkMB4XDTE5MDIyODEwNDkyM1oXDTM1MDgyNzEwNDkyM1owRTELMAkG\n\
  19. A1UEBhMCREUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0\n\
  20. IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\n\
  21. AKBi+iKwkgM55iCMwXrLCJlu7TzlMu/LlkyGrm99ip2B5+/Cl6a62d8pKelg6zkH\n\
  22. jI7+AAPteJiW4O+2qVWF8hJ5BXTjGtYbM0iZ6enCb8eyC54C7xVMc21ZIv3ob4Et\n\
  23. 50ZOuzY2pfpzE3vIaXt1CkHlfyI/hdK+mM/dVvuCz5p3AIlHrEWS3rSNgWbCsB2E\n\
  24. TM55qSGKaLmtTbUvEKRF0TJrFLntfXkv10QD5pgn52+QV9k59OogqZOsDvkXzKPX\n\
  25. rXF+XC0gLiGBEGAr1dv9F03xMOtO77bQTdGOeC61Tip6Nb0V3ebMckZXwdFi+Nhe\n\
  26. FRuU33CaObtV6u5PZvSue/MCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAcamUPe8I\n\
  27. nMOHcv9x5lVN1joihVRmKc0QqNLFc6XpJY8+U5rGkZvOcDe9Da8L97wDNXpKmU/q\n\
  28. pprj3rT8l3v0Z5xs8Vdr8lxS6T5NhqQV0UCsn1x14gZJcE48y9/LazYi6Zcar+BX\n\
  29. Am4vewAV3HmQ8X2EctsRhXe4wlAq4slIfEWaaofa8ai7BzO9KwpMLsGPWoNetkB9\n\
  30. 19+SFt0lFFOj/6vDw5pCpSd1nQlo1ug69mJYSX/wcGkV4t4LfGhV8jRPDsGs6I5n\n\
  31. ETHSN5KV1XCPYJmRCjFY7sIt1x4zN7JJRO9DVw+YheIlduVfkBiF+GlQgLlFTjrJ\n\
  32. VrpSGMIFSu301A==\n\
  33. -----END CERTIFICATE-----\n"
  34. EOF
  35. EMPTY_FILE=$TEMP_DIR/empty.file
  36. BIG_FILE=$TEMP_DIR/big_file.file
  37. tss2 provision
  38. tss2 createkey --path=$KEY_PATH --type="noDa, restricted, decrypt" \
  39. --authValue=""
  40. echo "tss2 setcertificate with EMPTY_FILE" # Expected to succeed
  41. tss2 setcertificate --path=$KEY_PATH --x509certData=$EMPTY_FILE
  42. echo "tss2 setcertificate with BIG_FILE" # Expected to succeed
  43. tss2 setcertificate --path=$KEY_PATH --x509certData=$BIG_FILE
  44. tss2 setcertificate --path=$KEY_PATH --x509certData=$WRITE_CERTIFICATE_FILE
  45. tss2 getcertificate --path=$KEY_PATH --x509certData=$READ_CERTIFICATE_FILE \
  46. --force
  47. if [[ "$(< $READ_CERTIFICATE_FILE)" != "$(< $WRITE_CERTIFICATE_FILE)" ]]; then
  48. echo "Certificates not equal"
  49. exit 1
  50. fi
  51. expect <<EOF
  52. # Try with missing path
  53. spawn tss2 setcertificate --x509certData=$WRITE_CERTIFICATE_FILE
  54. set ret [wait]
  55. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  56. Command has not failed as expected\n"
  57. exit 1
  58. }
  59. EOF
  60. # Try with missing cert, should set cert to empty
  61. tss2 setcertificate --path=$KEY_PATH
  62. tss2 getcertificate --path=$KEY_PATH --x509certData=$READ_CERTIFICATE_FILE \
  63. --force
  64. if [[ "$(< $READ_CERTIFICATE_FILE)" != "" ]]; then
  65. echo "Certificate was not deleted"
  66. exit 1
  67. fi
  68. expect <<EOF
  69. # Try with missing path
  70. spawn tss2 getcertificate --x509certData=$READ_CERTIFICATE_FILE --force
  71. set ret [wait]
  72. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  73. Command has not failed as expected\n"
  74. exit 1
  75. }
  76. EOF
  77. expect <<EOF
  78. # Try with missing x509certData
  79. spawn tss2 getcertificate --path=$KEY_PATH --force
  80. set ret [wait]
  81. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  82. Command has not failed as expected\n"
  83. exit 1
  84. }
  85. EOF
  86. exit 0