You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jun 12, 2024. It is now read-only.
Realized that such isInfinity() and the infinity point in ED_25519 is different from that of CURVE_25519, and that isIdentity() in ED_25519 fits our need of verifying public key. Some discussions can be found at: YahooArchive/end-to-end#58 (diff)
trying to ping @thaidn, the author of the ecc library. any wisdom/clues?
The isInfinity function is wrong. In Ed25519 the Z coordinate is never zero (because the parameter d in the Ed25519 equation is not a square). We're going to remove it. You should use isIdentity instead.
As far as I can tell, this bug doesn't cause any security problems.
The following code snippet is copied from https://github.com/google/end-to-end/blob/master/src/javascript/crypto/e2e/ecc/point/curve25519_test.html#L67-L76:
In short, when I switch to use the
e2e.ecc.PrimeCurve.ED_25519
instead of thee2e.ecc.PrimeCurve.CURVE_25519
above, the test case failed.Expect
base.multiply(order).isInfinity()
should evaluate totrue
for both curves.Any clues? Thanks.
c.c. @andres-erbsen @daniel-ziegler @diracdeltas
The text was updated successfully, but these errors were encountered: