1 #ifndef SB_H 2 #define SB_H 1 3 4 struct _WIN_CERTIFICATE { 5 UINT32 dwLength; 6 UINT16 wRevision; 7 UINT16 wCertificateType; 8 //UINT8 bCertficate[]; 9 } __attribute__((aligned (1))); 10 11 typedef struct _WIN_CERTIFICATE WIN_CERTIFICATE; 12 13 #define EFI_CERT_TYPE_RSA2048_SHA256_GUID \ 14 { 0xa7717414, 0xc616, 0x4977, {0x94,0x20,0x84,0x47,0x12,0xa7,0x35,0xbf }} 15 16 typedef struct { 17 EFI_GUID HashType; 18 UINT8 PublicKey[256]; 19 UINT8 Signature[256]; 20 } EFI_CERT_BLOCK_RSA_2048_SHA256; 21 22 struct _WIN_CERTIFICATE_UEFI_GUID { 23 WIN_CERTIFICATE Hdr; 24 EFI_GUID CertType; 25 //UINT8 CertData[]; 26 } __attribute__((aligned (1))); 27 28 typedef struct _WIN_CERTIFICATE_UEFI_GUID WIN_CERTIFICATE_UEFI_GUID; 29 30 struct _EFI_VARIABLE_AUTHENTICATION { 31 UINT64 MonotonicCount; 32 WIN_CERTIFICATE_UEFI_GUID AuthInfo; 33 } __attribute__((aligned (1))); 34 35 typedef struct _EFI_VARIABLE_AUTHENTICATION EFI_VARIABLE_AUTHENTICATION; 36 37 struct _EFI_VARIABLE_AUTHENTICATION_2 { 38 EFI_TIME TimeStamp; 39 WIN_CERTIFICATE_UEFI_GUID AuthInfo; 40 } __attribute__((aligned (1))); 41 42 typedef struct _EFI_VARIABLE_AUTHENTICATION_2 EFI_VARIABLE_AUTHENTICATION_2; 43 44 struct _EFI_SIGNATURE_DATA { 45 EFI_GUID SignatureOwner; /* 16 */ 46 // UINT8 SignatureData[]; 47 } __attribute__((aligned (1))); 48 49 typedef struct _EFI_SIGNATURE_DATA EFI_SIGNATURE_DATA; 50 51 struct _EFI_SIGNATURE_LIST { 52 EFI_GUID SignatureType; /* 16 */ 53 UINT32 SignatureListSize; /* 4 */ 54 UINT32 SignatureHeaderSize; /* 4 */ 55 UINT32 SignatureSize; /* 4 */ 56 } __attribute__((aligned (1))); 57 58 typedef struct _EFI_SIGNATURE_LIST EFI_SIGNATURE_LIST; 59 60 #define EFI_IMAGE_SECURITY_DATABASE_GUID \ 61 { 0xd719b2cb, 0x3d3a, 0x4596, {0xa3,0xbc,0xda,0xd0,0x0e,0x67,0x65,0x6f }} 62 EFI_GUID gEfiImageSecurityDatabaseGuid = EFI_IMAGE_SECURITY_DATABASE_GUID; 63 64 #define EFI_CERT_SHA256_GUID \ 65 { 0xc1c41626, 0x504c, 0x4092, {0xac,0xa9,0x41,0xf9,0x36,0x93,0x43,0x28 }} 66 EFI_GUID gEfiCertSha256Guid = EFI_CERT_SHA256_GUID; 67 68 #define EFI_CERT_RSA2048_GUID \ 69 { 0x3c5766e8, 0x269c, 0x4e34, {0xaa,0x14,0xed,0x77,0x6e,0x85,0xb3,0xb6 }} 70 EFI_GUID gEfiCertRsa2048Guid = EFI_CERT_RSA2048_GUID; 71 72 #define EFI_CERT_RSA2048_SHA256_GUID \ 73 { 0xe2b36190, 0x879b, 0x4a3d, {0xad,0x8d,0xf2,0xe7,0xbb,0xa3,0x27,0x84 }} 74 EFI_GUID gEfiCertRsa2048Sha256Guid = EFI_CERT_RSA2048_SHA256_GUID; 75 76 #define EFI_CERT_SHA1_GUID \ 77 { 0x826ca512, 0xcf10, 0x4ac9, {0xb1,0x87,0xbe,0x01,0x49,0x66,0x31,0xbd }} 78 EFI_GUID gEfiCertSha1Guid = EFI_CERT_SHA1_GUID; 79 80 #define EFI_CERT_RSA2048_SHA1_GUID \ 81 { 0x67f8444f, 0x8743, 0x48f1, {0xa3,0x28,0x1e,0xaa,0xb8,0x73,0x60,0x80 }} 82 EFI_GUID gEfiCertRsa2048Sha1Guid = EFI_CERT_RSA2048_SHA1_GUID; 83 84 #define EFI_CERT_X509_GUID \ 85 { 0xa5c059a1, 0x94e4, 0x4aa7, {0x87,0xb5,0xab,0x15,0x5c,0x2b,0xf0,0x72 }} 86 EFI_GUID gEfiCertX509Guid = EFI_CERT_X509_GUID; 87 88 #define EFI_CERT_TYPE_PKCS7_GUID \ 89 { 0x4aafd29d, 0x68df, 0x49ee, {0x8a,0xa9,0x34,0x7d,0x37,0x56,0x65,0xa7 }} 90 EFI_GUID gEfiCertPkcs7Guid = EFI_CERT_TYPE_PKCS7_GUID; 91 92 #define EFI_IMAGE_SECURITY_DATABASE L"db" 93 #define EFI_IMAGE_SECURITY_DATABASE1 L"dbx" 94 #define EFI_SETUP_MODE_NAME L"SetupMode" 95 #define EFI_PLATFORM_KEY_NAME L"PK" 96 #define EFI_KEY_EXCHANGE_KEY_NAME L"KEK" 97 #define EFI_SIGNATURE_SUPPORT_NAME L"SignatureSupport" 98 #define EFI_SECURE_BOOT_MODE_NAME L"SecureBoot" 99 100 #define SECURE_BOOT_MODE_ENABLE 1 101 #define SECURE_BOOT_MODE_DISABLE 0 102 103 #define SETUP_MODE 1 104 #define USER_MODE 0 105 106 #endif /* SB_H */ 107