feat: noble curve replace elliptic#56
Merged
chaitanyapotti merged 19 commits intomasterfrom Feb 3, 2026
Merged
Conversation
8feec72 to
be75748
Compare
1ac76a6 to
c6f6dce
Compare
ieow
reviewed
Jan 29, 2026
This reverts commit 55af097.
ieow
reviewed
Jan 29, 2026
chaitanyapotti
approved these changes
Feb 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation and Context
Jira Link:
Description
How has this been tested?
Screenshots (if appropriate):
Types of changes
Checklist:
Note
High Risk
This rewrites core cryptographic primitives (ECDSA/ECDH/ECIES) and changes key/ciphertext types from
BuffertoUint8Array, which can affect interoperability and security-sensitive behavior (e.g., key validation, signature formatting, padding/MAC handling). Extensive tests were added, but any subtle mismatch could break consumers.Overview
Replaces the underlying crypto implementation by swapping
ellipticfor@noble/curvesacrosssign/verify,derive/derivePadded, and ECIESencrypt/decrypt, including new public/private key validation via noble utilities.Switches all binary inputs/outputs from
BuffertoUint8Array(including theEciesshape), updates hash/HMAC/AES plumbing to avoidBufferhelpers, and adjusts ECDH output behavior to preserve legacy “unpadded” semantics while keepingderivePadded()fixed at 32 bytes.Updates dependencies and tests: removes
ellipticfrom runtime deps, adds@noble/curves, introduces a dev-onlyeccrypto-oldalias plus a comprehensivebackward_compatibility.spec.ts, and tweaks browser test config to skip those node-only compatibility tests (removing the prior Buffer setup).Written by Cursor Bugbot for commit 9948d40. This will update automatically on new commits. Configure here.