Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

efi: update go-efilib to v0.9.6 #304

Closed

Conversation

chrisccoulson
Copy link
Collaborator

@chrisccoulson chrisccoulson commented May 30, 2024

(Draft for now because it depends on #303)

This adds a new function for mocking the variable backend, which will
be required in a future PR which uses new functions from go-efilib that
wrap around ReadVariable, and simplifies mocking in tests quite a bit.

This adds profiles for PCR0 (platform firmware) and PCR2 (host
firmware that runs from adapter cards or firmware that runs on
embedded controllers)
This changes a few types, replaces pcrProfileFlags with pcrFlags
and introduces a PCRProfileEnablePCRsOption interface which is
implemented by the existing profile options and will be implemenented by
a new composite option returned by the detection code.
We copy the EV_SEPARATOR events from the firmware log because it can
be one of two valid values. But we should be aborting early if any of
these separators indicate that an error occurred in firmware rather
than continuing to build a profile.
Some newer laptops are loading endpoint management applications that are
shipped with firmware and measuring these to PCR4 in the OS-present
phase. This currently causes us to produce invalid profiles because
everything after the separator gets dropped from the predicted
measurements.

A future PR will provide support for detecting compatibility for FDE,
with an option for detecting and disallowing these agents. In most cases,
the agents should be disabled (and it's possible to disable Absolute
from userspace on Dell laptops), but we should add support here for any
edge cases where these agents cannot be disabled.
This adds a new function for mocking the variable backend, which will
be required in a future PR which uses new functions from go-efilib that
wrap around ReadVariable but where we want to be able to override
the HostEnvironment in production code.
@chrisccoulson
Copy link
Collaborator Author

Closing this because it gets updated as part of #303

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant