-
Notifications
You must be signed in to change notification settings - Fork 100
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
Add TpmTestingPkg and TPM Replay feature [Rebase & FF] #287
Add TpmTestingPkg and TPM Replay feature [Rebase & FF] #287
Conversation
This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation. |
646519f
to
1fb7882
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A large PR :). I actively reviewed the C code (in the overrides just your MU_CHANGE tags, obv). The python I skimmed as the eyes were getting tired. Worth another reviewer going deeper on the python.
TpmTestingPkg/Library/BaseFvMeasurementExclusionLibNull/BaseFvMeasurementExclusionLibNull.c
Show resolved
Hide resolved
TpmTestingPkg/Overrides/Library/DxeTpm2MeasureBootLib/DxeTpm2MeasureBootLib.c
Outdated
Show resolved
Hide resolved
TpmTestingPkg/TpmReplayPeiDxe/InputChannel/TpmReplayInputChannelInternal.h
Outdated
Show resolved
Hide resolved
TpmTestingPkg/TpmReplayPeiDxe/InputChannel/TpmReplayUefiVariable.c
Outdated
Show resolved
Hide resolved
TpmTestingPkg/TpmReplayPeiDxe/InputChannel/TpmReplayUefiVariableDxe.c
Outdated
Show resolved
Hide resolved
TpmTestingPkg/TpmReplayPeiDxe/InputChannel/TpmReplayUefiVariablePei.c
Outdated
Show resolved
Hide resolved
TpmTestingPkg/TpmReplayPeiDxe/Pei/TpmReplayPeiPlatformFvExclusion.h
Outdated
Show resolved
Hide resolved
TpmTestingPkg/TpmReplayPeiDxe/InputChannel/TpmReplayFfsFileDxe.c
Outdated
Show resolved
Hide resolved
6863ea2
to
b25722e
Compare
Adds a new package that holds TPM testing functionality. Currently, a feature is present called "TPM Replay" that provides the ability to replay TPM measurements from a custom-made event log. The primary purpose is for testing operating system features dependent on TPM measurements. More details about this feature are available in TpmTestingPkg/TpmReplayPeiDxe/Readme.md. This feature is designed to ease platform integration and can be applied to physical and virtual systems. Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
Removes DXE placeholders since they are currenlty not used. This commit is left in source history to show where DXE functionality would hook into the code flows if added in the future. Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
Adds a new tool that allows a user to specify a TPM Event Log in JSON or YAML (validated against a supplied schema) that is transformed into a binary that can be used by the TPM Replay feature. A binary can also be transformed back to a YAML file. This is an initial draft of the tool. Some files or code will likely move to other more generic repos, the schema to a public schema store, and new features are planned to be added as well. For example, some PCR7 events will allow individual UEFI variable details to be specified in the input JSON/YAML file to make their creation more clear. While this is planned, the initial draft provides sufficient functionality to use with the feature and share with others now. Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
Includes the package in the pipeline build. Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
b25722e
to
31f54e4
Compare
Description
Contains four commits:
TpmTestingPkg: Add initial package
Adds a new package that holds TPM testing functionality.
Currently, a feature is present called "TPM Replay" that provides
the ability to replay TPM measurements from a custom-made event log.
The primary purpose is for testing operating system features
dependent on TPM measurements. More details about this feature are
available in TpmTestingPkg/TpmReplayPeiDxe/Readme.md.
This feature is designed to ease platform integration and can be
applied to physical and virtual systems.
TpmTestingPkg: Remove DXE functionality
Removes DXE placeholders since they are currently not used. This
commit is left in source history to show where DXE functionality
would hook into the code flows if added in the future.
TpmTestingPkg: Add TPM Replay tool
Adds a new tool that allows a user to specify a TPM Event Log in
JSON or YAML (validated against a supplied schema) that is transformed
into a binary that can be used by the TPM Replay feature.
A binary can also be transformed back to a YAML file.
This is an initial draft of the tool. Some files or code will likely
move to other more generic repos, the schema to a public schema
store, and new features are planned to be added as well. For example,
some PCR7 events will allow individual UEFI variable details to be
specified in the input JSON/YAML file to make their creation more
clear.
While this is planned, the initial draft provides sufficient
functionality to use with the feature and share with others now.
.azurepipelines: Add TpmTestingPkg
Includes the package in the pipeline build.
Rebalances the build matrix taking the new package into account.
flow, or firmware?
validation improvement, ...
in build or boot behavior?
a function in a new library class in a pre-existing module, ...
outside direct code modifications (and comments)?
on an a separate Web page, ...
How This Was Tested
Example: YAML to Binary and Binary Back to YAML
(click the image to enlarge it)
Example: Viewing the Replayed Log in Windows
Integration Instructions
N/A