PVATTEST-VERIFY(1)
π PVATTEST-VERIFY(1) β the attestation manual, bestie edition β¨
okay so this is a page from the Attestation Manual, and it's about pvattest-verify. buckle up π
πΈ NAME πΈ
pvattest-verify β verify an attestation response. that's it, that's the vibe. it checks whether a measurement you made earlier is actually what you think it is π
β¨ SYNOPSIS β¨
pvattest verify [OPTIONS] --input <FILE> --hdr <FILE> --arpk <FILE>
π¦ DESCRIPTION π¦
so the whole point: you verify that an attestation measurement of an IBM Secure Execution guest that was generated earlier is, like, actually as expected. that's the entire job. π
only verify attestation requests in a trusted environment β think your own workstation, not some sketchy shared box. this is not a drill, it's literally in the manual π«Ά
the input has to contain the response exactly as it was produced by pvattest perform. the protection key has to be the same one that was used to create the request via pvattest create β same key, no substitutions. and then: shred the protection key after the verification. like, actually shred it. ποΈβ¨
the header has to be the IBM Secure Execution header of the image that was attested during pvattest perform.
now the important part, the vibe check of this whole command: verify solely verifies that the Attestation measurement is correct. that's it. it does not check for the content of additional data or user data. if you want policy checks after you verified the Attestation measurement, go see pvattest check. iykyk π
π OPTIONS π
-i,--input <FILE>β tells it which attestation response to verify. the file in question, the main character.-o,--output <FILE>β where the verification result gets written. your output slot, your rules π--hdr <FILE>β the header of the guest image. can be an IBM Secure Execution image created bygenprotimg, or an extracted IBM Secure Execution header. heads up: the header must start at a page boundary. not optional, fr fr.-a,--arpk <FILE>β useFILEas the protection key to decrypt the request. π do not publish this key, otherwise your attestation is compromised β compromised!! and delete this key after verification. (shredding again. we love consistency.)--format <FORMAT>β defines the output format. default is'yaml'. possible values:yaml: use yaml format. that's the only one listed, and it ate π
-u,--user-data <FILE>β write the user data toFILEif there is any. so: if the response contains any user data, it gets written toFILE. the user-data is part of the attestation measurement, which means if it does get written toFILE, then that user-data was part of the measurement and was verified β . if the response contains no user-data, it emits a warning. (lowkey rude but okay π)-h,--helpβ print help. note the parenthetical: see a summary with-h. iconic.
π EXIT STATUS π
0 - Attestation Verifiedβ attestation measurement verified successfully. the measured guest is in Secure Execution mode. slay!! ππ1 - Program Errorβ something went wrong during the local calculation or the receiving of the measurement value. refer to the error message. not me crying π2 - Attestation NOT Verifiedβ the attestation measurement calculation does not match the received value. the measured guest is very likely not in Secure Execution mode. big yikes. π©
π EXAMPLES π
to verify a measurement in measurement.bin with the protection key arp.kep and SE-guest header se_guest.hdr β yes, the prose says measurement.bin and arp.kep while the command says attresp.bin and arp.key, that's just how the page reads, copy the command bestie π«Ά β you run:
$ pvattest verify --input attresp.bin --arpk arp.key --hdr se_guest.hdr
if the verification was successful, the program exits with zero β¨. if the verification failed, it exits with 2 and prints this to stderr:
ERROR: Attestation measurement verification failed:
Calculated and received attestation measurement are not the same.
π§ SEE ALSO π§
pvattest(1)β go read the main one, it's giving main character energy π
and that's the whole page!! brought to you by s390-tools, dated 2026-08-11 β go verify responsibly, shred your keys, and don't publish your arpk, ily πβ
π¦ where this page comes from
- centos-stream 10: s390utils 2:2.44.1-2.el10 Β· MIT AND LGPL-2.1-or-later
- centos-stream 9: s390utils 2:2.44.1-2.el9 Β· MIT
- opensuse-leap 16.0: s390-tools 2.44.1-160000.1.1 Β· MIT
- opensuse-leap 16.0: s390-tools 2.44.1-160000.1.1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms