Class ECPoint

java.lang.Object
org.bouncycastle.math.ec.ECPoint
Direct Known Subclasses:
ECPoint.AbstractF2m, ECPoint.AbstractFp

public abstract class ECPoint extends Object
base class for points on elliptic curves.
  • Field Details

  • Constructor Details

  • Method Details

    • getInitialZCoords

      protected static ECFieldElement[] getInitialZCoords(ECCurve curve)
    • satisfiesCurveEquation

      protected abstract boolean satisfiesCurveEquation()
    • satisfiesOrder

      protected boolean satisfiesOrder()
    • getDetachedPoint

      public final ECPoint getDetachedPoint()
    • getCurve

      public ECCurve getCurve()
    • detach

      protected abstract ECPoint detach()
    • getCurveCoordinateSystem

      protected int getCurveCoordinateSystem()
    • getAffineXCoord

      public ECFieldElement getAffineXCoord()
      Returns the affine x-coordinate after checking that this point is normalized.
      Returns:
      The affine x-coordinate of this point
      Throws:
      IllegalStateException - if the point is not normalized
    • getAffineYCoord

      public ECFieldElement getAffineYCoord()
      Returns the affine y-coordinate after checking that this point is normalized
      Returns:
      The affine y-coordinate of this point
      Throws:
      IllegalStateException - if the point is not normalized
    • getXCoord

      public ECFieldElement getXCoord()
      Returns the x-coordinate. Caution: depending on the curve's coordinate system, this may not be the same value as in an affine coordinate system; use normalize() to get a point where the coordinates have their affine values, or use getAffineXCoord() if you expect the point to already have been normalized.
      Returns:
      the x-coordinate of this point
    • getYCoord

      public ECFieldElement getYCoord()
      Returns the y-coordinate. Caution: depending on the curve's coordinate system, this may not be the same value as in an affine coordinate system; use normalize() to get a point where the coordinates have their affine values, or use getAffineYCoord() if you expect the point to already have been normalized.
      Returns:
      the y-coordinate of this point
    • getZCoord

      public ECFieldElement getZCoord(int index)
    • getZCoords

      public ECFieldElement[] getZCoords()
    • getRawXCoord

      public final ECFieldElement getRawXCoord()
    • getRawYCoord

      public final ECFieldElement getRawYCoord()
    • getRawZCoords

      protected final ECFieldElement[] getRawZCoords()
    • checkNormalized

      protected void checkNormalized()
    • isNormalized

      public boolean isNormalized()
    • normalize

      public ECPoint normalize()
      Normalization ensures that any projective coordinate is 1, and therefore that the x, y coordinates reflect those of the equivalent point in an affine coordinate system.
      Returns:
      a new ECPoint instance representing the same point, but with normalized coordinates
    • createScaledPoint

      protected ECPoint createScaledPoint(ECFieldElement sx, ECFieldElement sy)
    • isInfinity

      public boolean isInfinity()
    • isValid

      public boolean isValid()
    • scaleX

      public ECPoint scaleX(ECFieldElement scale)
    • scaleXNegateY

      public ECPoint scaleXNegateY(ECFieldElement scale)
    • scaleY

      public ECPoint scaleY(ECFieldElement scale)
    • scaleYNegateX

      public ECPoint scaleYNegateX(ECFieldElement scale)
    • equals

      public boolean equals(ECPoint other)
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getEncoded

      public byte[] getEncoded(boolean compressed)
      Get an encoding of the point value, optionally in compressed format.
      Parameters:
      compressed - whether to generate a compressed point encoding.
      Returns:
      the point encoding
    • getCompressionYTilde

      protected abstract boolean getCompressionYTilde()
    • add

      public abstract ECPoint add(ECPoint b)
    • negate

      public abstract ECPoint negate()
    • subtract

      public abstract ECPoint subtract(ECPoint b)
    • timesPow2

      public ECPoint timesPow2(int e)
    • twice

      public abstract ECPoint twice()
    • twicePlus

      public ECPoint twicePlus(ECPoint b)
    • threeTimes

      public ECPoint threeTimes()
    • multiply

      public ECPoint multiply(BigInteger k)
      Multiplies this ECPoint by the given number.
      Parameters:
      k - The multiplicator.
      Returns:
      k * this.