Files
2026-05-26 03:27:31 -07:00

44 lines
1.1 KiB
C

#ifndef MOK_H
#define MOK_H
#include <efi.h>
/* MOK variables GUID */
#define MOK_GUID \
{ 0x605dab50, 0xe046, 0x4300, \
{0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23} }
/* EFI X.509 certificate type GUID (used in EFI_SIGNATURE_LIST) */
#define EFI_CERT_X509_GUID \
{ 0xa5c059a1, 0x94e4, 0x4aa7, \
{0x87, 0xb5, 0xab, 0x15, 0x5c, 0x2b, 0xf0, 0x72} }
/*
* Owner GUID embedded in EFI_SIGNATURE_DATA when enrolling.
* Spells "NETIPXEBOOT" in ASCII — arbitrary but stable identifier.
*/
#define MOK_OWNER_GUID \
{ 0x4e455449, 0x504f, 0x5854, \
{0x49, 0x50, 0x58, 0x45, 0x42, 0x4f, 0x4f, 0x54} }
#define MOK_ATTRS \
(EFI_VARIABLE_NON_VOLATILE | \
EFI_VARIABLE_BOOTSERVICE_ACCESS | \
EFI_VARIABLE_RUNTIME_ACCESS)
#pragma pack(1)
typedef struct {
EFI_GUID SignatureType;
UINT32 SignatureListSize;
UINT32 SignatureHeaderSize;
UINT32 SignatureSize;
} MOK_SIG_LIST;
typedef struct {
EFI_GUID SignatureOwner;
/* followed by variable-length cert/data bytes */
} MOK_SIG_DATA;
#pragma pack()
#endif /* MOK_H */