Skip to content

Conversation

@shenghuliu
Copy link

It is observed that asymmetric handling for CryptHashStart() and CryptHashEnd2B() in _TPM_HASH_START() and _TPM_HASH_END(), where PcrIsAllocated() is applied in _TPM_HASH_END() but not in _TPM_HASH_START(). This causes the device hardware drip issue in FW TPM HW crypto engine support use case, meaning device can't go to sleep due to the HW crypto engine seeing some pending work.

To fix the above issue, a dedicated API ObjectCreateEventSequenceHcrtmDrtm() is created and called in _TPM_HASH_START() for HCRTM/DRTM cases. Inside this newly created API, PcrIsAllocated() is applied in handling CryptHashStart(), so that all hash contexts initialized in _TPM_HASH_START() will be de-initialized in _TPM_HASH_END().

This fix has been tested in FW TPM with HW crypto engine support use case, and the device sleep issue is gone after applying this fix.

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