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

[Protocol Change] Consider SIMD-0048 (ECDSA with secp256r1) #1128

Closed
ripatel-fd opened this issue Jan 5, 2024 · 2 comments
Closed

[Protocol Change] Consider SIMD-0048 (ECDSA with secp256r1) #1128

ripatel-fd opened this issue Jan 5, 2024 · 2 comments
Labels
crypto Cryptography modules Priority: Low

Comments

@ripatel-fd
Copy link
Contributor

ripatel-fd commented Jan 5, 2024

Solana Labs merged an improvement proposal which adds a native program, the secp256r1 Weierstrass curve, and the ECDSA verify routine (SEC 1).

This issue serves to keep track. It is unclear whether Firedancer is going to implement this proposal.

Resources:

As always, a considerable amount of effort would go into compatibility testing targeting:

  • Control flow equivalence & checks
  • Elliptic curve group point representations & algorithms
  • How does malleability in field elements affect checks
@ripatel-fd ripatel-fd added crypto Cryptography modules Priority: Low labels Jan 5, 2024
@ripatel-fd ripatel-fd added this to the New Cryptography milestone Jan 5, 2024
@ripatel-fd
Copy link
Contributor Author

cc @0x0ece @lheeger-jump

@ripatel-fd
Copy link
Contributor Author

ripatel-fd commented Jan 5, 2024

The quickest route might be using OpenSSL's ECDSA verify routine, since OpenSSL is already a dependency. Unfortunately OpenSSL requires dynamic allocations to function. It is unclear whether our OpenSSL verify routine is identical to the one Solana Labs would use. The testing by Bunkr-2FA (linked above) was not yet proven to be exhaustive.

@0x0ece 0x0ece closed this as completed Aug 7, 2024
@ripatel-fd ripatel-fd closed this as not planned Won't fix, can't repro, duplicate, stale Aug 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
crypto Cryptography modules Priority: Low
Projects
None yet
Development

No branches or pull requests

2 participants