PVATTEST(1)
β¨ pvattest(1) β the attestation manual, but make it make sense β¨
okay so this whole page lives in the Attestation Manual, and it's literally the main character of attestation tooling. Sit down, grab a strawberry π, and let's get into it.
π NAME π
pvattest β create, perform, and verify attestation measurements. that's the whole vibe, no cap.
π¦ SYNOPSIS π¦
pvattest [OPTIONS] <COMMAND>
πΈ DESCRIPTION πΈ
Create, perform, and verify attestation measurements for IBM Secure Execution guest systems. that's it, that's the mission π
π PVATTEST COMMANDS π
π§ pvattest-create(1)
Create an attestation measurement request.
Create attestation measurement requests to attest an IBM Secure Execution guest. Only build attestation requests in a trusted environment such as your Workstation. To avoid compromising the attestation do not publish the attestation request protection key and shred it after verification. Every create will generate a new, random protection key π₯
ngl bestie, that protection key is not for the group chat. Do not publish it, and shred it after verification fr fr.
π¦ pvattest-perform(1)
Send the attestation request to the Ultravisor (s390x only.)
Run a measurement of this system through /dev/uv. This device must be accessible and the attestation Ultravisor facility must be present. The input must be an attestation request created with pvattest create. Output will contain the original request and the response from the Ultravisor. Only available on s390x. π like, only s390x. no gatekeeping, just facts.
β pvattest-verify(1)
Verify an attestation response.
Verify that a previously generated attestation measurement of an IBM Secure Execution guest is as expected. Only verify attestation requests in a trusted environment, such as your workstation. Input must contain the response as produced by pvattest perform. The protection key must be the one that was used to create the request by pvattest create. Shred the protection key after the verification. The header must be the IBM Secure Execution header of the image that was attested during pvattest perform. The verify command solely verifies that the Attestation measurement is correct. It does not check for the content of additional data or user data. See pvattest check for policy checks after you verified the Attestation measurement. π«Ά
okay so lowkey important:verifyis a measurement girlie only β it does not look at the content of additional data or user data. that'spvattest check's job, periodt.
π pvattest-check(1)
Check if the attestation result matches defined policies.
After the attestation verification, check whether the attestation result complies with user-defined policies. the post-verify vibe check πβ¨
π OPTIONS π
-v,--verboseβ Provide more detailed output. give me all the lore π-q,--quietβ Provide less output. shhh, minimal energy π€«--versionβ Print version information and exit. identity check, then bye βοΈ-h,--helpβ Print help (see a summary with-h). like, the summary version π
π EXAMPLES π
For details refer to the man page of the command. π
Create the request on a trusted system.
trusted:~$ pvattest create -k hkd.crt --cert CA.crt --cert ibmsk.crt --arpk arp.key -o attreq.bin
On the SE-guest, perform the attestation.
seguest:~$ pvattest perform attreq.bin attresp.bin
On a trusted system, verify that the response is correct. Here, the protection key from the creation and the SE-guestβs header is used to verify the measurement.
trusted:~$ pvattest verify -i attresp.bin --arpk arp.key --hdr se_guest.hdr
trusted:~$ echo $?
0
If the measurements do not match pvattest exits with code 2 and emits an error message. The SE-guest attestation failed. π
trusted:~$ pvattest verify -i wrongresp.bin --arpk arp.key --hdr se_guest.hdr
ERROR: Attestation measurement verification failed:
Calculated and received attestation measurement are not the same.
trusted:~$ echo $?
2
that 2 is the "it's giving mismatch" exit code. if you see it, the verification did not slay. π
π SEE ALSO π
pvattest-create(1), pvattest-perform(1), pvattest-verify(1), pvattest-check(1)
aaaand that's the page bestie π this iconic little manual is brought to you by s390-tools, dated 2026-08-11, and honestly it ate. go verify something, and remember to shred that key πβ¨
π¦ 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