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