/**
* SecureBootDXE.h - Secure Boot DXE Driver Type Definitions
*
* Module: SecureBootDXE.efi
* Source: Lenovo HR650X BIOS (UEFI DXE)
* Image Size: 0x1ce0
*
* This header defines the data structures used by the SecureBootDXE driver
* for managing UEFI Secure Boot variables (db, dbx, dbt, dbr, KEK, PK)
* and provisioning default Secure Boot databases.
*/
#ifndef __SECUREBOOTDXE_H__
#define __SECUREBOOTDXE_H__
#include <Uefi.h>
#include <Guid/GlobalVariable.h>
#include <Guid/ImageAuthentication.h>
#include <Protocol/FirmwareVolume2.h>
#include <Protocol/Rng.h>
#pragma pack(push, 1)
/*============================================================================
* SecureBootSetup Variable
* Proprietary Lenovo variable at GUID {7B59104A-C00D-4158-87FF-F04D6396A915}
*============================================================================*/
typedef struct {
UINT8 SecureBoot; /* Enable/disable Secure Boot */
UINT8 SecureBootMode; /* Secure Boot mode (setup/user) */
UINT8 DefaultProvisioning; /* Flag to provision default databases */
UINT8 Reserved[5]; /* Padding to 8 bytes */
} SECURE_BOOT_SETUP_VAR;
#pragma pack(pop)
/*============================================================================
* Extern: UEFI Protocol/table pointers (cached in .data)
*============================================================================*/
extern EFI_HANDLE gImageHandle;
extern EFI_SYSTEM_TABLE *gSystemTable;
extern EFI_BOOT_SERVICES *gBootServices;
extern EFI_RUNTIME_SERVICES *gRT;
extern EFI_SYSTEM_TABLE *gST;
extern VOID *gHobList;
/*============================================================================
* Global variable names used by this driver (GUID: gEfiGlobalVariableGuid)
*============================================================================*/
/* L"SecureBootSetup" at GUID {7B59104A-C00D-4158-87FF-F04D6396A915} */
#define SECURE_BOOT_SETUP_VAR_NAME L"SecureBootSetup"
#define SECURE_BOOT_SETUP_VAR_GUID { 0x7B59104A, 0xC00D, 0x4158, { 0x87, 0xFF, 0xF0, 0x4D, 0x63, 0x96, 0xA9, 0x15 } }
/* L"SetupMode" at GUID {8BE4DF61-93CA-11D2-AA0D-00E098032B8C} (gEfiGlobalVariableGuid) */
#define EFI_SETUP_MODE_VAR_NAME L"SetupMode"
/*============================================================================
* Secure Boot database variable names
*============================================================================*/
#define EFI_SECURE_BOOT_DB_NAME L"db"
#define EFI_SECURE_BOOT_DBX_NAME L"dbx"
#define EFI_SECURE_BOOT_DBT_NAME L"dbt"
#define EFI_SECURE_BOOT_DBR_NAME L"dbr"
#define EFI_SECURE_BOOT_KEK_NAME L"KEK"
#define EFI_SECURE_BOOT_PK_NAME L"PK"
/* Default provisioning variable names */
#define EFI_SECURE_BOOT_DB_DEFAULT L"dbDefault"
#define EFI_SECURE_BOOT_DBX_DEFAULT L"dbxDefault"
#define EFI_SECURE_BOOT_DBT_DEFAULT L"dbtDefault"
#define EFI_SECURE_BOOT_DBR_DEFAULT L"dbrDefault"
#define EFI_SECURE_BOOT_KEK_DEFAULT L"KEKDefault"
#define EFI_SECURE_BOOT_PK_DEFAULT L"PKDefault"
#endif /* __SECUREBOOTDXE_H__ */