]> git.proxmox.com Git - mirror_edk2.git/blame - SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigNvData.h
UEFI 2.4 X509 Certificate Hash and RFC3161 Timestamp Verification support for Secure...
[mirror_edk2.git] / SecurityPkg / VariableAuthenticated / SecureBootConfigDxe / SecureBootConfigNvData.h
CommitLineData
beda2356 1/** @file\r
2 Header file for NV data structure definition.\r
3\r
c93bcb7e 4Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved.<BR>\r
20333c6d
QL
5This program and the accompanying materials\r
6are licensed and made available under the terms and conditions of the BSD License\r
7which accompanies this distribution. The full text of the license may be found at\r
beda2356 8http://opensource.org/licenses/bsd-license.php\r
9\r
20333c6d 10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
beda2356 11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12\r
13**/\r
14\r
15#ifndef __SECUREBOOT_CONFIG_NV_DATA_H__\r
16#define __SECUREBOOT_CONFIG_NV_DATA_H__\r
17\r
18#include <Guid/HiiPlatformSetupFormset.h>\r
19#include <Guid/SecureBootConfigHii.h>\r
20\r
ecc722ad 21//\r
22// Used by VFR for form or button identification\r
23//\r
beda2356 24#define SECUREBOOT_CONFIGURATION_VARSTORE_ID 0x0001\r
ecc722ad 25#define SECUREBOOT_CONFIGURATION_FORM_ID 0x01\r
26#define FORMID_SECURE_BOOT_OPTION_FORM 0x02\r
27#define FORMID_SECURE_BOOT_PK_OPTION_FORM 0x03\r
28#define FORMID_SECURE_BOOT_KEK_OPTION_FORM 0x04\r
29#define FORMID_SECURE_BOOT_DB_OPTION_FORM 0x05\r
30#define FORMID_SECURE_BOOT_DBX_OPTION_FORM 0x06\r
31#define FORMID_ENROLL_PK_FORM 0x07\r
32#define SECUREBOOT_ADD_PK_FILE_FORM_ID 0x08\r
33#define FORMID_ENROLL_KEK_FORM 0x09\r
34#define FORMID_DELETE_KEK_FORM 0x0a\r
35#define SECUREBOOT_ENROLL_SIGNATURE_TO_DB 0x0b\r
36#define SECUREBOOT_DELETE_SIGNATURE_FROM_DB 0x0c\r
37#define SECUREBOOT_ENROLL_SIGNATURE_TO_DBX 0x0d\r
38#define SECUREBOOT_DELETE_SIGNATURE_FROM_DBX 0x0e\r
39#define FORM_FILE_EXPLORER_ID 0x0f\r
40#define FORM_FILE_EXPLORER_ID_PK 0x10\r
41#define FORM_FILE_EXPLORER_ID_KEK 0x11\r
42#define FORM_FILE_EXPLORER_ID_DB 0x12\r
43#define FORM_FILE_EXPLORER_ID_DBX 0x13\r
20333c6d
QL
44#define FORMID_SECURE_BOOT_DBT_OPTION_FORM 0x14\r
45#define SECUREBOOT_ENROLL_SIGNATURE_TO_DBT 0x15\r
46#define SECUREBOOT_DELETE_SIGNATURE_FROM_DBT 0x16\r
47#define FORM_FILE_EXPLORER_ID_DBT 0x17\r
ecc722ad 48\r
49#define SECURE_BOOT_MODE_CUSTOM 0x01\r
50#define SECURE_BOOT_MODE_STANDARD 0x00\r
51\r
52#define KEY_SECURE_BOOT_ENABLE 0x1000\r
53#define KEY_SECURE_BOOT_MODE 0x1001\r
54#define KEY_VALUE_SAVE_AND_EXIT_DB 0x1002\r
55#define KEY_VALUE_NO_SAVE_AND_EXIT_DB 0x1003\r
56#define KEY_VALUE_SAVE_AND_EXIT_PK 0x1004\r
57#define KEY_VALUE_NO_SAVE_AND_EXIT_PK 0x1005\r
58#define KEY_VALUE_SAVE_AND_EXIT_KEK 0x1008\r
59#define KEY_VALUE_NO_SAVE_AND_EXIT_KEK 0x1009\r
60#define KEY_VALUE_SAVE_AND_EXIT_DBX 0x100a\r
61#define KEY_VALUE_NO_SAVE_AND_EXIT_DBX 0x100b\r
a2f2c258 62#define KEY_HIDE_SECURE_BOOT 0x100c\r
20333c6d
QL
63#define KEY_VALUE_SAVE_AND_EXIT_DBT 0x100d\r
64#define KEY_VALUE_NO_SAVE_AND_EXIT_DBT 0x100e\r
ecc722ad 65\r
66#define KEY_SECURE_BOOT_OPTION 0x1100\r
67#define KEY_SECURE_BOOT_PK_OPTION 0x1101\r
68#define KEY_SECURE_BOOT_KEK_OPTION 0x1102\r
69#define KEY_SECURE_BOOT_DB_OPTION 0x1103\r
70#define KEY_SECURE_BOOT_DBX_OPTION 0x1104\r
71#define KEY_SECURE_BOOT_DELETE_PK 0x1105\r
72#define KEY_ENROLL_PK 0x1106\r
73#define KEY_ENROLL_KEK 0x1107\r
74#define KEY_DELETE_KEK 0x1108\r
75#define KEY_SECURE_BOOT_KEK_GUID 0x110a\r
76#define KEY_SECURE_BOOT_SIGNATURE_GUID_DB 0x110b\r
77#define KEY_SECURE_BOOT_SIGNATURE_GUID_DBX 0x110c\r
20333c6d
QL
78#define KEY_SECURE_BOOT_DBT_OPTION 0x110d\r
79#define KEY_SECURE_BOOT_SIGNATURE_GUID_DBT 0x110e\r
ecc722ad 80\r
81#define LABEL_KEK_DELETE 0x1200\r
82#define LABEL_DB_DELETE 0x1201\r
83#define LABEL_DBX_DELETE 0x1202\r
20333c6d 84#define LABEL_DBT_DELETE 0x1203\r
ecc722ad 85#define LABEL_END 0xffff\r
86\r
87#define SECURE_BOOT_MAX_ATTEMPTS_NUM 255\r
88\r
89#define CONFIG_OPTION_OFFSET 0x2000\r
90\r
91#define OPTION_CONFIG_QUESTION_ID 0x2000\r
92#define OPTION_CONFIG_RANGE 0x1000\r
93\r
94//\r
95// Question ID 0x2000 ~ 0x2FFF is for KEK\r
96//\r
97#define OPTION_DEL_KEK_QUESTION_ID 0x2000\r
98//\r
99// Question ID 0x3000 ~ 0x3FFF is for DB\r
100//\r
101#define OPTION_DEL_DB_QUESTION_ID 0x3000\r
102//\r
103// Question ID 0x4000 ~ 0x4FFF is for DBX\r
104//\r
20333c6d
QL
105#define OPTION_DEL_DBX_QUESTION_ID 0x4000\r
106\r
107//\r
108// Question ID 0x5000 ~ 0x5FFF is for DBT\r
109//\r
110#define OPTION_DEL_DBT_QUESTION_ID 0x5000\r
ecc722ad 111\r
c93bcb7e 112#define FILE_OPTION_GOTO_OFFSET 0xC000\r
ecc722ad 113#define FILE_OPTION_OFFSET 0x8000\r
c93bcb7e 114#define FILE_OPTION_MASK 0x3FFF\r
ecc722ad 115\r
116#define SECURE_BOOT_GUID_SIZE 36\r
117#define SECURE_BOOT_GUID_STORAGE_SIZE 37\r
118\r
beda2356 119//\r
120// Nv Data structure referenced by IFR\r
121//\r
122typedef struct {\r
20333c6d
QL
123 BOOLEAN AttemptSecureBoot; // Attempt to enable/disable Secure Boot\r
124 BOOLEAN HideSecureBoot; // Hiden Attempt Secure Boot\r
ecc722ad 125 CHAR16 SignatureGuid[SECURE_BOOT_GUID_STORAGE_SIZE];\r
20333c6d
QL
126 BOOLEAN PhysicalPresent; // If a Physical Present User\r
127 UINT8 SecureBootMode; // Secure Boot Mode: Standard Or Custom\r
128 BOOLEAN DeletePk;\r
129 BOOLEAN HasPk; // If Pk is existed it is true\r
130 BOOLEAN AlwaysRevocation; // If the certificate is always revoked. Revocation time is hidden\r
131 UINT8 CertificateFormat; // The type of the certificate\r
132 EFI_HII_DATE RevocationDate; // The revocation date of the certificate\r
133 EFI_HII_TIME RevocationTime; // The revocation time of the certificate\r
beda2356 134} SECUREBOOT_CONFIGURATION;\r
135\r
20333c6d 136#endif