This PR adds new pcr measurements to the TCG log. A measurement of PFM, CFM and PCD IDs is added to the PCR store.
Also, measurements of PFM and PCD platform IDs is added to PCR store.
Related work items: #457, #481
The Message Unseal command was updated to support:
- ECDH seeds
- Sealing to multiple PCRs
- Different RSA padding schemes
The Cerberus protocol version was updated to version 3.
Align the code with the protocol spec. At a high level this includes:
- Defining structures for each command and adding unit tests to verify these structures against the spec definition.
- Adjusting message and packet sizes to match spec definitions.
- Using capabilities information to determine response payload sizes.
- Refactoring the command processing unit tests to ensure better, more maintainable test coverage.
Note: The Message Unseal command has not been updated. This will be updated to match the spec as a separate task.
Fix the issuer name when creating a signed certificate using the RIoT reference implementation. Added an additional unit test to cover scenario where a cert chain with at least three certificates is created.
If host flash initialization fails with errors that indicates the flash is not compatible with the FW, bail from POR processing and mark the flash as unsupported. The system will be allowed to boot in bypass mode in this case, and can never be activated.
More extensive used of the SFDP tables have been utilized to determine behavioral differences between different devices and account for the SPI driver. Most of the vendor-specific flows have been removed in favor of SFDP. Updates include:
- QSPI enable/disable
- Block protect clear
- Enter/exit 4-byte address mode
- Soft reset support
- Deep powerdown support
- Write in progress polling
- Status register writes, including different write enables
The only vendor-specific flows that remain are pieces that cannot be determined from SFDP tables:
- Current address mode
- Configuring output drive strength
Related work items: #474