Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

P-256 ECDSA: Use BoringSSL's WNAF implementation #1759

Draft
wants to merge 7 commits into
base: main
Choose a base branch
from

Commits on Oct 17, 2023

  1. NFC P-256: Add twin_mul method to PublicScalarOps.

    Allow each curve to provide its own `twin_mul` implementation. For now,
    use the same implementation we've been using.
    briansmith committed Oct 17, 2023
    Configuration menu
    Copy the full SHA
    40018e3 View commit details
    Browse the repository at this point in the history
  2. Import ecp_nistz256_points_mul_public from BoringSSL.

    From BoringSSL commit 8d71d24.
    
    Comment it out until it is modified to work.
    briansmith committed Oct 17, 2023
    Configuration menu
    Copy the full SHA
    83ceb38 View commit details
    Browse the repository at this point in the history
  3. P-256 ECDSA verification: Use optimized nistz256 verification.

    Import the optimized nistz256 verification from BoringSSL.
    briansmith committed Oct 17, 2023
    Configuration menu
    Copy the full SHA
    4fa9905 View commit details
    Browse the repository at this point in the history
  4. P-256 ECDSA verification: Clarify multiplication.

    Move more of the logic for the nistz256 multiplication into Rust.
    briansmith committed Oct 17, 2023
    Configuration menu
    Copy the full SHA
    86f4976 View commit details
    Browse the repository at this point in the history
  5. P-256 nistz: Use arrays instead of P256_POINT in boundary functions.

    Better match the Rust declarations of these functions. Prepare to
    support more target platforms and more weird things (like P-521) that
    by avoiding any kind of alignment assumptions at the language
    boundary (or elsewhere).
    briansmith committed Oct 17, 2023
    Configuration menu
    Copy the full SHA
    e6728bf View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    63aacbe View commit details
    Browse the repository at this point in the history

Commits on Oct 18, 2023

  1. P-256 ECDSA verification: Use BoringSSL's W-NAF-based implementation.

    On targets where we don't use nistz256, use the Fiat W-NAF-based
    implementation instead.
    briansmith committed Oct 18, 2023
    Configuration menu
    Copy the full SHA
    2de8499 View commit details
    Browse the repository at this point in the history