Newer
Older
AMI-Aptio-BIOS-Reversed / AmiModulePkg / SecureBoot / SecureBootDXE / SecureBootDXE.h
@Ajax Dong Ajax Dong 2 days ago 3 KB Full restructure
/**
 * 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__ */