fapi-quote-verify_ecc.sh 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545
  1. set -e
  2. source helpers.sh
  3. start_up
  4. CRYPTO_PROFILE="ECC"
  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/quotekey
  12. NONCE_FILE=$TEMP_DIR/nonce.file
  13. PUBLIC_QUOTE_KEY=$TEMP_DIR/public_quote.key
  14. QUOTE_INFO=$TEMP_DIR/quote.info
  15. SIGNATURE_FILE=$TEMP_DIR/signature.file
  16. CERTIFICATE_FILE=$TEMP_DIR/certificate.file
  17. PCR_LOG=$TEMP_DIR/pcr.log
  18. printf "01234567890123456789" > $NONCE_FILE
  19. printf "01234567890123456789" > $PCR_LOG
  20. EMPTY_FILE=$TEMP_DIR/empty.file
  21. BIG_FILE=$TEMP_DIR/big_file.file
  22. LOG_FILE=$TEMP_DIR/log.file
  23. touch $LOG_FILE
  24. tss2 provision
  25. tss2 createkey --path=$KEY_PATH --type="noDa, restricted, sign" --authValue=""
  26. tss2 quote --keyPath=$KEY_PATH --pcrList="11, 12, 13, 14, 15, 16" --qualifyingData=$NONCE_FILE \
  27. --signature=$SIGNATURE_FILE --pcrLog=$PCR_LOG \
  28. --certificate=$CERTIFICATE_FILE --quoteInfo=$QUOTE_INFO --force
  29. echo "tss2 quote with EMPTY_FILE" # Expected to succeed
  30. tss2 quote --keyPath=$KEY_PATH --pcrList="11, 12, 13, 14, 15, 16" \
  31. --qualifyingData=$EMPTY_FILE --signature=$SIGNATURE_FILE --pcrLog=$PCR_LOG \
  32. --certificate=$CERTIFICATE_FILE --quoteInfo=$QUOTE_INFO --force
  33. echo "tss2 quote with BIG_FILE" # Expected to fail
  34. expect <<EOF
  35. spawn sh -c "tss2 quote --keyPath=$KEY_PATH --pcrList=\"11, 12, 13, 14, 15, 16\" \
  36. --qualifyingData=$BIG_FILE --signature=$SIGNATURE_FILE --pcrLog=$PCR_LOG \
  37. --certificate=$CERTIFICATE_FILE --quoteInfo=$QUOTE_INFO --force 2> $LOG_FILE"
  38. set ret [wait]
  39. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  40. set file [open $LOG_FILE r]
  41. set log [read \$file]
  42. close $file
  43. send_user "[lindex \$log]\n"
  44. exit 1
  45. }
  46. EOF
  47. if [[ "`cat $LOG_FILE`" == $SANITIZER_FILTER ]]; then
  48. echo "Error: AddressSanitizer triggered."
  49. cat $LOG_FILE
  50. exit 1
  51. fi
  52. tss2 exportkey --pathOfKeyToDuplicate=$KEY_PATH --exportedData=$PUBLIC_QUOTE_KEY --force
  53. tss2 import --path="ext/myNewParent" --importData=$PUBLIC_QUOTE_KEY
  54. tss2 verifyquote --publicKeyPath="ext/myNewParent" \
  55. --qualifyingData=$NONCE_FILE --quoteInfo=$QUOTE_INFO \
  56. --signature=$SIGNATURE_FILE --pcrLog=$PCR_LOG
  57. echo "tss2 verifyquote with EMPTY_FILE qualifyingData" # Expected to succeed
  58. tss2 verifyquote --publicKeyPath="ext/myNewParent" \
  59. --qualifyingData=$EMPTY_FILE --quoteInfo=$QUOTE_INFO \
  60. --signature=$SIGNATURE_FILE --pcrLog=$PCR_LOG
  61. echo "tss2 verifyquote with BIG_FILE qualifyingData" # Expected to fail
  62. expect <<EOF
  63. spawn sh -c "tss2 verifyquote --publicKeyPath=\"ext/myNewParent\" \
  64. --qualifyingData=$BIG_FILE --quoteInfo=$QUOTE_INFO \
  65. --signature=$SIGNATURE_FILE --pcrLog=$PCR_LOG 2> $LOG_FILE"
  66. set ret [wait]
  67. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  68. set file [open $LOG_FILE r]
  69. set log [read \$file]
  70. close $file
  71. send_user "[lindex \$log]\n"
  72. exit 1
  73. }
  74. EOF
  75. if [[ "`cat $LOG_FILE`" == $SANITIZER_FILTER ]]; then
  76. echo "Error: AddressSanitizer triggered."
  77. cat $LOG_FILE
  78. exit 1
  79. fi
  80. echo "tss2 verifyquote with EMPTY_FILE signature" # Expected to fail
  81. expect <<EOF
  82. spawn sh -c "tss2 verifyquote --publicKeyPath=\"ext/myNewParent\" \
  83. --qualifyingData=$NONCE_FILE --quoteInfo=$QUOTE_INFO \
  84. --signature=$EMPTY_FILE --pcrLog=$PCR_LOG 2> $LOG_FILE"
  85. set ret [wait]
  86. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  87. set file [open $LOG_FILE r]
  88. set log [read \$file]
  89. close $file
  90. send_user "[lindex \$log]\n"
  91. exit 1
  92. }
  93. EOF
  94. if [[ "`cat $LOG_FILE`" == $SANITIZER_FILTER ]]; then
  95. echo "Error: AddressSanitizer triggered."
  96. cat $LOG_FILE
  97. exit 1
  98. fi
  99. echo "tss2 verifyquote with BIG_FILE signature" # Expected to fail
  100. expect <<EOF
  101. spawn sh -c "tss2 verifyquote --publicKeyPath=\"ext/myNewParent\" \
  102. --qualifyingData=$NONCE_FILE --quoteInfo=$QUOTE_INFO \
  103. --signature=$BIG_FILE --pcrLog=$PCR_LOG 2> $LOG_FILE"
  104. set ret [wait]
  105. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  106. set file [open $LOG_FILE r]
  107. set log [read \$file]
  108. close $file
  109. send_user "[lindex \$log]\n"
  110. exit 1
  111. }
  112. EOF
  113. if [[ "`cat $LOG_FILE`" == $SANITIZER_FILTER ]]; then
  114. echo "Error: AddressSanitizer triggered."
  115. cat $LOG_FILE
  116. exit 1
  117. fi
  118. echo "tss2 verifyquote with EMPTY_FILE quoteInfo" # Expected to fail
  119. expect <<EOF
  120. spawn sh -c "tss2 verifyquote --publicKeyPath=\"ext/myNewParent\" \
  121. --qualifyingData=$NONCE_FILE --quoteInfo=$EMPTY_FILE \
  122. --signature=$SIGNATURE_FILE --pcrLog=$PCR_LOG 2> $LOG_FILE"
  123. set ret [wait]
  124. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  125. set file [open $LOG_FILE r]
  126. set log [read \$file]
  127. close $file
  128. send_user "[lindex \$log]\n"
  129. exit 1
  130. }
  131. EOF
  132. if [[ "`cat $LOG_FILE`" == $SANITIZER_FILTER ]]; then
  133. echo "Error: AddressSanitizer triggered."
  134. cat $LOG_FILE
  135. exit 1
  136. fi
  137. echo "tss2 verifyquote with BIG_FILE quoteInfo" # Expected to fail
  138. expect <<EOF
  139. spawn sh -c "tss2 verifyquote --publicKeyPath=\"ext/myNewParent\" \
  140. --qualifyingData=$NONCE_FILE --quoteInfo=$BIG_FILE \
  141. --signature=$SIGNATURE_FILE --pcrLog=$PCR_LOG 2> $LOG_FILE"
  142. set ret [wait]
  143. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  144. set file [open $LOG_FILE r]
  145. set log [read \$file]
  146. close $file
  147. send_user "[lindex \$log]\n"
  148. exit 1
  149. }
  150. EOF
  151. if [[ "`cat $LOG_FILE`" == $SANITIZER_FILTER ]]; then
  152. echo "Error: AddressSanitizer triggered."
  153. cat $LOG_FILE
  154. exit 1
  155. fi
  156. echo "tss2 verifyquote with EMPTY_FILE pcrLog" # Expected to fail
  157. expect <<EOF
  158. spawn sh -c "tss2 verifyquote --publicKeyPath=\"ext/myNewParent\" \
  159. --qualifyingData=$NONCE_FILE --quoteInfo=$QUOTE_INFO \
  160. --signature=$SIGNATURE_FILE --pcrLog=$EMPTY_FILE 2> $LOG_FILE"
  161. set ret [wait]
  162. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  163. set file [open $LOG_FILE r]
  164. set log [read \$file]
  165. close $file
  166. send_user "[lindex \$log]\n"
  167. exit 1
  168. }
  169. EOF
  170. if [[ "`cat $LOG_FILE`" == $SANITIZER_FILTER ]]; then
  171. echo "Error: AddressSanitizer triggered."
  172. cat $LOG_FILE
  173. exit 1
  174. fi
  175. echo "tss2 verifyquote with BIG_FILE pcrLog" # Expected to fail
  176. expect <<EOF
  177. spawn sh -c "tss2 verifyquote --publicKeyPath=\"ext/myNewParent\" \
  178. --qualifyingData=$NONCE_FILE --quoteInfo=$QUOTE_INFO \
  179. --signature=$SIGNATURE_FILE --pcrLog=$BIG_FILE 2> $LOG_FILE"
  180. set ret [wait]
  181. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  182. set file [open $LOG_FILE r]
  183. set log [read \$file]
  184. close $file
  185. send_user "[lindex \$log]\n"
  186. exit 1
  187. }
  188. EOF
  189. if [[ "`cat $LOG_FILE`" == $SANITIZER_FILTER ]]; then
  190. echo "Error: AddressSanitizer triggered."
  191. cat $LOG_FILE
  192. exit 1
  193. fi
  194. expect <<EOF
  195. # Try with missing keyPath
  196. spawn tss2 quote --pcrList="16" \
  197. --qualifyingData=$NONCE_FILE --signature=$SIGNATURE_FILE \
  198. --pcrLog=$PCR_LOG --certificate=$CERTIFICATE_FILE \
  199. --quoteInfo=$QUOTE_INFO --force
  200. set ret [wait]
  201. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  202. Command has not failed as expected\n"
  203. exit 1
  204. }
  205. EOF
  206. expect <<EOF
  207. # Try with missing pcrList
  208. spawn tss2 quote \
  209. --qualifyingData=$NONCE_FILE --signature=$SIGNATURE_FILE \
  210. --pcrLog=$PCR_LOG --certificate=$CERTIFICATE_FILE \
  211. --quoteInfo=$QUOTE_INFO --force
  212. set ret [wait]
  213. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  214. Command has not failed as expected\n"
  215. exit 1
  216. }
  217. EOF
  218. expect <<EOF
  219. # Try with missing signature
  220. spawn tss2 quote --keyPath=$KEY_PATH --pcrList="16" \
  221. --qualifyingData=$NONCE_FILE \
  222. --pcrLog=$PCR_LOG --certificate=$CERTIFICATE_FILE \
  223. --quoteInfo=$QUOTE_INFO --force
  224. set ret [wait]
  225. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  226. Command has not failed as expected\n"
  227. exit 1
  228. }
  229. EOF
  230. expect <<EOF
  231. # Try with missing quoteInfo
  232. spawn tss2 quote --keyPath=$KEY_PATH --pcrList="16" \
  233. --qualifyingData=$NONCE_FILE --signature=$SIGNATURE_FILE \
  234. --pcrLog=$PCR_LOG --certificate=$CERTIFICATE_FILE \
  235. --force
  236. set ret [wait]
  237. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  238. Command has not failed as expected\n"
  239. exit 1
  240. }
  241. EOF
  242. expect <<EOF
  243. # Try with multiple stdout (1)
  244. spawn tss2 quote --keyPath=$KEY_PATH --pcrList="16" \
  245. --qualifyingData=$NONCE_FILE --signature=- \
  246. --pcrLog=- --certificate=$CERTIFICATE_FILE \
  247. --quoteInfo=$QUOTE_INFO --force
  248. set ret [wait]
  249. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  250. Command has not failed as expected\n"
  251. exit 1
  252. }
  253. EOF
  254. expect <<EOF
  255. # Try with multiple stdout (2)
  256. spawn tss2 quote --keyPath=$KEY_PATH --pcrList="16" \
  257. --qualifyingData=$NONCE_FILE --signature=$SIGNATURE_FILE \
  258. --pcrLog=- --certificate=- \
  259. --quoteInfo=$QUOTE_INFO --force
  260. set ret [wait]
  261. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  262. Command has not failed as expected\n"
  263. exit 1
  264. }
  265. EOF
  266. expect <<EOF
  267. # Try with multiple stdout (3)
  268. spawn tss2 quote --keyPath=$KEY_PATH --pcrList="16" \
  269. --qualifyingData=$NONCE_FILE --signature=$SIGNATURE_FILE \
  270. --pcrLog=$PCR_LOG --certificate=- \
  271. --quoteInfo=- --force
  272. set ret [wait]
  273. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  274. Command has not failed as expected\n"
  275. exit 1
  276. }
  277. EOF
  278. expect <<EOF
  279. # Try with multiple stdout (4)
  280. spawn tss2 quote --keyPath=$KEY_PATH --pcrList "16" \
  281. --qualifyingData=- --signature $SIGNATURE_FILE \
  282. --pcrLog=- --certificate=$CERTIFICATE_FILE \
  283. --quoteInfo=- --force
  284. set ret [wait]
  285. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  286. Command has not failed as expected\n"
  287. exit 1
  288. }
  289. EOF
  290. expect <<EOF
  291. # Try with wrong pcrs
  292. spawn tss2 quote --keyPath=$KEY_PATH --pcrList=abc --qualifyingData=$NONCE_FILE \
  293. --signature=$SIGNATURE_FILE --pcrLog=$PCR_LOG \
  294. --certificate=$CERTIFICATE_FILE --quoteInfo=$QUOTE_INFO --force
  295. set ret [wait]
  296. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  297. Command has not failed as expected\n"
  298. exit 1
  299. }
  300. EOF
  301. expect <<EOF
  302. # Fail quote
  303. spawn tss2 quote --keyPath="/abc/def" --pcrList="16" --qualifyingData=$NONCE_FILE \
  304. --signature=$SIGNATURE_FILE --pcrLog=$PCR_LOG \
  305. --certificate=$CERTIFICATE_FILE --quoteInfo=$QUOTE_INFO --force
  306. set ret [wait]
  307. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  308. Command has not failed as expected\n"
  309. exit 1
  310. }
  311. EOF
  312. expect <<EOF
  313. # Try with already existing directory
  314. spawn tss2 quote --keyPath=$KEY_PATH --pcrList="16" --qualifyingData=$NONCE_FILE \
  315. --signature=$SIGNATURE_FILE --pcrLog=$PCR_LOG \
  316. --certificate=$CERTIFICATE_FILE --quoteInfo=$QUOTE_INFO
  317. set ret [wait]
  318. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  319. Command has not failed as expected\n"
  320. exit 1
  321. }
  322. EOF
  323. # Try with missing qualifyingData
  324. tss2 quote --keyPath=$KEY_PATH --pcrList="16" \
  325. --signature=$SIGNATURE_FILE \
  326. --pcrLog=$PCR_LOG --certificate=$CERTIFICATE_FILE \
  327. --quoteInfo=$QUOTE_INFO --force
  328. # Try with missing pcrLog
  329. tss2 quote --keyPath=$KEY_PATH --pcrList="16" \
  330. --qualifyingData=$NONCE_FILE --signature=$SIGNATURE_FILE \
  331. --certificate=$CERTIFICATE_FILE \
  332. --quoteInfo=$QUOTE_INFO --force
  333. # Try with missing certificate
  334. tss2 quote --keyPath=$KEY_PATH --pcrList="16" \
  335. --qualifyingData=$NONCE_FILE --signature=$SIGNATURE_FILE \
  336. --pcrLog=$PCR_LOG \
  337. --quoteInfo=$QUOTE_INFO --force
  338. expect <<EOF
  339. # Try with missing publicKeyPath
  340. spawn tss2 verifyquote \
  341. --qualifyingData=$NONCE_FILE --quoteInfo=$QUOTE_INFO \
  342. --signature=$SIGNATURE_FILE
  343. set ret [wait]
  344. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  345. Command has not failed as expected\n"
  346. exit 1
  347. }
  348. EOF
  349. expect <<EOF
  350. # Try with missing quoteInfo
  351. spawn tss2 verifyquote --publicKeyPath="ext/myNewParent" \
  352. --qualifyingData=$NONCE_FILE \
  353. --signature=$SIGNATURE_FILE
  354. set ret [wait]
  355. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  356. Command has not failed as expected\n"
  357. exit 1
  358. }
  359. EOF
  360. expect <<EOF
  361. # Try with missing signature
  362. spawn tss2 verifyquote --publicKeyPath="ext/myNewParent" \
  363. --qualifyingData=$NONCE_FILE --quoteInfo=$QUOTE_INFO
  364. set ret [wait]
  365. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  366. Command has not failed as expected\n"
  367. exit 1
  368. }
  369. EOF
  370. expect <<EOF
  371. # Try with multiple stdins (1)
  372. spawn tss2 verifyquote --publicKeyPath="ext/myNewParent" \
  373. --qualifyingData=- --quoteInfo=- \
  374. --signature=$SIGNATURE_FILE --pcrLog=$PCR_LOG
  375. set ret [wait]
  376. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  377. Command has not failed as expected\n"
  378. exit 1
  379. }
  380. EOF
  381. expect <<EOF
  382. # Try with multiple stdins (2)
  383. spawn tss2 verifyquote --publicKeyPath="ext/myNewParent" \
  384. --qualifyingData=$NONCE_FILE --quoteInfo=- \
  385. --signature=- --pcrLog=$PCR_LOG
  386. set ret [wait]
  387. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  388. Command has not failed as expected\n"
  389. exit 1
  390. }
  391. EOF
  392. expect <<EOF
  393. # Try with multiple stdins (3)
  394. spawn tss2 verifyquote --publicKeyPath="ext/myNewParent" \
  395. --qualifyingData=$NONCE_FILE --quoteInfo=$QUOTE_INFO \
  396. --signature=- --pcrLog=-
  397. set ret [wait]
  398. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  399. Command has not failed as expected\n"
  400. exit 1
  401. }
  402. EOF
  403. expect <<EOF
  404. # Try with multiple stdins (4)
  405. spawn tss2 verifyquote --publicKeyPath="ext/myNewParent" \
  406. --qualifyingData=- --quoteInfo=$QUOTE_INFO \
  407. --signature=$SIGNATURE_FILE --pcrLog=-
  408. set ret [wait]
  409. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  410. Command has not failed as expected\n"
  411. exit 1
  412. }
  413. EOF
  414. expect <<EOF
  415. # Try with multiple stdins (5)
  416. spawn tss2 verifyquote --publicKeyPath="ext/myNewParent" \
  417. --qualifyingData=$NONCE_FILE --quoteInfo=- \
  418. --signature=- --pcrLog=$PCR_LOG
  419. set ret [wait]
  420. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  421. Command has not failed as expected\n"
  422. exit 1
  423. }
  424. EOF
  425. expect <<EOF
  426. # Try with multiple stdins (6)
  427. spawn tss2 verifyquote --publicKeyPath="ext/myNewParent" \
  428. --qualifyingData=- --quoteInfo=- \
  429. --signature=- --pcrLog=-
  430. set ret [wait]
  431. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  432. Command has not failed as expected\n"
  433. exit 1
  434. }
  435. EOF
  436. expect <<EOF
  437. # Try with wrong qualifyingData file
  438. spawn tss2 verifyquote --publicKeyPath="ext/myNewParent" \
  439. --qualifyingData=abc --quoteInfo=$QUOTE_INFO \
  440. --signature=$SIGNATURE_FILE --pcrLog=$PCR_LOG
  441. set ret [wait]
  442. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  443. Command has not failed as expected\n"
  444. exit 1
  445. }
  446. EOF
  447. expect <<EOF
  448. # Try with wrong signature file
  449. spawn tss2 verifyquote --publicKeyPath="ext/myNewParent" \
  450. --qualifyingData=$NONCE_FILE --quoteInfo=$QUOTE_INFO \
  451. --signature=abc --pcrLog=$PCR_LOG
  452. set ret [wait]
  453. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  454. Command has not failed as expected\n"
  455. exit 1
  456. }
  457. EOF
  458. expect <<EOF
  459. # Try with wrong quoteInfo file
  460. spawn tss2 verifyquote --publicKeyPath="ext/myNewParent" \
  461. --qualifyingData=$NONCE_FILE --quoteInfo=abc \
  462. --signature=$SIGNATURE_FILE --pcrLog=$PCR_LOG
  463. set ret [wait]
  464. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  465. Command has not failed as expected\n"
  466. exit 1
  467. }
  468. EOF
  469. expect <<EOF
  470. # Try failing tss2 verifyquote
  471. spawn tss2 verifyquote --publicKeyPath="ext/abc" \
  472. --qualifyingData=$NONCE_FILE --quoteInfo=abc \
  473. --signature=$SIGNATURE_FILE --pcrLog=$PCR_LOG
  474. set ret [wait]
  475. if {[lindex \$ret 2] || [lindex \$ret 3] != 1} {
  476. Command has not failed as expected\n"
  477. exit 1
  478. }
  479. EOF
  480. # Try with missing qualifyingData
  481. tss2 verifyquote --publicKeyPath="ext/myNewParent" \
  482. --quoteInfo=$QUOTE_INFO \
  483. --signature=$SIGNATURE_FILE
  484. exit 0