VirtualBox Main API
Public Member Functions | Public Attributes | List of all members
IUefiVariableStore Interface Reference

The IUefiVariableStore interface allows inspecting and manipulating the content of an existing UEFI variable store in a NVRAM file. More...

Inheritance diagram for IUefiVariableStore:

Public Member Functions

void addVariable (in wstring name, in wstringUUID owner, in UefiVariableAttributes[] attributes, in octet[] data)
 Adds a new variable to the non volatile storage area.
 
void deleteVariable (in wstring name, in wstringUUID owner)
 Deletes the given variable from the non volatile storage area.
 
void changeVariable (in wstring name, in octet[] data)
 Changes the data of the given variable.
 
void queryVariableByName (in wstring name, out wstringUUID owner, out UefiVariableAttributes[] attributes, out octet[] data)
 Queries the variable content variable by the given name.
 
void queryVariables (out wstring[] names, out wstringUUID[] owners)
 Queries all variables in the non volatile storage and returns their names.
 
void enrollOraclePlatformKey ()
 Enroll the default platform key from Oracle for enabling Secure Boot.
 
void enrollPlatformKey (in octet[] platformKey, in wstringUUID owner)
 Convenience method to enroll a new platform key (PK) for enabling Secure Boot.
 
void addKek (in octet[] keyEncryptionKey, in wstringUUID owner, in SignatureType signatureType)
 Convenience method to add a new Key Encryption Key (KEK) for Secure Boot.
 
void addSignatureToDb (in octet[] signature, in wstringUUID owner, in SignatureType signatureType)
 Convenience method to add a new entry to the signature database.
 
void addSignatureToDbx (in octet[] signature, in wstringUUID owner, in SignatureType signatureType)
 Convenience method to add a new entry to the forbidden signature database.
 
void enrollDefaultMsSignatures ()
 Convenience method to enroll the standard Microsoft KEK and signatures in the signature databases.
 
void addSignatureToMok (in octet[] signature, in wstringUUID owner, in SignatureType signatureType)
 Convenience method to add a new entry to the MOK (Machine Owner Key) signature database.
 

Public Attributes

attribute boolean secureBootEnabled
 Flag whether secure boot is currently enabled for the VM.
 

Detailed Description

The IUefiVariableStore interface allows inspecting and manipulating the content of an existing UEFI variable store in a NVRAM file.

This is used only in the INvramStore::uefiVariableStore attribute.

Interface ID:
{D134C6B6-4479-430D-BB73-68A452BA3E67}

Member Function Documentation

◆ addVariable()

void IUefiVariableStore::addVariable ( in wstring  name,
in wstringUUID  owner,
in UefiVariableAttributes[]  attributes,
in octet[]  data 
)

Adds a new variable to the non volatile storage area.

Parameters
nameName of the variable.
ownerUUID of the variable owner.
attributesAttributes of the variable.
dataThe variable data.

◆ deleteVariable()

void IUefiVariableStore::deleteVariable ( in wstring  name,
in wstringUUID  owner 
)

Deletes the given variable from the non volatile storage area.

Parameters
nameName of the variable.
ownerUUID of the variable owner.

◆ changeVariable()

void IUefiVariableStore::changeVariable ( in wstring  name,
in octet[]  data 
)

Changes the data of the given variable.

Parameters
nameName of the variable.
dataThe new variable data.

◆ queryVariableByName()

void IUefiVariableStore::queryVariableByName ( in wstring  name,
out wstringUUID  owner,
out UefiVariableAttributes[]  attributes,
out octet[]  data 
)

Queries the variable content variable by the given name.

Parameters
nameName of the variable to look for.
ownerUUID of the variable owner returned on success.
attributesAttributes of the variable.
dataThe variable data returned on success.

◆ queryVariables()

void IUefiVariableStore::queryVariables ( out wstring[]  names,
out wstringUUID[]  owners 
)

Queries all variables in the non volatile storage and returns their names.

Parameters
namesThe variable names returned on success.
ownersUUID of the variable owners returned on success.

◆ enrollOraclePlatformKey()

void IUefiVariableStore::enrollOraclePlatformKey ( )

Enroll the default platform key from Oracle for enabling Secure Boot.

◆ enrollPlatformKey()

void IUefiVariableStore::enrollPlatformKey ( in octet[]  platformKey,
in wstringUUID  owner 
)

Convenience method to enroll a new platform key (PK) for enabling Secure Boot.

Parameters
platformKeyThe platform key (PK) to enroll.
ownerUUID of the PK owner.

◆ addKek()

void IUefiVariableStore::addKek ( in octet[]  keyEncryptionKey,
in wstringUUID  owner,
in SignatureType  signatureType 
)

Convenience method to add a new Key Encryption Key (KEK) for Secure Boot.

Parameters
keyEncryptionKeyThe Key Encryption Key (KEK) to add.
ownerUUID of the KEK owner.
signatureTypeType of the signature.

◆ addSignatureToDb()

void IUefiVariableStore::addSignatureToDb ( in octet[]  signature,
in wstringUUID  owner,
in SignatureType  signatureType 
)

Convenience method to add a new entry to the signature database.

Parameters
signatureThe signature to add.
ownerUUID of the signature owner.
signatureTypeType of the signature.

◆ addSignatureToDbx()

void IUefiVariableStore::addSignatureToDbx ( in octet[]  signature,
in wstringUUID  owner,
in SignatureType  signatureType 
)

Convenience method to add a new entry to the forbidden signature database.

Parameters
signatureThe signature to add.
ownerUUID of the signature owner.
signatureTypeType of the signature.

◆ enrollDefaultMsSignatures()

void IUefiVariableStore::enrollDefaultMsSignatures ( )

Convenience method to enroll the standard Microsoft KEK and signatures in the signature databases.

◆ addSignatureToMok()

void IUefiVariableStore::addSignatureToMok ( in octet[]  signature,
in wstringUUID  owner,
in SignatureType  signatureType 
)

Convenience method to add a new entry to the MOK (Machine Owner Key) signature database.

Parameters
signatureThe signature to add.
ownerUUID of the signature owner.
signatureTypeType of the signature.

Member Data Documentation

◆ secureBootEnabled

attribute boolean IUefiVariableStore::secureBootEnabled

Flag whether secure boot is currently enabled for the VM.