Skip to content

Normalize decoded Edwards25519 coordinates before arithmetic - #50

Merged
ladnir merged 3 commits into
masterfrom
codex/normalize-edwards-decoding
Sep 7, 2026
Merged

ladnir merged 3 commits into
masterfrom
codex/normalize-edwards-decoding

Conversation

@ladnir

@ladnir ladnir commented Sep 7, 2026

Copy link
Copy Markdown
Owner

A decoded point could round-trip correctly through the assembly backend yet produce an incorrect cofactor multiple. This caused a deterministic SimplestOT mismatch at index 7,200 in a 38,448-OT batch and subsequently broke a RingLPN correlation.

Normalize x with one four-lane field multiplication after decoding's sign selection, before subsequent point arithmetic. Add a regression for the failing point with both signs in all eight lanes, comparing cofactor clearing against the scalar implementation.

Validation:

  • The added regression fails before the fix and passes afterward.
  • GCC 13/ASan: 33 focused curve, base-OT, RingLPN, RevCuckoo, and AnyField tests passed; 3 configuration skips.
  • The standalone 38,448-OT SimplestOT reproducer now reports zero mismatches.
  • Windows: both Edwards25519 test groups and RingLPN base generation passed.

Consumed by osu-crypto/libOTe#188 and its stacked PRs #189 and #190.

@ladnir
ladnir marked this pull request as ready for review September 7, 2026 04:57
@ladnir
ladnir merged commit 2c8fecc into master Sep 7, 2026
9 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