lowRISC / lowRISC/opentitan

[silicon_creator] Make parallel ECDSA/SPX test use more bazel rules instead of checked-in binaries

Open
#28,971 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
SystemVerilog
Stars
3.6k
Forks
1.1k
Avg merge
2d 22h
Merged PRs (30d)
141

Description

> There are several checked-in files with comments on how to generate them. I think it would better if those were generated by bazel `genrule` commands to ensure that the commands stay up-to-date with the tooling. Any thoughts? @cfrantz

In theory, I agree. However:
- The original data blob was generated by reading `/dev/random`. Regenerating it is not deterministic.
- There is a random component in both ECDSA and SPX signatures. Again, regenerating them isn't deterministic. We have a similar issue with every signed image produced in the codebase. In those cases, a change in the source code is more relevant than any randomness in a signature.

It would be acceptable to me to generate the original data blob once and then automate the signing and creation of hexdumped header resources (bonus points if you want to write a bazel rule to handle the "binary to header" conversions).

_Originally posted by @cfrantz in https://github.com/lowRISC/opentitan/issues/28948#issuecomment-3666657319_

Contributor guide

Open the contributing guide

Research direction

Start by locating the parallel ECDSA/SPX test and its checked-in binaries, then read the comments describing how the data and signature resources are generated. Determine how Bazel genrule commands could automate signing and binary-to-header conversion while preserving the original data blob. Done means the relevant generated resources no longer need manual regeneration and the test still passes.

Written by the indexing model from the issue text.

Assessment

Domain
build-system, cryptography, testing
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.