table of contents
- Tumbleweed 2.44.1-1.1
- Leap-16.0
- Leap-15.6
| PVSECRET-CREATE(1) | UV-Secret Manual | PVSECRET-CREATE(1) |
NAME¶
pvsecret-create - Create a new add-secret request
SYNOPSIS¶
pvsecret create [OPTIONS] --host-key-document <FILE> --hdr <FILE> --output <FILE> <--no-verify|--cert <FILE>> <COMMAND>
DESCRIPTION¶
Create add-secret requests for IBM Secure Execution guests. Only create these requests in a trusted environment, such as your workstation. The pvattest create command creates a randomly generated key to protect the request. The generated requests can then be added on an IBM Secure Execution guest using pvsecret add. The guest can then use the secrets with the use case depending on the secret type. Such a request is bound to a specific IBM Secure Execution image specified with --hdr. Optionally, the request can be bound to a specific instance when bound to the Configuration Unique ID from pvattest using --cuid
PVSECRET CREATE COMMANDS¶
Use a meta secret to carry flags to the ultravisor without having to provide an actual secret value. Meta secrets do not appear in the list of secrets.
pvsecret-create-association(1)
Use an association secret to connect a trusted I/O device to a guest. The pvapconfig tool provides more information about association secrets.
pvsecret-create-retrievable(1)
A retrievable secret is stored in the per-guest storage of the Ultravisor. A SE-guest can retrieve the secret at runtime and use it. All retrievable secrets, but the plaintext secret, are retrieved as wrapped/protected key objects and only usable inside the current, running SE-guest instance.
Insert a customer communication key into a guest.
OPTIONS¶
-k, --host-key-document <FILE>
Can be specified multiple times and must be specified at least once.
--no-verify
Does not require the host-key documents to be valid. Do not use for a production request unless you verified the host-key document beforehand.
-C, --cert <FILE>
The certificates are used to establish a chain of trust for the verification of the host-key documents. Specify this option twice to specify the IBM Z signing key and the intermediate CA certificate (signed by the root CA).
--crl <FILE>
The list is used to check whether a certificate of the chain of trust is revoked. Specify this option multiple times to use multiple CRLs.
--offline
--root-ca <ROOT_CA>
If omitted, the system wide-root CAs installed on the system are used. Use this only if you trust the specified certificate.
--hdr <FILE>
Can be an IBM Secure Execution image created by pvimg/genprotimg or an extracted IBM Secure Execution header.
-f, --force
If the program detects that it is running on an IBM Secure Execution guest, it denies the generation of add-secret requests. The force flag overwrites this behavior.
-o, --output <FILE>
--extension-secret <FILE>
The file must be exactly 32 bytes long. If this request is the first, all subsequent requests must have the same extension secret. Only makes sense if bit 1 of the secret control flags of the IBM Secure Execution header is 0. Otherwise the ultravisor rejects the request.
--cck <FILE>
The file must contain exactly 32 bytes of data. If the target guest was started with bit 1 of the secret control flag set, the ultravisor also derives the secret from the CCK. Otherwise, the ultravisor interprets the extension secret as a normal one. This still works if you use the same CCK for all requests.
--cuid-hex <HEXSTRING>
Must be a hex 128-bit unsigned big endian number string. Leading zeros must be provided. If specified, the value must match with the Config-UID from the attestation result of that guest. If not specified, the CUID will be ignored by the ultravisor during the verification of the request.
--cuid <FILE>
The file must contain exactly 128 bit of data or a yaml with a `cuid` entry. If specified, the value must match the Config-UID from the attestation result of that guest. If not specified, the CUID will be ignored by the Ultravisor during the verification of the request.
--flags <FLAGS>
Possible values:
--user-data <FILE>
Passes user data defined in FILE through the add-secret request to the ultravisor. The user data can be up to 512 bytes of arbitrary data, and the maximum size depends on the size of the user-signing key: - No key: user data can be 512 bytes. - EC(secp521r1) or RSA 2048 keys: user data can be 256 bytes. - RSA 3072 key: user data can be 128 bytes.
The firmware ignores this data, but the request tag protects the user-data. Optional. No user-data by default.
--policy <FILE>
This option embeds a PolicyReference in the ASR user data field. The PolicyReference includes the relative file path and the SHA‑512 hash of the policy file, allowing the policy’s integrity to be verified.
This option conflicts with --user-data, because both options use the same user data field in the ASR structure.
--toc-policy <FILE>
This option appends the AES‑GCM authentication tag to the specified TOC policy file. This allows the TOC policy to maintain a list of all ASR MAC tags for completeness verification during boot. During verification, the TOC checks the MAC tags against this list to ensure that all expected ASRs are present and unmodified.
--user-sign-key <FILE>
Adds a signature calculated from the key in FILE to the add-secret request. The file must be in DER or PEM format containing a private key. Supported are RSA 2048 & 3072-bit and EC(secp521r1) keys. The firmware ignores the content, but the request tag protects the signature. The user-signing key signs the request. The location of the signature is filled with zeros during the signature calculation. The request tag also secures the signature. See man pvsecret verify for more details. Optional. No signature by default.
--use-name
Ignored for meta-secrets.
--secret-version <VERSION>
Possible values:
- 2: Version 2 - uses hybrid (post-quantum) cryptographic keys.
-h, --help
SEE ALSO¶
pvsecret(1), pvsecret-create-meta(1), pvsecret-create-association(1), pvsecret-create-retrievable(1), pvsecret-create-update-cck(1)
| 2026-08-11 | s390-tools |