1/** @file
2  VFR file used by the SecureBoot configuration component.
3
4Copyright (c) 2011 - 2016, Intel Corporation. All rights reserved.<BR>
5This program and the accompanying materials
6are licensed and made available under the terms and conditions of the BSD License
7which accompanies this distribution.  The full text of the license may be found at
8http://opensource.org/licenses/bsd-license.php
9
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13**/
14
15#include "SecureBootConfigNvData.h"
16
17formset
18  guid      = SECUREBOOT_CONFIG_FORM_SET_GUID,
19  title     = STRING_TOKEN(STR_SECUREBOOT_TITLE),
20  help      = STRING_TOKEN(STR_SECUREBOOT_HELP),
21  classguid = EFI_HII_PLATFORM_SETUP_FORMSET_GUID,
22
23  varstore SECUREBOOT_CONFIGURATION,
24    varid = SECUREBOOT_CONFIGURATION_VARSTORE_ID,
25    name  = SECUREBOOT_CONFIGURATION,
26    guid  = SECUREBOOT_CONFIG_FORM_SET_GUID;
27
28  //
29  // ##1 Form "Secure Boot Configuration"
30  //
31  form formid = SECUREBOOT_CONFIGURATION_FORM_ID,
32    title = STRING_TOKEN(STR_SECUREBOOT_TITLE);
33
34    subtitle text = STRING_TOKEN(STR_NULL);
35
36    text
37      help   = STRING_TOKEN(STR_SECURE_BOOT_STATE_HELP),
38      text   = STRING_TOKEN(STR_SECURE_BOOT_STATE_PROMPT),
39        text   = STRING_TOKEN(STR_SECURE_BOOT_STATE_CONTENT);
40
41    //
42    // Display of Check Box: Attempt Secure Boot
43    //
44    grayoutif ideqval SECUREBOOT_CONFIGURATION.HideSecureBoot == 1 OR NOT ideqval SECUREBOOT_CONFIGURATION.PhysicalPresent == 1;
45    checkbox varid = SECUREBOOT_CONFIGURATION.AttemptSecureBoot,
46          questionid = KEY_SECURE_BOOT_ENABLE,
47          prompt = STRING_TOKEN(STR_SECURE_BOOT_PROMPT),
48          help   = STRING_TOKEN(STR_SECURE_BOOT_HELP),
49          flags  = INTERACTIVE | RESET_REQUIRED,
50    endcheckbox;
51    endif;
52
53    //
54    // Display of Oneof: 'Secure Boot Mode'
55    //
56    oneof name = SecureBootMode,
57          questionid = KEY_SECURE_BOOT_MODE,
58          prompt = STRING_TOKEN(STR_SECURE_BOOT_MODE_PROMPT),
59          help   = STRING_TOKEN(STR_SECURE_BOOT_MODE_HELP),
60          flags  = INTERACTIVE | NUMERIC_SIZE_1,
61          option text = STRING_TOKEN(STR_STANDARD_MODE),    value = SECURE_BOOT_MODE_STANDARD, flags = DEFAULT;
62          option text = STRING_TOKEN(STR_CUSTOM_MODE),      value = SECURE_BOOT_MODE_CUSTOM,   flags = 0;
63    endoneof;
64
65    //
66    // Display of 'Current Secure Boot Mode'
67    //
68    suppressif questionref(SecureBootMode) == SECURE_BOOT_MODE_STANDARD;
69    grayoutif NOT ideqval SECUREBOOT_CONFIGURATION.PhysicalPresent == 1;
70    goto FORMID_SECURE_BOOT_OPTION_FORM,
71         prompt = STRING_TOKEN(STR_SECURE_BOOT_OPTION),
72         help   = STRING_TOKEN(STR_SECURE_BOOT_OPTION_HELP),
73         flags  = INTERACTIVE,
74         key    = KEY_SECURE_BOOT_OPTION;
75    endif;
76    endif;
77
78  endform;
79
80  //
81  // ##2 Form: 'Custom Secure Boot Options'
82  //
83  form formid = FORMID_SECURE_BOOT_OPTION_FORM,
84    title  = STRING_TOKEN(STR_SECURE_BOOT_OPTION_TITLE);
85
86    subtitle text = STRING_TOKEN(STR_NULL);
87
88    goto FORMID_SECURE_BOOT_PK_OPTION_FORM,
89         prompt = STRING_TOKEN(STR_SECURE_BOOT_PK_OPTION),
90         help   = STRING_TOKEN(STR_SECURE_BOOT_PK_OPTION_HELP),
91         flags  = INTERACTIVE,
92         key    = KEY_SECURE_BOOT_PK_OPTION;
93
94    subtitle text = STRING_TOKEN(STR_NULL);
95
96    goto FORMID_SECURE_BOOT_KEK_OPTION_FORM,
97         prompt = STRING_TOKEN(STR_SECURE_BOOT_KEK_OPTION),
98         help   = STRING_TOKEN(STR_SECURE_BOOT_KEK_OPTION_HELP),
99         flags  = INTERACTIVE,
100         key    = KEY_SECURE_BOOT_KEK_OPTION;
101
102    subtitle text = STRING_TOKEN(STR_NULL);
103
104    goto FORMID_SECURE_BOOT_DB_OPTION_FORM,
105         prompt = STRING_TOKEN(STR_SECURE_BOOT_DB_OPTION),
106         help   = STRING_TOKEN(STR_SECURE_BOOT_DB_OPTION_HELP),
107         flags  = INTERACTIVE,
108         key    = KEY_SECURE_BOOT_DB_OPTION;
109
110    subtitle text = STRING_TOKEN(STR_NULL);
111
112    goto FORMID_SECURE_BOOT_DBX_OPTION_FORM,
113         prompt = STRING_TOKEN(STR_SECURE_BOOT_DBX_OPTION),
114         help   = STRING_TOKEN(STR_SECURE_BOOT_DBX_OPTION_HELP),
115         flags  = INTERACTIVE,
116         key    = KEY_SECURE_BOOT_DBX_OPTION;
117
118    subtitle text = STRING_TOKEN(STR_NULL);
119
120    goto FORMID_SECURE_BOOT_DBT_OPTION_FORM,
121         prompt = STRING_TOKEN(STR_SECURE_BOOT_DBT_OPTION),
122         help   = STRING_TOKEN(STR_SECURE_BOOT_DBT_OPTION_HELP),
123         flags  = INTERACTIVE,
124         key    = KEY_SECURE_BOOT_DBT_OPTION;
125
126  endform;
127
128  //
129  // ##3 Form: 'PK Options'
130  //
131  form formid = FORMID_SECURE_BOOT_PK_OPTION_FORM,
132    title  = STRING_TOKEN(STR_SECURE_BOOT_PK_OPTION);
133
134    subtitle text = STRING_TOKEN(STR_NULL);
135
136    //
137    // Display of 'Enroll PK'
138    //
139    grayoutif ideqval SECUREBOOT_CONFIGURATION.HasPk == 1;
140    goto FORMID_ENROLL_PK_FORM,
141         prompt = STRING_TOKEN(STR_ENROLL_PK),
142         help   = STRING_TOKEN(STR_ENROLL_PK_HELP),
143         flags  = INTERACTIVE,
144         key    = KEY_ENROLL_PK;
145    endif;
146
147    subtitle text = STRING_TOKEN(STR_NULL);
148
149    //
150    // Display of Check Box: 'Delete Pk'
151    //
152    grayoutif ideqval SECUREBOOT_CONFIGURATION.HideSecureBoot == 1;
153    checkbox varid = SECUREBOOT_CONFIGURATION.DeletePk,
154          questionid = KEY_SECURE_BOOT_DELETE_PK,
155          prompt = STRING_TOKEN(STR_DELETE_PK),
156          help   = STRING_TOKEN(STR_DELETE_PK_HELP),
157          flags  = INTERACTIVE | RESET_REQUIRED,
158    endcheckbox;
159    endif;
160  endform;
161
162  //
163  // ##4 Form: 'Enroll PK'
164  //
165  form formid = FORMID_ENROLL_PK_FORM,
166    title  = STRING_TOKEN(STR_ENROLL_PK);
167
168    subtitle text = STRING_TOKEN(STR_NULL);
169
170    goto FORMID_ENROLL_PK_FORM,
171         prompt = STRING_TOKEN(STR_SECURE_BOOT_ENROLL_PK_FILE),
172         help = STRING_TOKEN(STR_SECURE_BOOT_ENROLL_PK_FILE),
173         flags = INTERACTIVE,
174         key = FORMID_ENROLL_PK_FORM;
175
176    subtitle text = STRING_TOKEN(STR_NULL);
177    label FORMID_ENROLL_PK_FORM;
178    label LABEL_END;
179    subtitle text = STRING_TOKEN(STR_NULL);
180
181    goto FORMID_SECURE_BOOT_OPTION_FORM,
182      prompt = STRING_TOKEN(STR_SAVE_AND_EXIT),
183      help   = STRING_TOKEN(STR_SAVE_AND_EXIT),
184      flags  = INTERACTIVE| RESET_REQUIRED,
185      key    = KEY_VALUE_SAVE_AND_EXIT_PK;
186
187    goto FORMID_SECURE_BOOT_OPTION_FORM,
188      prompt = STRING_TOKEN(STR_NO_SAVE_AND_EXIT),
189      help   = STRING_TOKEN(STR_NO_SAVE_AND_EXIT),
190      flags  = INTERACTIVE,
191      key    = KEY_VALUE_NO_SAVE_AND_EXIT_PK;
192
193  endform;
194
195  //
196  // ##5 Form: 'KEK Options'
197  //
198  form formid = FORMID_SECURE_BOOT_KEK_OPTION_FORM,
199    title  = STRING_TOKEN(STR_SECURE_BOOT_KEK_OPTION);
200
201    //
202    // Display of 'Enroll KEK'
203    //
204    goto FORMID_ENROLL_KEK_FORM,
205         prompt = STRING_TOKEN(STR_ENROLL_KEK),
206         help   = STRING_TOKEN(STR_ENROLL_KEK_HELP),
207         flags  = INTERACTIVE;
208
209    subtitle text = STRING_TOKEN(STR_NULL);
210
211    //
212    // Display of 'Delete KEK'
213    //
214    goto FORMID_DELETE_KEK_FORM,
215         prompt = STRING_TOKEN(STR_DELETE_KEK),
216         help   = STRING_TOKEN(STR_DELETE_KEK_HELP),
217         flags  = INTERACTIVE,
218         key    = KEY_DELETE_KEK;
219
220    subtitle text = STRING_TOKEN(STR_NULL);
221  endform;
222
223  //
224  // ##6 Form: 'Enroll KEK'
225  //
226  form formid = FORMID_ENROLL_KEK_FORM,
227    title = STRING_TOKEN(STR_ENROLL_KEK_TITLE);
228
229    subtitle text = STRING_TOKEN(STR_NULL);
230
231    goto FORMID_ENROLL_KEK_FORM,
232         prompt = STRING_TOKEN(STR_FORM_ENROLL_KEK_FROM_FILE_TITLE),
233         help   = STRING_TOKEN(STR_FORM_ENROLL_KEK_FROM_FILE_TITLE_HELP),
234         flags  = INTERACTIVE,
235         key    = FORMID_ENROLL_KEK_FORM;
236
237    subtitle text = STRING_TOKEN(STR_NULL);
238    label FORMID_ENROLL_KEK_FORM;
239    label LABEL_END;
240    subtitle text = STRING_TOKEN(STR_NULL);
241
242    string  varid   = SECUREBOOT_CONFIGURATION.SignatureGuid,
243            prompt  = STRING_TOKEN(STR_SECURE_BOOT_SIGNATURE_GUID),
244            help    = STRING_TOKEN(STR_SECURE_BOOT_SIGNATURE_GUID_HELP),
245            flags   = INTERACTIVE,
246            key     = KEY_SECURE_BOOT_KEK_GUID,
247            minsize = SECURE_BOOT_GUID_SIZE,
248            maxsize = SECURE_BOOT_GUID_SIZE,
249    endstring;
250
251    subtitle text = STRING_TOKEN(STR_NULL);
252    subtitle text = STRING_TOKEN(STR_NULL);
253
254    goto FORMID_SECURE_BOOT_OPTION_FORM,
255      prompt = STRING_TOKEN(STR_SAVE_AND_EXIT),
256      help   = STRING_TOKEN(STR_SAVE_AND_EXIT),
257      flags  = INTERACTIVE,
258      key    = KEY_VALUE_SAVE_AND_EXIT_KEK;
259
260    goto FORMID_SECURE_BOOT_OPTION_FORM,
261      prompt = STRING_TOKEN(STR_NO_SAVE_AND_EXIT),
262      help   = STRING_TOKEN(STR_NO_SAVE_AND_EXIT),
263      flags  = INTERACTIVE,
264      key    = KEY_VALUE_NO_SAVE_AND_EXIT_KEK;
265
266  endform;
267
268  //
269  // ##7 Form: 'Delete KEK'
270  //
271  form formid = FORMID_DELETE_KEK_FORM,
272    title  = STRING_TOKEN(STR_DELETE_KEK_TITLE);
273
274    label LABEL_KEK_DELETE;
275    label LABEL_END;
276
277    subtitle text = STRING_TOKEN(STR_NULL);
278
279  endform;
280
281  //
282  // ##8 Form: 'DB Options'
283  //
284  form formid = FORMID_SECURE_BOOT_DB_OPTION_FORM,
285    title = STRING_TOKEN(STR_SECURE_BOOT_DB_OPTION);
286
287    subtitle text = STRING_TOKEN(STR_NULL);
288
289    goto SECUREBOOT_ENROLL_SIGNATURE_TO_DB,
290    prompt = STRING_TOKEN (STR_SECURE_BOOT_ENROLL_SIGNATURE),
291    help   = STRING_TOKEN (STR_SECURE_BOOT_ENROLL_SIGNATURE),
292    flags  = 0;
293
294    subtitle text = STRING_TOKEN(STR_NULL);
295
296    goto SECUREBOOT_DELETE_SIGNATURE_FROM_DB,
297    prompt = STRING_TOKEN (STR_SECURE_BOOT_DELETE_SIGNATURE),
298    help   = STRING_TOKEN (STR_SECURE_BOOT_DELETE_SIGNATURE),
299    flags  = INTERACTIVE,
300    key    = SECUREBOOT_DELETE_SIGNATURE_FROM_DB;
301
302  endform;
303
304  //
305  // ##9 Form: 'DBX Options'
306  //
307  form formid = FORMID_SECURE_BOOT_DBX_OPTION_FORM,
308    title = STRING_TOKEN(STR_SECURE_BOOT_DBX_OPTION);
309
310    subtitle text = STRING_TOKEN(STR_NULL);
311
312    goto SECUREBOOT_ENROLL_SIGNATURE_TO_DBX,
313    prompt = STRING_TOKEN (STR_SECURE_BOOT_ENROLL_SIGNATURE),
314    help   = STRING_TOKEN (STR_SECURE_BOOT_ENROLL_SIGNATURE),
315    flags  = 0;
316
317    subtitle text = STRING_TOKEN(STR_NULL);
318
319    goto SECUREBOOT_DELETE_SIGNATURE_FROM_DBX,
320    prompt = STRING_TOKEN (STR_SECURE_BOOT_DELETE_SIGNATURE),
321    help   = STRING_TOKEN (STR_SECURE_BOOT_DELETE_SIGNATURE),
322    flags  = INTERACTIVE,
323    key    = SECUREBOOT_DELETE_SIGNATURE_FROM_DBX;
324
325  endform;
326
327  //
328  // ##9 Form: 'DBT Options'
329  //
330  form formid = FORMID_SECURE_BOOT_DBT_OPTION_FORM,
331    title = STRING_TOKEN(STR_SECURE_BOOT_DBT_OPTION);
332
333    subtitle text = STRING_TOKEN(STR_NULL);
334
335    goto SECUREBOOT_ENROLL_SIGNATURE_TO_DBT,
336    prompt = STRING_TOKEN (STR_SECURE_BOOT_ENROLL_SIGNATURE),
337    help   = STRING_TOKEN (STR_SECURE_BOOT_ENROLL_SIGNATURE),
338    flags  = 0;
339
340    subtitle text = STRING_TOKEN(STR_NULL);
341
342    goto SECUREBOOT_DELETE_SIGNATURE_FROM_DBT,
343    prompt = STRING_TOKEN (STR_SECURE_BOOT_DELETE_SIGNATURE),
344    help   = STRING_TOKEN (STR_SECURE_BOOT_DELETE_SIGNATURE),
345    flags  = INTERACTIVE,
346    key    = SECUREBOOT_DELETE_SIGNATURE_FROM_DBT;
347
348  endform;
349
350  //
351  // Form: 'Delete Signature' for DB Options.
352  //
353  form formid = SECUREBOOT_DELETE_SIGNATURE_FROM_DB,
354    title  = STRING_TOKEN(STR_SECURE_BOOT_DELETE_SIGNATURE);
355
356    label LABEL_DB_DELETE;
357    label LABEL_END;
358    subtitle text = STRING_TOKEN(STR_NULL);
359
360  endform;
361
362  //
363  // Form: 'Delete Signature' for DBX Options.
364  //
365  form formid = SECUREBOOT_DELETE_SIGNATURE_FROM_DBX,
366    title  = STRING_TOKEN(STR_SECURE_BOOT_DELETE_SIGNATURE);
367
368    label LABEL_DBX_DELETE;
369    label LABEL_END;
370    subtitle text = STRING_TOKEN(STR_NULL);
371
372  endform;
373
374  //
375  // Form: 'Delete Signature' for DBT Options.
376  //
377  form formid = SECUREBOOT_DELETE_SIGNATURE_FROM_DBT,
378    title  = STRING_TOKEN(STR_SECURE_BOOT_DELETE_SIGNATURE);
379
380    label LABEL_DBT_DELETE;
381    label LABEL_END;
382    subtitle text = STRING_TOKEN(STR_NULL);
383
384  endform;
385
386  //
387  // Form: 'Enroll Signature' for DB options.
388  //
389  form formid = SECUREBOOT_ENROLL_SIGNATURE_TO_DB,
390    title = STRING_TOKEN(STR_SECURE_BOOT_ENROLL_SIGNATURE);
391
392    subtitle text = STRING_TOKEN(STR_NULL);
393
394    goto SECUREBOOT_ENROLL_SIGNATURE_TO_DB,
395         prompt = STRING_TOKEN(STR_SECURE_BOOT_ADD_SIGNATURE_FILE),
396         help = STRING_TOKEN(STR_SECURE_BOOT_ADD_SIGNATURE_FILE),
397         flags = INTERACTIVE,
398         key = SECUREBOOT_ENROLL_SIGNATURE_TO_DB;
399
400    subtitle text = STRING_TOKEN(STR_NULL);
401    label SECUREBOOT_ENROLL_SIGNATURE_TO_DB;
402    label LABEL_END;
403    subtitle text = STRING_TOKEN(STR_NULL);
404
405    string  varid   = SECUREBOOT_CONFIGURATION.SignatureGuid,
406            prompt  = STRING_TOKEN(STR_SECURE_BOOT_SIGNATURE_GUID),
407            help    = STRING_TOKEN(STR_SECURE_BOOT_SIGNATURE_GUID_HELP),
408            flags   = INTERACTIVE,
409            key     = KEY_SECURE_BOOT_SIGNATURE_GUID_DB,
410            minsize = SECURE_BOOT_GUID_SIZE,
411            maxsize = SECURE_BOOT_GUID_SIZE,
412    endstring;
413
414    subtitle text = STRING_TOKEN(STR_NULL);
415    subtitle text = STRING_TOKEN(STR_NULL);
416
417    goto FORMID_SECURE_BOOT_OPTION_FORM,
418         prompt = STRING_TOKEN(STR_SAVE_AND_EXIT),
419         help   = STRING_TOKEN(STR_SAVE_AND_EXIT),
420         flags  = INTERACTIVE,
421         key    = KEY_VALUE_SAVE_AND_EXIT_DB;
422
423    goto FORMID_SECURE_BOOT_OPTION_FORM,
424         prompt = STRING_TOKEN(STR_NO_SAVE_AND_EXIT),
425         help   = STRING_TOKEN(STR_NO_SAVE_AND_EXIT),
426         flags  = INTERACTIVE,
427         key    = KEY_VALUE_NO_SAVE_AND_EXIT_DB;
428
429  endform;
430
431  //
432  // Form: 'Enroll Signature' for DBX options.
433  //
434  form formid = SECUREBOOT_ENROLL_SIGNATURE_TO_DBX,
435    title = STRING_TOKEN(STR_SECURE_BOOT_ENROLL_SIGNATURE);
436
437    subtitle text = STRING_TOKEN(STR_NULL);
438
439    goto SECUREBOOT_ENROLL_SIGNATURE_TO_DBX,
440         prompt = STRING_TOKEN(STR_SECURE_BOOT_ADD_SIGNATURE_FILE),
441         help = STRING_TOKEN(STR_SECURE_BOOT_ADD_SIGNATURE_FILE),
442         flags = INTERACTIVE,
443         key = SECUREBOOT_ENROLL_SIGNATURE_TO_DBX;
444
445    label SECUREBOOT_ENROLL_SIGNATURE_TO_DBX;
446    label LABEL_END;
447    subtitle text = STRING_TOKEN(STR_NULL);
448
449    string  varid   = SECUREBOOT_CONFIGURATION.SignatureGuid,
450            prompt  = STRING_TOKEN(STR_SECURE_BOOT_SIGNATURE_GUID),
451            help    = STRING_TOKEN(STR_SECURE_BOOT_SIGNATURE_GUID_HELP),
452            flags   = INTERACTIVE,
453            key     = KEY_SECURE_BOOT_SIGNATURE_GUID_DBX,
454            minsize = SECURE_BOOT_GUID_SIZE,
455            maxsize = SECURE_BOOT_GUID_SIZE,
456    endstring;
457
458    oneof name = SignatureFormatInDbx,
459          varid       = SECUREBOOT_CONFIGURATION.CertificateFormat,
460          prompt      = STRING_TOKEN(STR_DBX_CERTIFICATE_FORMAT_PROMPT),
461          help        = STRING_TOKEN(STR_DBX_CERTIFICATE_FORMAT_HELP),
462          option text = STRING_TOKEN(STR_DBX_CERTIFICATE_FORMAT_SHA256), value = 0x2, flags = DEFAULT;
463          option text = STRING_TOKEN(STR_DBX_CERTIFICATE_FORMAT_SHA384), value = 0x3, flags = 0;
464          option text = STRING_TOKEN(STR_DBX_CERTIFICATE_FORMAT_SHA512), value = 0x4, flags = 0;
465          option text = STRING_TOKEN(STR_DBX_CERTIFICATE_FORMAT_RAW), value = 0x5, flags = 0;
466    endoneof;
467
468    suppressif ideqval SECUREBOOT_CONFIGURATION.CertificateFormat == 5;
469        checkbox varid  = SECUREBOOT_CONFIGURATION.AlwaysRevocation,
470               prompt = STRING_TOKEN(STR_ALWAYS_CERTIFICATE_REVOCATION_PROMPT),
471               help   = STRING_TOKEN(STR_ALWAYS_CERTIFICATE_REVOCATION_HELP),
472               flags  = INTERACTIVE,
473        endcheckbox;
474
475        suppressif ideqval SECUREBOOT_CONFIGURATION.AlwaysRevocation == 1;
476            date  varid  = SECUREBOOT_CONFIGURATION.RevocationDate,
477                  prompt = STRING_TOKEN(STR_CERTIFICATE_REVOCATION_DATE_PROMPT),
478                  help   = STRING_TOKEN(STR_CERTIFICATE_REVOCATION_DATE_HELP),
479                  flags  = STORAGE_NORMAL,
480            enddate;
481
482            time varid   = SECUREBOOT_CONFIGURATION.RevocationTime,
483                 prompt  = STRING_TOKEN(STR_CERTIFICATE_REVOCATION_TIME_PROMPT),
484                 help    = STRING_TOKEN(STR_CERTIFICATE_REVOCATION_TIME_HELP),
485                 flags   = STORAGE_NORMAL,
486            endtime;
487        endif;
488    endif;
489
490    subtitle text = STRING_TOKEN(STR_NULL);
491    subtitle text = STRING_TOKEN(STR_NULL);
492
493    goto FORMID_SECURE_BOOT_OPTION_FORM,
494         prompt = STRING_TOKEN(STR_SAVE_AND_EXIT),
495         help   = STRING_TOKEN(STR_SAVE_AND_EXIT),
496         flags  = INTERACTIVE,
497         key    = KEY_VALUE_SAVE_AND_EXIT_DBX;
498
499    goto FORMID_SECURE_BOOT_OPTION_FORM,
500         prompt = STRING_TOKEN(STR_NO_SAVE_AND_EXIT),
501         help   = STRING_TOKEN(STR_NO_SAVE_AND_EXIT),
502         flags  = INTERACTIVE,
503         key    = KEY_VALUE_NO_SAVE_AND_EXIT_DBX;
504
505  endform;
506
507  //
508  // Form: 'Enroll Signature' for DBT options.
509  //
510  form formid = SECUREBOOT_ENROLL_SIGNATURE_TO_DBT,
511    title = STRING_TOKEN(STR_SECURE_BOOT_ENROLL_SIGNATURE);
512
513    subtitle text = STRING_TOKEN(STR_NULL);
514
515    goto SECUREBOOT_ENROLL_SIGNATURE_TO_DBT,
516         prompt = STRING_TOKEN(STR_SECURE_BOOT_ADD_SIGNATURE_FILE),
517         help = STRING_TOKEN(STR_SECURE_BOOT_ADD_SIGNATURE_FILE),
518         flags = INTERACTIVE,
519         key = SECUREBOOT_ENROLL_SIGNATURE_TO_DBT;
520
521    subtitle text = STRING_TOKEN(STR_NULL);
522    label SECUREBOOT_ENROLL_SIGNATURE_TO_DBT;
523    label LABEL_END;
524    subtitle text = STRING_TOKEN(STR_NULL);
525
526    string  varid   = SECUREBOOT_CONFIGURATION.SignatureGuid,
527            prompt  = STRING_TOKEN(STR_SECURE_BOOT_SIGNATURE_GUID),
528            help    = STRING_TOKEN(STR_SECURE_BOOT_SIGNATURE_GUID_HELP),
529            flags   = INTERACTIVE,
530            key     = KEY_SECURE_BOOT_SIGNATURE_GUID_DBT,
531            minsize = SECURE_BOOT_GUID_SIZE,
532            maxsize = SECURE_BOOT_GUID_SIZE,
533    endstring;
534
535    subtitle text = STRING_TOKEN(STR_NULL);
536    subtitle text = STRING_TOKEN(STR_NULL);
537
538    goto FORMID_SECURE_BOOT_OPTION_FORM,
539         prompt = STRING_TOKEN(STR_SAVE_AND_EXIT),
540         help   = STRING_TOKEN(STR_SAVE_AND_EXIT),
541         flags  = INTERACTIVE,
542         key    = KEY_VALUE_SAVE_AND_EXIT_DBT;
543
544    goto FORMID_SECURE_BOOT_OPTION_FORM,
545         prompt = STRING_TOKEN(STR_NO_SAVE_AND_EXIT),
546         help   = STRING_TOKEN(STR_NO_SAVE_AND_EXIT),
547         flags  = INTERACTIVE,
548         key    = KEY_VALUE_NO_SAVE_AND_EXIT_DBT;
549
550  endform;
551
552endformset;