Skip to content

feat(clearsign): verify signed transaction metadata on device - #345

Closed
BitHighlander wants to merge 1 commit into
feature/715-03-frame-arenafrom
feature/715-04-clearsign-metadata
Closed

feat(clearsign): verify signed transaction metadata on device#345
BitHighlander wants to merge 1 commit into
feature/715-03-frame-arenafrom
feature/715-04-clearsign-metadata

Conversation

@BitHighlander

Copy link
Copy Markdown
Owner

7.15 review stack position 04/17.

This PR is intentionally one coherent commit, based on feature/715-03-frame-arena, for individual auditing.
The full stack is linear from the clean fork develop at 1af2ffe.

Review scope: feat(clearsign): verify signed transaction metadata on device.

The preserved pre-restage candidate remains available at preserve/alpha-2026-08-05.

Adds the signed-metadata engine: a host may supply a description of what an
EVM transaction does (contract alias, method, argument labels), and the device
displays it only if the blob carries a signature from a trust anchor it already
holds. Unsigned or wrongly signed metadata is ignored — it can never turn a
blind-signing prompt into a friendly one.

- Anchor verification over secp256k1 with the schema bound to the request, so a
  signature captured from one transaction cannot dress up another.
- Runtime signer table only; nothing is persisted to public flash. A rogue
  entry surviving a reboot would suppress the raw-data screen, which is exactly
  the failure this design refuses.
- tiny-json gains the bounds needed to parse metadata safely on device.
- unittests/firmware/signed_metadata.cpp covers the accept/reject matrix,
  including malformed blobs and signature/schema mismatches.

Message plumbing and the Ethereum call sites arrive in the clear-sign EVM
branch; this commit is the engine and its tests only.
@BitHighlander

Copy link
Copy Markdown
Owner Author

Superseded by the smaller audit-ready 7.15 stack: #359 release foundation, #360 authenticated clear-signing, #361 recovery and entropy, #362 Zcash Orchard, #363 chain integrations, and #364 Bitcoin/release security. All release changes remain preserved in the replacement branches and preservation tags. The replacement aggregate was tree-verified against the prior release and passed the local CI-equivalent container suite (405 firmware, 2 board, 18 crypto, and 7 Pallas constant-time tests). GitHub-hosted checks have been explicitly dispatched and are currently queued.

@BitHighlander
BitHighlander deleted the feature/715-04-clearsign-metadata branch August 9, 2026 04:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant