# edwards25519 library Null safety

## Classes

CachedGroupElement
CompletedGroupElement
ExtendedGroupElement
FieldElement
PreComputedGroupElement
ProjectiveGroupElement
Group elements are members of the elliptic curve -x^2 + y^2 = 1 + d * x^2 * y^2 where d = -121665/121666.

## Properties

order List<int>
order is the order of Curve25519 in little-endian form.
zero

## Functions

equal(int b, int c) int
equal returns 1 if b == c and 0 otherwise, assuming that b and c are non-negative.
FeCMove(int b) → void
Replace (f,g) with (g,g) if b == 1; replace (f,g) with (f,g) if b == 0.
FeCombine(int h0, int h1, int h2, int h3, int h4, int h5, int h6, int h7, int h8, int h9) → void
FeCopy(FieldElement dst, FieldElement src) → void
FeFromBytes(FieldElement dst, Uint8List src) → void
FeInvert(FieldElement out, ) → void
FeIsNegative() int
FeIsNonZero() int
FeMul(dynamic f, dynamic g) → void
FeMul calculates h = f * g Can overlap h with f or g.
FeNeg() → void
FeNeg sets h = -f
FeOne() → void
fePow22523(FieldElement out, ) → void
feSquare(dynamic f) List<int?>
FeSquare() → void
FeSquare calculates h = f*f. Can overlap h with f.
FeSquare2() → void
FeSquare2 sets h = 2 * f * f
FeSub(FieldElement dst, ) → void
FeToBytes() → void
FeToBytes marshals h to s. Preconditions: |h| bounded by 1.12^25,1.12^24,1.12^25,1.12^24,etc.
FeZero() → void
fieldElementCopy(FieldElement src, int srcPos, FieldElement dest, int destPos, int length) → void
fieldElementFullCopy(FieldElement src, FieldElement dest) → void
GeDoubleScalarMultVartime() → void
GeDoubleScalarMultVartime sets r = aA + bB where a = a`0`+256a`1`+...+256^31 a`31`. and b = b`0`+256b`1`+...+256^31 b`31`. B is the Ed25519 base point (x,4/5) with x positive.
geMixedSub() → void
GeScalarMultBase() → void
GeScalarMultBase computes h = aB, where a = a`0`+256a`1`+...+256^31 a`31` B is the Ed25519 base point (x,4/5) with x positive.
GeScalarMultVartime() → void
geSub() → void
InvertModL()
///////////////////SPACEMESH SPECIFIC////////////////////////
multModL(dynamic out, dynamic z, ) → void
negative(int b) int
negative returns 1 if b < 0 and 0 otherwise.
PreComputedGroupElementCMove(int b) → void
ScMinimal(Uint8List scalar) bool
ScMinimal returns true if the given scalar is less than the order of the curve.
ScMul() → void
The scalars are GF(2^252 + 27742317777372353535851937790883648493). Input: a`0`+256a`1`+...+256^31a`31` = a b`0`+256b`1`+...+256^31b`31` = b c`0`+256c`1`+...+256^31c`31` = c
Input: s`0`+256s`1`+...+256^63s`63` = s