[DO NOT MERGE] FDO client demo #3859
Draft
+242
−63
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.
Some things to enable an FDO demo which fills in /config/server and /config/root-certificate.pem using Fido Device Onboarding, plus a binary blob of the FDO client from Intel.
This images produced with this PR require that there be an FDO setup since the images do not include /config/server nor /config/root-certificate.pem. But the first three commits can be pushed to master at some point in time since they merely make EVE robust against /config/server and /config/root-certificate.pem not being initially present when the device boots (avoiding log.Fatals in such a case.)
Also, the pkg/pillar/fdo-alpine-3.16/linux-client is a binary blob and in due time it makes sense to either build that from source or pull it from e.g., docker hub.
Last but not least, in a production setup the manufacturer would create the secrets corresponding to the FDO ownership voucher in the TPM, and then the FDO client would read those. For the purposes of making the demo easier (and not rely on TPM clear) they are instead in pkg/pillar/fdo-alpine-3.16/data/