Skip to content

test(taproot): require physical signing confirmations - #208

Merged
BitHighlander merged 1 commit into
keepkey:reconcile/upstream-syncfrom
BitHighlander:fix/taproot-confirmation-sequence
Aug 3, 2026
Merged

test(taproot): require physical signing confirmations#208
BitHighlander merged 1 commit into
keepkey:reconcile/upstream-syncfrom
BitHighlander:fix/taproot-confirmation-sequence

Conversation

@BitHighlander

Copy link
Copy Markdown
Contributor

Problem

Physical testing of the exact v7.15.0-rc23 full firmware artifact returned a valid 64-byte P2TR Schnorr signature without showing either transaction confirmation on the KeepKey. A P2WPKH control transaction on the same device and transport did require physical approval.

The deterministic P2TR vector checked only the signature bytes, so it could pass without asserting the security-critical button policy.

Change

Pin the complete expected response sequence for the real P2TR-input vector. The device must emit ButtonRequest_ConfirmOutput and then ButtonRequest_SignTx before phase-2 input/output requests and Schnorr signing.

This is a test-only change; it does not alter the wire schema or device protocol.

Verification

  • python3 -m py_compile tests/test_msg_signtx_taproot.py
  • git diff --check
  • Full emulator/integration execution is performed by the firmware PR after pinning this exact SHA.

Hardware evidence

  • Candidate: v7.15.0-rc23, full artifact SHA-256 92b292eb460c462df9084131a67a78f24fd4061b6d11822401dddd47c07c967f
  • P2TR: valid serialization and 64-byte signature, no physical transaction confirmation
  • P2WPKH control: recipient and fee were displayed and physically approved

This PR is intentionally draft until the paired firmware fail-closed guard and exact-head integration run are green.

@BitHighlander
BitHighlander marked this pull request as ready for review August 3, 2026 22:28
@BitHighlander
BitHighlander merged commit 7826459 into keepkey:reconcile/upstream-sync Aug 3, 2026
2 checks passed
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