Uses of Class
net.i2p.crypto.eddsa.math.FieldElement
Packages that use FieldElement
Package
Description
Data structures that definie curves and fields, and
the mathematical operaions on them.
Low-level, non-optimized implementation using BigIntegers for any curve.
Low-level, optimized implementation using Radix $2^{51}$ for Curve 25519.
-
Uses of FieldElement in net.i2p.crypto.eddsa.math
Fields in net.i2p.crypto.eddsa.math declared as FieldElementModifier and TypeFieldDescriptionfinal FieldElementField.EIGHTfinal FieldElementField.FIVEfinal FieldElementField.FOURfinal FieldElementField.ONE(package private) final FieldElementGroupElement.TVariable is package private only so that tests run.final FieldElementField.TWO(package private) final FieldElementGroupElement.XVariable is package private only so that tests run.(package private) final FieldElementGroupElement.YVariable is package private only so that tests run.(package private) final FieldElementGroupElement.ZVariable is package private only so that tests run.final FieldElementField.ZEROMethods in net.i2p.crypto.eddsa.math that return FieldElementModifier and TypeMethodDescriptionabstract FieldElementFieldElement.add(FieldElement val) FieldElement.addOne()abstract FieldElementFieldElement.cmov(FieldElement val, int b) abstract FieldElementEncoding.decode(byte[] in) Decode a FieldElement from its $(b-1)$-bit encoding.FieldElement.divide(FieldElement val) Field.fromByteArray(byte[] x) Curve.get2D()Curve.getD()Curve.getI()Field.getQ()Field.getQm2()Field.getQm5d8()GroupElement.getT()Gets the $T$ value of the group element.GroupElement.getX()Gets the $X$ value of the group element.GroupElement.getY()Gets the $Y$ value of the group element.GroupElement.getZ()Gets the $Z$ value of the group element.abstract FieldElementFieldElement.invert()abstract FieldElementFieldElement.multiply(FieldElement val) abstract FieldElementFieldElement.negate()abstract FieldElementFieldElement.pow22523()abstract FieldElementFieldElement.square()abstract FieldElementFieldElement.squareAndDouble()abstract FieldElementFieldElement.subtract(FieldElement val) FieldElement.subtractOne()Methods in net.i2p.crypto.eddsa.math with parameters of type FieldElementModifier and TypeMethodDescriptionabstract FieldElementFieldElement.add(FieldElement val) static GroupElementGroupElement.cached(Curve curve, FieldElement YpX, FieldElement YmX, FieldElement Z, FieldElement T2d) Creates a new group element in CACHED representation.abstract FieldElementFieldElement.cmov(FieldElement val, int b) FieldElement.divide(FieldElement val) abstract byte[]Encoding.encode(FieldElement x) Encode a FieldElement in its $(b-1)$-bit encoding.abstract booleanEncoding.isNegative(FieldElement x) From the Ed25519 paper:
$x$ is negative if the $(b-1)$-bit encoding of $x$ is lexicographically larger than the $(b-1)$-bit encoding of -x.abstract FieldElementFieldElement.multiply(FieldElement val) static GroupElementGroupElement.p1p1(Curve curve, FieldElement X, FieldElement Y, FieldElement Z, FieldElement T) Creates a new group element in P1P1 representation.static GroupElementGroupElement.p2(Curve curve, FieldElement X, FieldElement Y, FieldElement Z) Creates a new group element in P2 representation.static GroupElementGroupElement.p3(Curve curve, FieldElement X, FieldElement Y, FieldElement Z, FieldElement T) Creates a new group element in P3 representation, without pre-computation.static GroupElementGroupElement.p3(Curve curve, FieldElement X, FieldElement Y, FieldElement Z, FieldElement T, boolean precomputeDoubleOnly) Creates a new group element in P3 representation, potentially with pre-computation.static GroupElementGroupElement.precomp(Curve curve, FieldElement ypx, FieldElement ymx, FieldElement xy2d) Creates a new group element in PRECOMP representation.abstract FieldElementFieldElement.subtract(FieldElement val) Constructors in net.i2p.crypto.eddsa.math with parameters of type FieldElementModifierConstructorDescriptionCurve(Field f, byte[] d, FieldElement I) GroupElement(Curve curve, GroupElement.Representation repr, FieldElement X, FieldElement Y, FieldElement Z, FieldElement T) Creates a group element for a curve, without any pre-computation.GroupElement(Curve curve, GroupElement.Representation repr, FieldElement X, FieldElement Y, FieldElement Z, FieldElement T, boolean precomputeDouble) Creates a group element for a curve, with optional pre-computation. -
Uses of FieldElement in net.i2p.crypto.eddsa.math.bigint
Subclasses of FieldElement in net.i2p.crypto.eddsa.math.bigintModifier and TypeClassDescriptionclassA particular element of the field \Z/(2^255-19).Methods in net.i2p.crypto.eddsa.math.bigint that return FieldElementModifier and TypeMethodDescriptionBigIntegerFieldElement.add(FieldElement val) BigIntegerFieldElement.addOne()BigIntegerFieldElement.cmov(FieldElement val, int b) BigIntegerLittleEndianEncoding.decode(byte[] in) Decode a FieldElement from its $(b-1)$-bit encoding.BigIntegerFieldElement.divide(BigInteger val) BigIntegerFieldElement.divide(FieldElement val) BigIntegerFieldElement.invert()BigIntegerFieldElement.mod(FieldElement m) BigIntegerFieldElement.modPow(FieldElement e, FieldElement m) BigIntegerFieldElement.multiply(FieldElement val) BigIntegerFieldElement.negate()BigIntegerFieldElement.pow(FieldElement e) BigIntegerFieldElement.pow22523()BigIntegerFieldElement.square()BigIntegerFieldElement.squareAndDouble()BigIntegerFieldElement.subtract(FieldElement val) BigIntegerFieldElement.subtractOne()Methods in net.i2p.crypto.eddsa.math.bigint with parameters of type FieldElementModifier and TypeMethodDescriptionBigIntegerFieldElement.add(FieldElement val) BigIntegerFieldElement.cmov(FieldElement val, int b) BigIntegerFieldElement.divide(FieldElement val) byte[]BigIntegerLittleEndianEncoding.encode(FieldElement x) booleanBigIntegerLittleEndianEncoding.isNegative(FieldElement x) From the Ed25519 paper:
$x$ is negative if the $(b-1)$-bit encoding of $x$ is lexicographically larger than the $(b-1)$-bit encoding of $-x$.BigIntegerFieldElement.mod(FieldElement m) BigIntegerFieldElement.modPow(FieldElement e, FieldElement m) BigIntegerFieldElement.multiply(FieldElement val) BigIntegerFieldElement.pow(FieldElement e) BigIntegerFieldElement.subtract(FieldElement val) -
Uses of FieldElement in net.i2p.crypto.eddsa.math.ed25519
Subclasses of FieldElement in net.i2p.crypto.eddsa.math.ed25519Modifier and TypeClassDescriptionclassClass to represent a field element of the finite field $p = 2^{255} - 19$ elements.Methods in net.i2p.crypto.eddsa.math.ed25519 that return FieldElementModifier and TypeMethodDescriptionEd25519FieldElement.add(FieldElement val) $h = f + g$Ed25519FieldElement.cmov(FieldElement val, int b) Constant-time conditional move.Ed25519LittleEndianEncoding.decode(byte[] in) Decodes a given field element in its 10 byte $2^{25.5}$ representation.Ed25519FieldElement.invert()Invert this field element.Ed25519FieldElement.multiply(FieldElement val) $h = f * g$Ed25519FieldElement.negate()$h = -f$Ed25519FieldElement.pow22523()Gets this field element to the power of $(2^{252} - 3)$.Ed25519FieldElement.square()$h = f * f$Ed25519FieldElement.squareAndDouble()$h = 2 * f * f$Ed25519FieldElement.subtract(FieldElement val) $h = f - g$Methods in net.i2p.crypto.eddsa.math.ed25519 with parameters of type FieldElementModifier and TypeMethodDescriptionEd25519FieldElement.add(FieldElement val) $h = f + g$Ed25519FieldElement.cmov(FieldElement val, int b) Constant-time conditional move.byte[]Ed25519LittleEndianEncoding.encode(FieldElement x) Encodes a given field element in its 32 byte representation.booleanEd25519LittleEndianEncoding.isNegative(FieldElement x) Is the FieldElement negative in this encoding?Ed25519FieldElement.multiply(FieldElement val) $h = f * g$Ed25519FieldElement.subtract(FieldElement val) $h = f - g$