Bouncy Castle Cryptography 1.50

org.bouncycastle.math.ec
Class ECPoint

java.lang.Object
  extended by org.bouncycastle.math.ec.ECPoint
Direct Known Subclasses:
ECPoint.F2m, ECPoint.Fp

public abstract class ECPoint
extends java.lang.Object

base class for points on elliptic curves.


Nested Class Summary
static class ECPoint.F2m
          Elliptic curve points over F2m
static class ECPoint.Fp
          Elliptic curve points over Fp
 
Field Summary
protected  ECCurve curve
           
protected static ECFieldElement[] EMPTY_ZS
           
protected  PreCompInfo preCompInfo
           
protected  boolean withCompression
           
protected  ECFieldElement x
           
protected  ECFieldElement y
           
protected  ECFieldElement[] zs
           
 
Constructor Summary
protected ECPoint(ECCurve curve, ECFieldElement x, ECFieldElement y)
           
protected ECPoint(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs)
           
 
Method Summary
abstract  ECPoint add(ECPoint b)
           
protected  void checkNormalized()
           
protected  ECPoint createScaledPoint(ECFieldElement sx, ECFieldElement sy)
           
 boolean equals(ECPoint other)
           
 boolean equals(java.lang.Object other)
           
 ECFieldElement getAffineXCoord()
          Returns the affine x-coordinate after checking that this point is normalized.
 ECFieldElement getAffineYCoord()
          Returns the affine y-coordinate after checking that this point is normalized
protected abstract  boolean getCompressionYTilde()
           
 ECCurve getCurve()
           
protected  int getCurveCoordinateSystem()
           
 byte[] getEncoded()
           
 byte[] getEncoded(boolean compressed)
          return the field element encoded with point compression.
protected static ECFieldElement[] getInitialZCoords(ECCurve curve)
           
protected  ECFieldElement getRawXCoord()
           
protected  ECFieldElement getRawYCoord()
           
 ECFieldElement getX()
          Deprecated. Use getAffineXCoord, or normalize() and getXCoord(), instead
 ECFieldElement getXCoord()
          Returns the x-coordinate.
 ECFieldElement getY()
          Deprecated. Use getAffineYCoord, or normalize() and getYCoord(), instead
 ECFieldElement getYCoord()
          Returns the y-coordinate.
 ECFieldElement getZCoord(int index)
           
 ECFieldElement[] getZCoords()
           
 int hashCode()
           
 boolean isCompressed()
           
 boolean isInfinity()
           
 boolean isNormalized()
           
 ECPoint multiply(java.math.BigInteger k)
          Multiplies this ECPoint by the given number.
abstract  ECPoint negate()
           
 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.
abstract  ECPoint subtract(ECPoint b)
           
 ECPoint threeTimes()
           
 ECPoint timesPow2(int e)
           
 java.lang.String toString()
           
abstract  ECPoint twice()
           
 ECPoint twicePlus(ECPoint b)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

EMPTY_ZS

protected static ECFieldElement[] EMPTY_ZS

curve

protected ECCurve curve

x

protected ECFieldElement x

y

protected ECFieldElement y

zs

protected ECFieldElement[] zs

withCompression

protected boolean withCompression

preCompInfo

protected PreCompInfo preCompInfo
Constructor Detail

ECPoint

protected ECPoint(ECCurve curve,
                  ECFieldElement x,
                  ECFieldElement y)

ECPoint

protected ECPoint(ECCurve curve,
                  ECFieldElement x,
                  ECFieldElement y,
                  ECFieldElement[] zs)
Method Detail

getInitialZCoords

protected static ECFieldElement[] getInitialZCoords(ECCurve curve)

getCurve

public ECCurve getCurve()

getCurveCoordinateSystem

protected int getCurveCoordinateSystem()

getX

public ECFieldElement getX()
Deprecated. Use getAffineXCoord, or normalize() and getXCoord(), instead

Normalizes this point, and then returns the affine x-coordinate. Note: normalization can be expensive, this method is deprecated in favour of caller-controlled normalization.


getY

public ECFieldElement getY()
Deprecated. Use getAffineYCoord, or normalize() and getYCoord(), instead

Normalizes this point, and then returns the affine y-coordinate. Note: normalization can be expensive, this method is deprecated in favour of caller-controlled normalization.


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:
java.lang.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:
java.lang.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

protected ECFieldElement getRawXCoord()

getRawYCoord

protected ECFieldElement getRawYCoord()

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()

isCompressed

public boolean isCompressed()

equals

public boolean equals(ECPoint other)

equals

public boolean equals(java.lang.Object other)
Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

getEncoded

public byte[] getEncoded()

getEncoded

public byte[] getEncoded(boolean compressed)
return the field element encoded with point compression. (S 4.3.6)


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(java.math.BigInteger k)
Multiplies this ECPoint by the given number.

Parameters:
k - The multiplicator.
Returns:
k * this.

Bouncy Castle Cryptography 1.50