Noble::Ed25519::ExtendedPoint
Inherits Reference < Object
Extended Point works in extended coordinates: (x, y, z, t) ∋ (x=x/z, y=y/z, t=xy). Default Point works in affine coordinates: (x, y) https://en.wikipedia.org/wiki/Twisted_Edwards_curve#Extended_coordinates
Constants
Constructors
Class methods
Takes a bunch of Jacobian Points but executes only one invert on all of them. invert is very slow operation, so this improves performance massively.
Instance methods
Fast algo for adding 2 Extended Points when curve's a=-1.
http://hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html#addition-add-2008-hwcd-4
Cost: 8M + 8add + 2*2.
Note: It does not check whether the other point is valid.
Fast algo for doubling Extended Point when curve's a=-1. http://hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html#doubling-dbl-2008-hwcd Cost: 3M + 4S + 1a + 7add + 12.
Constant time multiplication. Uses wNAF method. Windowed method may be 10% faster, but takes 2x longer to generate and consumes 2x memory.
Non-constant-time multiplication. Uses double-and-add algorithm. It's faster, but should only be used when you don't care about an exposed private key e.g. sig verification. Allows scalar bigger than curve order, but less than 2^256
Converts Extended point to default (x, y) coordinates. Can accept precomputed Z^-1 - for example, from invertBatch.