'\" t .\" Title: sbctl .\" Author: [see the "Authors" section] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 04/28/2025 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" .TH "SBCTL" "8" "04/28/2025" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" sbctl \- Secure Boot Manager .SH "SYNOPSIS" .sp \fBsbctl\fR .SH "DESCRIPTION" .sp \fBsbctl\fR is a tool that allows one to create keys for secure boot, securely enroll them and keep track of files to sign\&. .SH "EFI SIGNING COMMANDS" .PP \fBstatus\fR .RS 4 Shows the current secure boot status of the system\&. It checks if you are currently booted in UEFI with Secure Boot, and whether Setup Mode has been enabled\&. .RE .PP \fBcreate\-keys\fR .RS 4 Creates a set of signing keys used to sign EFI binaries\&. Currently, it will create the following keys: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Platform Key .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Key Exchange Key .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Signature Database Key .PP \fB\-e\fR, \fB\-\-export\fR .RS 4 The directory to persist the exported keys\&. .RE .PP \fB\-d\fR, \fB\-\-database\-path\fR .RS 4 Path to save the GUID file when generating keys\&. .RE .RE .RE .PP \fBenroll\-keys\fR .RS 4 Enrolls the created key into the EFI variables\&. .sp .if n \{\ .RS 4 .\} .nf Note that some devices have hardware firmware that is signed and validated when Secure Boot is enabled\&. Failing to validate this firmware could brick devices\&. It\*(Aqs recommended to enroll your own keys with Microsoft certificates\&. .fi .if n \{\ .RE .\} .PP \fB\-m\fR, \fB\-\-microsoft\fR .RS 4 Enroll UEFI vendor certificates from Microsoft into the signature database\&. See \fBOption ROM\fR*\&. .RE .PP \fB\-t\fR, \fB\-\-tpm\-eventlog\fR .RS 4 Enroll checksums from the TPM Eventlog into the signature database\&. See \fBOption ROM\fR*\&. This feature is experimental .RE .PP \fB\-c\fR, \fB\-\-custom\fR .RS 4 Enroll custom KEK and db certificates from "/var/lib/sbctl/keys/custom/KEK/", "/var/lib/sbctl/keys/custom/db/", respectively\&. .RE .PP \fB\-f\fR, \fB\-\-firmware\-builtin\fR .RS 4 Enroll signatures from dbDefault, KEKDefault or PKDefault\&. This is usefull if sbctl does not vendor your OEM certificates, or doesn\(cqt include all of them\&. Valid values are "db", "KEK" or "PK" passed as a comma delimitered string\&. Default: "db,KEK" .RE .PP \fB\-\-yes\-this\-might\-brick\-my\-machine\fR, \fB\-\-yolo\fR .RS 4 Ignore the Option ROM error and continue enrolling keys into the UEFI firmware\&. See \fBOption ROM\fR*\&. .RE .PP \fB\-i\fR, \fB\-\-ignore\-immutable\fR .RS 4 Ignore checking /sys/firmware/efi/efivars/ for immutable files and unset the immutable attribute before enrolling certificates\&. .RE .PP \fB\-\-export\fR .RS 4 Export the keys we intend to enroll as EFI Signature Lists (esl), or EFI Authenticated Variables (auth) into the current working directory\&. Valid values are: esl, auth\&. .RE .PP \fB\-p\fR, \fB\-\-partial\fR .RS 4 Enroll keys only for the hierarchy specified\&. Valid values are: db, KEK, PK\&. .RE .PP \fB\-\-custom\-bytes\fR .RS 4 Enroll a custom bytefile provided by its path to the efivar specified by partial\&. .RE .PP \fB\-a\fR, \fB\-\-append\fR .RS 4 Instead of replacing the currently enrolled keys, append the provided one\&. .RE .PP \fB\-\-keytype\fR .RS 4 Set the keytype for all signing keys used by sbctl\&. This includes PK, KEK and db keys\&. Default: file Valid values are: file, tpm .RE .PP \fB\-\-pk\-keytype\fR .RS 4 Set the PK key type\&. Default: file Valid values are: file, tpm .RE .PP \fB\-\-kek\-keytype\fR .RS 4 Set the KEK key type\&. Default: file Valid values are: file, tpm .RE .PP \fB\-\-db\-keytype\fR .RS 4 Set the db key type\&. Default: file Valid values are: file, tpm .RE .RE .PP \fBsign\fR \&... .RS 4 Signs an EFI binary with the created key\&. The file will be checked for valid signatures to avoid duplicates\&. .PP \fB\-o\fR \fIPATH\fR, \fB\-\-output\fR \fIPATH\fR .RS 4 Output filename\&. Default replaces the file\&. .RE .PP \fB\-s\fR, \fB\-\-save\fR .RS 4 Save file to the database\&. .RE .RE .PP \fBsign\-all\fR .RS 4 Signs all enrolled EFI binaries\&. .PP \fB\-g\fR, \fB\-\-generate\fR .RS 4 Generate all bundles before signing\&. .RE .RE .PP \fBimport\-keys\fR .RS 4 Imports existing keys into sbctl\&. .PP \fB\-\-db\-cert\fR \fIPATH\fR .RS 4 Path to a valid Database (db) certificate\&. .RE .PP \fB\-\-db\-key\fR \fIPATH\fR .RS 4 Path to a valid Database (db) private key\&. .RE .PP \fB\-\-kek\-cert\fR \fIPATH\fR .RS 4 Path to a valid Key Exchange Key (KEK) certificate\&. .RE .PP \fB\-\-kek\-key\fR \fIPATH\fR .RS 4 Path to a valid Key Exchange Key (KEK) private key\&. .RE .PP \fB\-\-pk\-cert\fR \fIPATH\fR .RS 4 Path to a valid Platform Key(PK) certificate\&. .RE .PP \fB\-\-pk\-key\fR \fIPATH\fR .RS 4 Path to a valid Platform Key (PK) private key\&. .RE .PP \fB\-\-directory\fR \fIPATH\fR .RS 4 Path to a key directory\&. The expected file locations inside this directory are: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} PK/PK\&.key .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} PK/PK\&.pem .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} KEK/KEK\&.key .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} KEK/KEK\&.pem .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} db/db\&.key .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} db/db\&.pem .RE .RE .PP \fB\-\-force\fR .RS 4 Overwrite the existing key directory used by sbctl\&. .RE .RE .PP \fBlist\-files\fR, \fBls\-files\fR, \fBls\fR .RS 4 Lists all enrolled EFI binaries\&. .RE .PP \fBremove\-file\fR , \fBrm\-file\fR , \fBrm\fR .RS 4 Removes the file from the signing database\&. .RE .PP \fBlist\-enrolled\-keys\fR, \fBls\-enrolled\-keys\fR .RS 4 Lists all enrolled keys on the system\&. .RE .PP \fBverify\fR [FILE\&...] .RS 4 Looks for EFI binaries with the mime type application/x\-dosexec in the ESP partition, and looks at the file database\&. Checks if they have been signed with the Signature Database Key\&. Takes an optional file argument to check specific files\&. .RE .PP \fBreset\fR .RS 4 Resets the Platform Key\&. This sets the machine out of Secure Boot mode and allows key rotation\&. .PP \fB\-p\fR, \fB\-\-partial\fR .RS 4 Reset keys only for the hierarchy specified\&. Valid values are: db, KEK, PK\&. .RE .RE .PP \fBrotate\-keys\fR .RS 4 Rotate the secure boot keys and replace them with newly generated keys\&. Saves the old keys to a directory in /var/tmp and resigns any files from the file database\&. .PP \fB\-\-backup\-dir\fR \fIPATH\fR .RS 4 Choose backup directory for old keys\&. .RE .PP \fB\-p\fR, \fB\-\-partial\fR .RS 4 Rotate keys only for the hierarchy specified\&. Valid values are: db, KEK, PK\&. .RE .PP \fB\-k\fR, \fB\-\-key\-file\fR .RS 4 Key file to be appended for the specified hierarchy\&. .RE .PP \fB\-c\fR, \fB\-\-cert\-file\fR .RS 4 Certificate file to be appended for the specified hierarchy\&. .RE .PP \fB\-\-keytype\fR .RS 4 Set the keytype for all signing keys used by sbctl\&. This includes PK, KEK and db keys\&. Default: file Valid values are: file, tpm .RE .PP \fB\-\-pk\-keytype\fR .RS 4 Set the PK key type\&. Default: file Valid values are: file, tpm .RE .PP \fB\-\-kek\-keytype\fR .RS 4 Set the KEK key type\&. Default: file Valid values are: file, tpm .RE .PP \fB\-\-db\-keytype\fR .RS 4 Set the db key type\&. Default: file Valid values are: file, tpm .RE .RE .PP \fBexport\-enrolled\-keys\fR .RS 4 Export already enrolled keys from the system\&. .PP \fB\-\-dir\fR \fIPATH\fR .RS 4 Output directory for the exported keys\&. .RE .PP \fB\-\-format\fR \fITYPE\fR .RS 4 Format of the exported keys\&. Default: der Valid values: esl, auth\&. .RE .RE .PP \fBsetup\fR .RS 4 Setup an sbctl installation\&. .sp .if n \{\ .RS 4 .\} .nf This commands enables declarative configuration of sbctl through the configuration file\&. It can also print the current configuration and the current state of the installation\&. .fi .if n \{\ .RE .\} .PP \fB\-\-setup\fR .RS 4 Setup an sbctl install based off on the provided configuration file, or the default read configuration from /etc/sbctl/sbctl\&.conf\&. This will automatically do the create\-keys and enroll\-keys commands and also setup the files database for signing\&. See \fBsbctl.conf\fR(5) for details\&. .RE .PP \fB\-\-migrate\fR .RS 4 Migrate the configuration and setup of sbctl to a new iteration\&. Currently the only migration for sbctl is moving from /usr/share/secureboot to /var/lib/sbctl\&. .RE .PP \fB\-\-print\-config\fR .RS 4 Prints a serialized version of the current configuration of sbctl\&. See \fBsbctl.conf\fR(5) for details\&. .RE .PP \fB\-\-print\-state\fR .RS 4 Prints the state of the sbctl installation\&. Currently only prints whether or not sbctl has been installed on the system\&. Note: This option requires passing \-\-json\&. .RE .RE .PP \fBhelp\fR .RS 4 Displays a help message\&. .RE .SH "EFI BINARY COMMANDS" .PP \fBbundle\fR [\fIFLAGS\fR] .RS 4 Creates a bundle that should produce EFI binaries\&. See \fBBUNDLES\fR below for more details\&. .PP \fB\-a\fR \fIPATH\fR, \fB\-\-amducode\fR \fIPATH\fR .RS 4 AMD microcode location\&. .RE .PP \fB\-c\fR \fIPATH\fR, \fB\-\-cmdline\fR \fIPATH\fR .RS 4 Cmdline location\&. (default "/etc/kernel/cmdline") .RE .PP \fB\-e\fR \fIPATH\fR, \fB\-\-efi\-stub\fR \fIPATH\fR .RS 4 EFI Stub location\&. (default "/usr/lib/systemd/boot/efi/linuxx64\&.efi\&.stub") .RE .PP \fB\-p\fR \fIPATH\fR, \fB\-\-esp\fR \fIPATH\fR .RS 4 ESP location\&. (default "/efi") .RE .PP \fB\-h\fR, \fB\-\-help\fR .RS 4 Help for bundle\&. .RE .PP \fB\-f\fR \fIPATH\fR, \fB\-\-initramfs\fR \fIPATH\fR .RS 4 Initramfs location\&. (default "/boot/initramfs\-linux\&.img") .RE .PP \fB\-i\fR \fIPATH\fR, \fB\-\-intelucode\fR \fIPATH\fR .RS 4 Intel microcode location\&. .RE .PP \fB\-k\fR \fIPATH\fR, \fB\-\-kernel\-img\fR \fIPATH\fR .RS 4 Kernel image location\&. (default "/boot/vmlinuz\-linux") .RE .PP \fB\-o\fR \fIPATH\fR, \fB\-\-os\-release\fR \fIPATH\fR .RS 4 OS Release file location\&. (default "/usr/lib/os\-release") .RE .PP \fB\-s\fR, \fB\-\-save\fR .RS 4 Save bundle to the database\&. .RE .PP \fB\-l\fR \fIPATH\fR, \fB\-\-splash\-img\fR \fIPATH\fR .RS 4 Boot splash image location\&. .RE .RE .PP \fBgenerate\-bundles\fR .RS 4 This command generates all bundles\&. .PP \fB\-s\fR, \fB\-\-sign\fR .RS 4 Sign all the generated bundles\&. .RE .RE .PP \fBremove\-bundle\fR , \fBrm\-bundle\fR .RS 4 Removes a bundle from the list\&. This does not delete the bundle itself\&. .RE .PP \fBlist\-bundles\fR, \fBls\-bundle\fR .RS 4 List all registered bundles to generate\&. .RE .SH "OPTIONS" .PP \fB\-j\fR, \fB\-\-json\fR .RS 4 This enables supported commands to output their values in json instead of human\-readable text\&. This is practical for parsing data with tools like jq\&. .RE .PP \fB\-c\fR, \fB\-\-config\fR .RS 4 An optionally provided path to the configuration file that should be used by sbctl\&. Default: /etc/sbctl/sbctl\&.conf .RE .PP \fB\-\-disable\-landlock\fR .RS 4 Disables landlock sandboxing in sbctl\&. See \fBlandlock\fR(7)\&. .RE .PP \fB\-\-debug\fR .RS 4 Enable verbose debug logging\&. This will break the pretty printed text\&. .RE .SH "BUNDLES" .sp Note: This is being deprecated\&. Please move to dracut/mkinitcpio/ukify\&. .sp Normally, only the kernel is signed with your secure boot keys\&. This means the kernel command line and initramfs can be changed without possibility of verification\&. .sp Bundles are EFI executables which pack all three (initramfs, kernel and cmdline) into a single file which is easy to sign\&. Avoiding any unsigned files during boot makes the whole process more tamper\-proof\&. .sp When a bundle is generated, its configuration is stored into the bundle database (see \fBFILES\fR)\&. Subsequent executions of \fBsbctl generate\-bundles\fR will rebuild these bundles, so you don\(cqt need to re\-specify all parameters after each system update\&. .sp Tip: systemd\-boot will automatically show entries for any bundles found in \fBesp/EFI/Linux/*\&.efi\fR\&. .SH "SUPPORTED KEY TYPES" .sp sbctl currently supports storing keys as plain unencrypted files, or as TPM shielded keys\&. .sp Plain unencrypted files (\fBfile\fR) should only be used when the root partition is encrypted\&. This is the default key type for historic reasons\&. File keys are hardcoded to RSA 4096\&. .sp TPM shielded keys (\fBtpm\fR) are shielded inside the TPM and available if there is an accessible TPM on the system\&. TPM policies are not supported which means we can\(cqt seal keys towards the system state\&. Note that TPM keys are hardcoded to RSA 2048, which is usually the highest bit strength supported by TPMs\&. .sp When creating a key hierarchy for Secure Boot, the user can decide which key type each of the keys in the hierarchy gets\&. Because TPMs can be slow to sign, it\(cqs generally adviced to keep PK and KEK in the TPM, while the db key can be a standard \fBfile\fR key\&. .sp Note that password protection is currently not supported\&. .SH "LANDLOCK" .sp sbctl supports landlock and will attempt to restrict access to filepaths to where it\(cqs needed during execution\&. Any attempts at establishing network access is also restricted\&. .sp This feature can be disabled by setting \fBlandlock: false\fR in the configuration file, or by passing \fB\-\-disable\-landlock\fR to sbctl\&. .SH "OPTION ROM" .sp See https://github\&.com/Foxboron/sbctl/wiki/FAQ#option\-rom .SH "USAGE" .sp \fINote\fR: To use custom Secure Boot keys it\(cqs important to reboot into firmware setup (systemctl reboot \-\-firmware\-setup) and navigate into the \fISecure Boot\fR menu to enter \fISetup Mode\fR\&. This is normally achieved by deleting/clearing the secure boot keys (or at a minimum the Platform Key) while leaving secure boot mode enabled\&. Some firmwares have a \fICustom Mode\fR which only disables signature verification and should therefore not be enabled unless no other way to enter key management is provided\&. If this step is not completed, enrolling custom keys will be rejected by the firmware\&. .sp Next is creating the keys for secure boot\&. \fIcreate\-keys\fR creates the key hierarchy needed for secure boot into "/var/lib/sbctl/keys"\&. .sp .if n \{\ .RS 4 .\} .nf # sbctl create\-keys Created Owner UUID a9fbbdb7\-a05f\-48d5\-b63a\-08c5df45ee70 Creating secure boot keys\&.\&.\&.✔ Secure boot keys created! .fi .if n \{\ .RE .\} .sp Next up is enrolling the keys into the efi firmware\&. \fBsbctl\fR supports doing this on a live system instead of having to boot or run a key management tool from the UEFI shell\&. .sp \fINote\fR: This can fail because of firmware issues and unique options in the machine BIOS menu\&. Also, some devices have hardware firmware that is signed and validated when Secure Boot is enabled\&. Failing to validate this firmware could brick devices\&. It\(cqs recommended to enroll your own keys with Microsoft certificates using the \fI\-m\fR option\&. See \fBOption ROM\fR* above\&. .sp .if n \{\ .RS 4 .\} .nf # sbctl enroll\-keys Enrolling keys to EFI variables\&.\&.\&.✔ Enrolled keys to the EFI variables! .fi .if n \{\ .RE .\} .sp After we have successfully enrolled the keys, we need to sign our current boot chain\&. Traditionally on UEFI systems one can have an EFI System Partition (\fIESP\fR) on \fI/efi\fR, \fI/boot\fR or \fI/boot/efi\fR\&. One can usually find the correct one by looking at mount points or finding the \fIEFI\fR directory on the ESP\&. .sp The most important file to sign is the kernel\&. This location differs between distributions but can usually be found on the ESP or /boot\&. We use \fI\-\-save\fR to store the file path, so we don\(cqt need to manually sign it later\&. .sp Note that \fBsbctl\fR can only keep track of file paths\&. On versioned kernels this might prove tricky\&. .sp .if n \{\ .RS 4 .\} .nf # sbctl sign \-\-save /efi/vmlinuz\-linux ✔ Signed /efi/vmlinuz\-linux .fi .if n \{\ .RE .\} .sp Next is to sign the bootloader\&. This can usually be found on the standard path below, but might differ between installations\&. .sp .if n \{\ .RS 4 .\} .nf # sbctl sign \-\-save /efi/EFI/BOOT/BOOTX64\&.EFI ✔ Signed /efi/EFI/BOOT/BOOTX64\&.EFI .fi .if n \{\ .RE .\} .sp \fBsbctl\fR is able to find and verify the ESP, along with any saved files to verify we have signed the files we need\&. .sp .if n \{\ .RS 4 .\} .nf # sbctl verify Verifying file database and EFI images in /efi\&.\&.\&. ✔ /efi/EFI/BOOT/BOOTX64\&.EFI is signed ✔ /efi/vmlinuz\-linux is signed .fi .if n \{\ .RE .\} .sp Once we have confirmed everything works, we can reboot\&. Once we have logged back in, we can verify the state of the system\&. There should be no need to re\-enable Secure Boot or enter User Mode in the firmware\&. .sp .if n \{\ .RS 4 .\} .nf $ sbctl status Installed: ✓ sbctl is installed Owner GUID: a7b893cc\-949d\-408c\-b5cc\-6e7d0370fdb6 Setup Mode: ✓ Disabled Secure Boot: ✓ Enabled .fi .if n \{\ .RE .\} .sp When we do a system update, we can run \fIsign\-all\fR to resign all the saved files from earlier\&. .sp .if n \{\ .RS 4 .\} .nf # sbctl sign\-all File has already been signed /boot/vmlinuz\-linux ✓ Signed /efi/EFI/BOOT/BOOTX64\&.EFI .fi .if n \{\ .RE .\} .sp sbctl supports creating unified kernel images\&. These UEFI executables bundles the initramfs, kernel and cmdline into one executable which can be signed for secure boot\&. This allows you to authenticate larger parts of the bootchain instead of only signing the kernel\&. .sp .if n \{\ .RS 4 .\} .nf # sbctl bundle \-i /boot/intel\-ucode\&.img \-l /usr/share/systemd/bootctl/splash\-arch\&.bmp \-k /boot/vmlinuz\-linux \-f /boot/initramfs\-linux\-lts\&.img \-c /etc/kernel/cmdline /efi/EFI/Linux/linux\-linux\&.efi .fi .if n \{\ .RE .\} .sp Note that \fBdracut\fR(8) and \fBmkinitcpio\fR(8) supports unified kernel features, and they should be preferred over the sbctl implementation\&. It is mostly provided in the cases where this feature is not supported by the initramfs generator of the distribution\&. .SH "NOTES" .sp All commands that take path arguments convert them into absolute paths when saving them to the database\&. .SH "EXIT STATUS" .sp On success, 0 is returned, a non\-zero failure code otherwise\&. .SH "ENVIRONMENT VARIABLES" .PP \fBSYSTEMD_ESP_PATH\fR, \fBESP_PATH\fR .RS 4 Defines the EFI system partition (ESP) location\&. This overrides the behaviour from \fBsbctl\fR where we query for the correct partition with \fBlsblk\fR\&. No checks are performed on this path and can be usefull for testing purposes\&. .RE .PP \fBSBCTL_UNICODE\fR .RS 4 If this value is "0" sbctl will replace the unicode symbols to equivalent ascii ones\&. The default value is assumed to be 1\&. .RE .SH "FILES" .sp \fB/etc/sbctl/sbctl\&.conf\fR:; Default configuration file\&. See \fBsbctl.conf\fR(5) .PP \fB/var/lib/sbctl\fR .RS 4 Default storage directory\&. .RE .PP \fB/var/lib/sbctl/GUID\fR .RS 4 Owner identification\&. This is a randomly generated UUID\&. .RE .PP \fB/var/lib/sbctl/files\&.db\fR .RS 4 Contains a list of EFI binaries to be signed by the generated key\&. .RE .PP \fB/var/lib/sbctl/bundles\&.db\fR .RS 4 Contains a list of EFI bundles to be generated\&. .RE .PP \fB/var/lib/sbctl/keys/db/db\&.{pem,key}\fR .RS 4 Contains the Signature Database key used for signing EFI binaries\&. .RE .PP \fB/var/lib/sbctl/keys/KEK/KEK\&.{pem,key}\fR .RS 4 Contains the Key Exchange Key\&. .RE .PP \fB/var/lib/sbctl/keys/PK/PK\&.{pem,key}\fR .RS 4 Contains the Platform Key\&. .RE .PP \fB/var/lib/sbctl/keys/custom/KEK/\fR* .RS 4 Contains custom certificates which will be added to the firmware as additional Key Exchange Keys\&. .RE .PP \fB/var/lib/sbctl/keys/custom/db/\fR* .RS 4 Contains custom certificates which will be added to the firmware Signature Database\&. .RE .SH "SEE ALSO" .sp \fBbootctl\fR(1) \fBjq\fR(1) \fBsbctl.conf\fR(5) \fBlandlock\fR(7) .SH "AUTHORS" .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Morten Linderud .RE