fapi-branch-select.sh 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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/mySignKey"
  12. POLICY_SIGN_KEY_PATH="HS/SRK/myPolicySignKey"
  13. PCR_POLICY_DATA=$TEMP_DIR/pol_pcr16_0.json
  14. AUTHORIZE_POLICY_DATA=$TEMP_DIR/pol_authorize_ref.json
  15. POLICY_PCR=policy/pcr-policy
  16. POLICY_PCR2=policy/pcr-policy2
  17. POLICY_AUTHORIZE=policy/authorize-policy
  18. SIGNATURE_FILE=$TEMP_DIR/signature.file
  19. PUBLIC_KEY_FILE=$TEMP_DIR/public_key.file
  20. DIGEST_FILE=$TEMP_DIR/digest.file
  21. echo -n 01234567890123456789012345678901 > $DIGEST_FILE
  22. POLICY_REF=$TEMP_DIR/policy_ref.file
  23. echo 'f0f1f2f3f4f5f6f7f8f9' | xxd -r -p > $POLICY_REF
  24. PADDINGS="RSA_PSS"
  25. tss2 provision
  26. tss2 import --path=$POLICY_PCR --importData=$PCR_POLICY_DATA
  27. tss2 import --path=$POLICY_PCR2 --importData=$PCR_POLICY_DATA
  28. tss2 import --path=$POLICY_AUTHORIZE --importData=$AUTHORIZE_POLICY_DATA
  29. tss2 createkey --path=$POLICY_SIGN_KEY_PATH --type="noDa, sign" --authValue=""
  30. tss2 authorizepolicy --keyPath=$POLICY_SIGN_KEY_PATH --policyPath=$POLICY_PCR \
  31. --policyRef=$POLICY_REF
  32. tss2 authorizepolicy --keyPath=$POLICY_SIGN_KEY_PATH --policyPath=$POLICY_PCR2 \
  33. --policyRef=$POLICY_REF
  34. tss2 createkey --path=$KEY_PATH --type="noDa, sign" \
  35. --policyPath=$POLICY_AUTHORIZE --authValue=""
  36. expect <<EOF
  37. # Check if system asks for branch selection
  38. spawn tss2 sign --keyPath=$KEY_PATH --padding=$PADDINGS --digest=$DIGEST_FILE \
  39. --signature=$SIGNATURE_FILE --publicKey=$PUBLIC_KEY_FILE
  40. expect {
  41. "Your choice: " {
  42. } eof {
  43. send_user "The system has not asked for branch selection\n"
  44. exit 1
  45. }
  46. }
  47. send "1\r"
  48. set ret [wait]
  49. if {[lindex \$ret 2]} {
  50. send_user "Command failed\n"
  51. exit 1
  52. }
  53. EOF
  54. expect <<EOF
  55. # Selecting wrong branch
  56. spawn tss2 sign --keyPath=$KEY_PATH --padding=$PADDINGS --digest=$DIGEST_FILE \
  57. --signature=$SIGNATURE_FILE --publicKey=$PUBLIC_KEY_FILE
  58. expect {
  59. "Your choice: " {
  60. } eof {
  61. send_user "The system has not asked for branch selection\n"
  62. exit 1
  63. }
  64. }
  65. send "4\r"
  66. expect {
  67. "The entered integer must be positive and less than 3." {
  68. } eof {
  69. send_user "The system has not responded as expected\n"
  70. exit 1
  71. }
  72. }
  73. EOF
  74. exit 0