Align qos_enclave build with mono + add reproduction instructions
#515
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.
Summary & Motivation (Problem vs. Solution)
Currently our internal mono repo doesn't build qos_enclave in the exact same way than this repo does. Subtle differences lead to mismatch in digests, which means external users who do no have mono access cannot verify remote attestations meaningfully.
Something I didn't expect would have an impact on the final digest:
yields a different digest than:
And another surprising thing:
Adding these also alters the final digests.
Shoutout to @lrvick who put me on the right track and noticed, by using a combo of andrcmdr/aws-nitro-enclaves-image-format-build-extract and diffoscope, that the init binary was the thing causing the EIF file to be different.
How I Tested These Changes
make out/qos_enclave/index.jsonlike...100 times.