-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Hi, I have a question about the elliptic curve implementation in SecP256.cs.
The code represents the point at infinity as
static BigIntegerPoint ZERO = new BigIntegerPoint(); // Creates (0,0)However, testing this...
var pointAtInfinity = new BigIntegerPoint();
bool isValid = SecP256.IsOnCurve(pointAtInfinity); // Returns falseFor secp256r1, the curve equation is y² = x³ + ax + b where b ≠ 0.
For point (0,0): 0² ≟ 0³ + a(0) + b = b
Since b ≠ 0, point (0,0) should not be considered on the curve.
- Is this the intended behavior for representing the point at infinity?
- Could the
point.Y == 0check in Add/Double methods cause issues with legitimate curve points that have Y=0?
I might be missing something. Thanks for maintaining this, let me know how I can help if needed.
Metadata
Metadata
Assignees
Labels
No labels