Skip to content

Improve supply chain reproducibility and traceability for binary blobs and C headers #65

Description

@skerkour

Hello,
The README states:

espradio uses the binary blobs provided by Espressif...

It could be great if we added better traceability for the binary blobs. As of now the blobs could have been modified anywhere in the process and we wouldn't know.

I guess that they come from repos like https://github.com/espressif/esp32-wifi-lib but as of now there is no way to be 100% sure.

I would like to suggest the addition of a tool (go script, lets call it blosbmanager) to automatically fetch the blobs for a given git commit of the upstream repo(s), hash all the blobs with SHA-512 and generate a checksums.txt file and README.md file in the blobs folder to indicate which upstream commits have been used.

The content of blobs/checksums.txt would look like:

58a82a3f8d8941b7c7e0e2db45003d1470f75ba80638821945cc54732b180e9ac163fbfba4701b701499685438aa519ad918e2d00aec30d51e250307223b3f11  libs/esp32/libcore.a
...

We could also add a verify command to the script to fetch the binaries from upstream (from the pinned commit) and compare the hashes with the local binaries. This verify command would run as a CI workflow.

Ideally we should be able to verify hashes and signatures directly from Espressif, but I couldn't find anything in their repos.

It would look like: https://nodejs.org/dist/v26.7.0/SHASUMS256.txt

Let me know what you think. I may be able to work on it if we define a clear scope and spec.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions