efi-updatevar - Man Page

tool for updating secure variables

Synopsis

efi-updatevar: [-a] [-e] [-d <list>[-<entry>]] [-k <key>] [-g <guid>] [-b <file>|-f <file>|-c file] <var>

Description

Takes a variety of input files and adds them to one of the UEFI secure boot signature or key databases.

Note that the efivarfs filesystem must be mounted somewhere on the box and efi-updatevars must have the ability to write to the files (this usually means it must run as root).

Manipulate the UEFI key database via the efivarfs filesystem

Options

-a

append a value to the variable instead of replacing it

-e

use EFI Signature List instead of signed update (only works in Setup Mode

-b <binfile>

Add hash of <binfile> to the signature list

-f <file>

Add or Replace the key file (.esl or .auth) to the <var>

-c <file>

Add or Replace the x509 certificate to the <var> (with <guid> if provided)

-g <guid>

Optional <guid> for the X509 Certificate

-k <key>

Secret key file for authorising User Mode updates

-d <list>[-<entry>]

Delete the signature list <list> (or just a single <entry> within the list)

--engine <eng>

Use engine <eng> for private key

Examples

Assuming you own your own platform key and have the PK.auth and noPK.auth files which go with it, you can programmatically move the system out of User Mode by doing

efi-updatevar -f noPK.auth PK

and put it back again with

efi-updatevar -f PK.auth PK

To add the hash of an efi binary bin.efi to db in Setup Mode do

efi-updatevar -b bin.efi db

And to append an EFI signature list append.esl to db in Setup Mode do

efi-updatevar -a -e append.esl db

To add your key (KEK.crt) to the Key Exchange Key in User Mode, assuming the private part of the platform key is in PK.key, do

efi-updatevar -a -c KEK.crt -k PK.key KEK

To add certificate DB.crt to db in User Mode assuming the private part of the Key Exchange Key (KEK) is in KEK.key do

efi-updatevar -a -c DB.crt -k KEK.key db

To replace the old platform key (PK) with a new one in newPK.crt in User Mode assuming the private part of the old platform key is in PK.key, do

efi-updatevar -c newPK.crt -k PK.key db

To delete the private key, tipping the platform from User Mode to Setup Mode, do

efi-updatevar -d 0 -k PK.key PK

And to put the private key back again (in Setup Mode) do

efi-updatevar -c PK.crt -k PK.key PK

Info

February 2021 efi-updatevar 1.9.2