Skip to content

fix(ffi): dispatch P-256 signing to the matching ECDSA curve - #6

Merged
canesin merged 5 commits into
mainfrom
staging/pr-5
Oct 15, 2026
Merged

canesin merged 5 commits into
mainfrom
staging/pr-5

Conversation

@canesin

@canesin canesin commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

P-256 ECDSA shares failed in tss_sign_new with ProtocolMismatch because all DKLs23 sessions used the secp256k1 constructor. Dispatch by ciphersuite so P-256 uses new_dkls_r1 and secp256k1 retains new_dkls.

This staging branch merges #5 and adds separate follow-up commits for formatting, C ABI regression tests, the benchmark dependency audit fix, and reproducible fuzz dependency resolution. Both ECDSA curves exercise two-party DKG, signing, signature verification, changed-message rejection, and key-handle ownership.

Validation:

  • RED: the new P-256 test fails on the main-branch implementation with ProtocolMismatch; secp256k1 passes.
  • Formatting and independent full-diff review pass.
  • All 192 workspace tests pass in debug and release, including both new curve regressions. Clippy with warnings denied and benchmark smoke tests pass. Affected FFI release tests and Clippy were rerun after the lockfile update.
  • Independent review found no actionable defects in the full diff or the dependency/workflow follow-ups.
  • The standalone fuzz workspace previously resolved incompatible upstream FROST dependencies. CI now seeds it from the tested root lockfile. All three local 60-second fuzz smoke runs pass (deserialization, signing, and handles); final-head CI passes build/tests, audit, all fuzz targets, benchmarks, generated headers, ARM64, Android, and CodeQL. Only non-required coverage remains in progress at merge time.
  • Updated only the benchmark dependency crossbeam-epoch from 0.9.18 to 0.9.20 to resolve RUSTSEC-2026-0204. cargo audit now reports zero vulnerabilities; existing unmaintained/unsound/yanked dependency warnings remain.

Closes #4. Supersedes #5.

@canesin
canesin merged commit 030fffb into main Oct 15, 2026
17 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.

tss_new_sign doesn't properly select secp256r1 / NIST P-256

2 participants