Skip to content

Conversation

@Znurre
Copy link

@Znurre Znurre commented Aug 3, 2024

Removes the validation requiring an event to contain digests for all algorithms as provided by the TCG_EfiSpecIDEvent.

The only thing I can find in the TPM specification is this:

The TCG_EfiSpecIDEvent{} structure contains one or more
TCG_Efi_SpecIdEventAlgorithmSize structures. These contain the algorithmID and
digestSize for the measurement algorithms used by firmware. As consumers of the event
log may not recognize the algorithmID, the digestSize field allows a parser to consume
the events in the log without knowing the implicit size of the algorithm defined by the
algorithmID.

This leads me to believe that this validation is not required by the spec, and it causes otherwise valid TCG logs (such as those produced by Windows) to not be parsed correctly.

There is already code to abort in case an unknown algorithm is encountered, which to me seems like the important part to guard against.

Removes the validation requiring an event to contain digests for all hashes as provided by the TCG_EfiSpecIDEvent.

The only thing I can find in the TPM specification is this:

> The TCG_EfiSpecIDEvent{} structure contains one or more
> TCG_Efi_SpecIdEventAlgorithmSize structures. These contain the algorithmID and3060
> digestSize for the measurement algorithms used by firmware. As consumers of the event
> log may not recognize the algorithmID, the digestSize field allows a parser to consume
> the events in the log without knowing the implicit size of the algorithm defined by the
> algorithmID.

This leads me to believe that this validation is not required by the spec, and it causes otherwise
valid TCG logs (such as those produced by Windows) to not be parsed correctly.

There is already code to abort in case an unknown algorithm is encountered, which to me seems like the
important part to guard against.
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