[top_darjeeling] ECDSA enablement
@sameo is already working on this.
Since Jun 4, 2024.
- Dominant language
- SystemVerilog
- Stars
- 3.6k
- Forks
- 1.1k
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 141
Description
## Problem Statement
Darjeeling still relies on RSA and SPHINCS for signature verification and attestation.
For security reasons and for saving ROM and OTP space, Earlgrey, from the `master` branch, switched to ECDSA (p256 and p384) and dropped RSA entirely.
Darjeeling should also initiate that migration from RSA to ECDSA.
## Plan
There are several components that must be synced from `master` in order to fully support ECDSA and drop RSA:
1. `hw/ip/otbn`: The ECDSA operations (attestation and verification) are offloaded to OTBN and thus we need to sync this subsystem from `master`
2. `sw/otbn`: All the crypto implementation for ECDSA lives there and must be updated.
3. `silicon_creator/sigverify`: The signature verification API and framework now supports ECDSA in `master`.
4. `silicon_creator/otbn_boot_services`: The OTBN operations for secure boot (attestation and verification) have been abstracted into a boot services API.
5. `sw/host/opentitan{tool,lib}`: The host tools in `master` support generating ECDSA keys and signing payloads with those keys
Additionally, the `rom_patch` API should use the boot services to verify ROM patches signatures, and the documentation should be updated accordingly (switch from RSA signatures).
## Steps
* [x] https://github.com/lowRISC/opentitan/issues/23477
* [x] https://github.com/lowRISC/opentitan/issues/23478
* [x] https://github.com/lowRISC/opentitan/issues/23479
* [ ] https://github.com/lowRISC/opentitan/issues/23481
* [ ] https://github.com/lowRISC/opentitan/issues/23482
* [ ] https://github.com/lowRISC/opentitan/issues/23483
* [ ] https://github.com/lowRISC/opentitan/issues/23484
* [ ] https://github.com/lowRISC/opentitan/issues/23485
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.