Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The SWTPM UART transport configures the TTY with
VMIN=0,VTIME=200, soread()returns 0 after 20 seconds with no data.SwTpmReceive()treated that zero-byte read as EOF and failed withTPM_RC_FAILURE. Any TPM command that took longer than one VTIME period failed on the host even though the device completed it andWOLFTPM_SWTPM_UART_RX_TIMEOUT_SECSallowed longer.RSA-2048 primary key generation on an MCU fwTPM can take that long. Because a primary key is derived from the NV seed, a given board then failed the same command every time.
Fix
SwTpmReceive()- on the UART path a zero-byte read keeps waiting until the cumulative timeout instead of returning EOF; socket transports are unchanged.WOLFTPM_SWTPM_UART_RX_TIMEOUT_SECSdefault raised from 30 to 60 seconds; it remains overridable.The cumulative timeout still applies per receive call, as before.
Testing
wrap/wrap_testpasses with an RSA primary that takes longer than one VTIME period, andcapsandexamples/pqcpass.--enable-swtpm=uartand the socket swtpm builds.