PVEBC(1)
π PVEBC(1) π
okay bestie, welcome to the EBC Management Manual β this is the page for pvebc, and yes it's a mouthful, it's the Protected Virtualization Early Boot Customization Tool. say that five times fast, I dare you. π«Ά
β¨ NAME β¨
pvebc β Protected Virtualization Early Boot Customization Tool. she does early boot customization and she does it securely. periodt. π
πΈ SYNOPSIS πΈ
pvebc [OPTIONS] --toc <FILE>
π¦ DESCRIPTION π¦
So pvebc is the tool you use to process add-secret request files (that's toc.asr, keep up bestie) that define the root of early boot customization (EBC) resources for IBM Secure Execution for Linux (SEL) guests. Basically it validates the integrity and completeness of add-secret request (ASR) files using cryptographic verification, so nobody can tamper with them while they're flying across unsecured channels. it's giving trust issues, but make it cryptography. π
π the three files it vibes with
The tool operates on a structure consisting of three types of files:
toc.asr: the root add-secret request file that references the table of contents (TOC policy). main character energy tbh.toc.pol: the table of contents policy file that contains a list of AES-GCM authentication tags (MAC tags).- ASR files: individual add-secret request files to be added to the guest.
π how the integrity protection mechanism works (aka the chain of trust glow-up)
- Each add-secret request file includes an AES-GCM authentication tag (the last 16 bytes), which provides integrity protection for the file.
- The
toc.polfile lists the expected message authentication code (MAC) tags of all add-secret request files. - The
toc.asrfile contains a cryptographically protected reference totoc.pol, consisting of the relative file path and a SHA-512 hash of the policy file. - The AES-GCM authentication tag of
toc.asrprotects the integrity of this reference.
π what this structure stops attackers from doing
This structure prevents attackers from:
- Removing add-secret request files from the set
- Inserting unauthorized add-secret request files
- Modifying existing add-secret request files
- Altering the policy file
not them getting blocked on all four counts ππ«
π how pvebc validates the entire chain of trust
pvebc validates the entire chain of trust by:
- Verifying that the SHA-512 hash of
toc.polmatches the reference stored intoc.asr - Checking that all MAC tags listed in
toc.polcorrespond to existing add-secret request files - Ensuring that all add-secret request files are present and unmodified
π the two modes (choose your fighter)
The tool can run in one of two modes:
- Normal mode: validates add-secret requests and adds the defined secrets to the SEL guest (z/Architecture only).
- Dry-run mode: validates the request structure without adding secrets; super useful for verification on non-SEL systems.
π OPTIONS π
-t,--toc<FILE>β Specify the table-of-contents add-secret request filetoc.asr, which serves as the root of the EBC resources. This file must contain a reference totoc.polin its user data field, as generated bypvsecretwith the--policyoption. Thetoc.asrfile cryptographically links to the policy file by using a relative path and a SHA-512 hash, ensuring the integrity of the complete EBC structure. no pressure or anything. π--dry-runβ Validate the EBC structure without adding the add-secret requests to the ultravisor. Use this option to verify the integrity of the generated policy file and the links between add-secret request files and the policy. This mode can be run on non-SEL guests to validate the structure before deployment. When--dry-runis specified, the tool performs all cryptographic verifications but skips the actual addition of secrets to the ultravisor secret store. it's giving "look with your eyes, not your hands" π--versionβ Print version information and exit. short king behavior. π-h,--helpβ Print help information.
π FILES π
The pvebc tool operates on the following file types (heads up, actual names may differ):
toc.asrβ The root add-secret request file that contains a reference to the table-of-contenttoc.polin its user data field. This file is generated by usingpvsecret createwith the--policyoption.toc.polβ The policy file containing a newline-separated list of AES-GCM authentication tags (MAC tags) in hexadecimal format. Each entry corresponds to one add-secret request file. This file is generated by usingpvsecret createwith the--toc-policyoption.*.asrβ Individual add-secret request files that contain the actual secrets to be added to the SEL guest. Each add-secret request file includes an AES-GCM authentication tag (the last 16 bytes), which provides integrity protection.
β EXIT STATUS β
pvebc returns the following exit codes:
0β Success. All validations passed and secrets were added (if not in dry-run mode). we love a clean exit. π1β Failure. An error occurred during validation or secret addition. Error details are printed tostderr. not the vibe. π
π§ NOTES π§
- All file paths in a policy reference must be relative to the directory that contains the referencing file. no absolute-path shenanigans, bestie. π
- On z/Architecture systems, the tool requires access to the ultravisor device (
/dev/uv) to add secrets.
ok quick content warning: if you're on z/Architecture and you can't touch /dev/uv, the secret-adding part literally cannot happen. dry-run still vibes though. π
π«Ά SEE ALSO π«Ά
these are the besties. go read them next. iykyk. β¨
mwah, that's the whole page. shipped as part of s390-tools, dated 2026-03-24 β stay validated, stay unmodified, and never let anyone tamper with your chain of trust. π¦π
π¦ 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
- ubuntu stonking: s390-tools 2.44.0-0ubuntu1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms