Skip to content

feat(zcash): shielded message handlers, tests and constant-time gates - #348

Closed
BitHighlander wants to merge 1 commit into
feature/715-06-storage-bip85-recoveryfrom
feature/715-07-zcash-wiring-tests
Closed

feat(zcash): shielded message handlers, tests and constant-time gates#348
BitHighlander wants to merge 1 commit into
feature/715-06-storage-bip85-recoveryfrom
feature/715-07-zcash-wiring-tests

Conversation

@BitHighlander

Copy link
Copy Markdown
Owner

7.15 review stack position 07/17.

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

Review scope: feat(zcash): shielded message handlers, tests and constant-time gates.

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

Wires the Orchard engine to the host and puts it under test:

- ZcashSignPCZT / ZcashPCZTAction / ZcashGetOrchardFVK / transparent input and
  output / ZcashDisplayAddress handlers, registered privacy-guarded so the
  bitcoin-only image exposes none of them.
- unittests/firmware/zcash.cpp covers PCZT parsing, action signing and unified
  address encoding; a second binary links the engine against the host crypto
  so the Orchard paths run under the normal unit-test job.
- unittests/crypto/pallas_ct.cpp plus tools/check_pallas_api_boundary.py and
  tools/check_pallas_ct_disassembly.py enforce the constant-time contract at
  three levels: operation counters in the test build, an API boundary check on
  the sources, and a disassembly scan of the shipped ELF. CI runs the pinned
  fork's Pallas suite under Valgrind and ASan/UBSan as well.
- docs/coin-integration documents the PCZT flow, on-device unified addresses
  and the clear-sign handoff.
@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-07-zcash-wiring-tests 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