Hi Star,

before you merged the two separate variable drivers in July 2015, each
of the authenticated and the non-authenticated variable drivers would
enforce its own GUID in the VARIABLE_STORE_HEADER.Signature field --
gEfiAuthenticatedVariableGuid and gEfiVariableGuid.

The consequence was that if you built a firmware with one of these
drivers included, and the varstore that you passed it contained the
*other* GUID (because it was originally formatted for the *other*
driver), then the driver actually included in the firmware triggered an
ASSERT().

Now, the unified driver seems to handle the varstore format dynamically.
I just did a quick check:
- I built OVMF with -D SECURE_BOOT_ENABLE first,
- created a new varstore from the appropriate template (with
  gEfiAuthenticatedVariableGuid),
- then rebuilt OVMF with SECURE_BOOT_ENABLE disabled,
- and booted it on top of the preexistent varstore.

It didn't fail. It would have failed before.

So, my question is: is this intended and supported behavior (that is,
going from a Secure Boot-capable build to a Secure Boot-disabled build,
while preserving the contents & functionality of the variables), or just
a lucky coincidence that results from the design choices you made while
unifying the variable drivers?

(The other direction, that is, going from SB-incapable to SB-capable
with the same varstore, is not relevant for us; and it wouldn't be
secure anyway.)

Thanks,
Laszlo
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to