Class LazyECPoint

java.lang.Object
org.bitcoinj.crypto.LazyECPoint

public class LazyECPoint extends Object
A wrapper around ECPoint that delays decoding of the point for as long as possible. This is useful because point encode/decode in Bouncy Castle is quite slow especially on Dalvik, as it often involves decompression/recompression.
  • Constructor Summary

    Constructors
    Constructor
    Description
    LazyECPoint(org.bouncycastle.math.ec.ECCurve curve, byte[] bits)
    Construct a LazyECPoint from a public key.
    LazyECPoint(org.bouncycastle.math.ec.ECPoint point, boolean compressed)
    Construct a LazyECPoint from an already decoded point.
  • Method Summary

    Modifier and Type
    Method
    Description
    org.bouncycastle.math.ec.ECPoint
    add(org.bouncycastle.math.ec.ECPoint b)
     
    Returns a compressed version of this elliptic curve point.
    Returns a decompressed version of this elliptic curve point.
    boolean
     
    boolean
    equals(org.bouncycastle.math.ec.ECPoint other)
     
    org.bouncycastle.math.ec.ECPoint
    get()
     
    org.bouncycastle.math.ec.ECFieldElement
     
    org.bouncycastle.math.ec.ECFieldElement
     
    org.bouncycastle.math.ec.ECCurve
     
    org.bouncycastle.math.ec.ECPoint
     
    byte[]
     
    byte[]
    getEncoded(boolean compressed)
     
    org.bouncycastle.math.ec.ECFieldElement
     
    org.bouncycastle.math.ec.ECFieldElement
     
    org.bouncycastle.math.ec.ECFieldElement
     
    org.bouncycastle.math.ec.ECFieldElement
     
    org.bouncycastle.math.ec.ECFieldElement
    getZCoord(int index)
     
    org.bouncycastle.math.ec.ECFieldElement[]
     
    int
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    org.bouncycastle.math.ec.ECPoint
     
    org.bouncycastle.math.ec.ECPoint
     
    org.bouncycastle.math.ec.ECPoint
     
    org.bouncycastle.math.ec.ECPoint
    scaleX(org.bouncycastle.math.ec.ECFieldElement scale)
     
    org.bouncycastle.math.ec.ECPoint
    scaleY(org.bouncycastle.math.ec.ECFieldElement scale)
     
    org.bouncycastle.math.ec.ECPoint
    subtract(org.bouncycastle.math.ec.ECPoint b)
     
    org.bouncycastle.math.ec.ECPoint
     
    org.bouncycastle.math.ec.ECPoint
    timesPow2(int e)
     
    org.bouncycastle.math.ec.ECPoint
     
    org.bouncycastle.math.ec.ECPoint
    twicePlus(org.bouncycastle.math.ec.ECPoint b)
     

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • LazyECPoint

      public LazyECPoint(org.bouncycastle.math.ec.ECCurve curve, byte[] bits)
      Construct a LazyECPoint from a public key. Due to the delayed decoding of the point the validation of the public key is delayed too, e.g. until a getter is called.
      Parameters:
      curve - a curve the point is on
      bits - public key bytes
    • LazyECPoint

      public LazyECPoint(org.bouncycastle.math.ec.ECPoint point, boolean compressed)
      Construct a LazyECPoint from an already decoded point.
      Parameters:
      point - the wrapped point
      compressed - true if the represented public key is compressed
  • Method Details

    • compress

      public LazyECPoint compress()
      Returns a compressed version of this elliptic curve point. Returns the same point if it's already compressed. See the ECKey class docs for a discussion of point compression.
    • decompress

      public LazyECPoint decompress()
      Returns a decompressed version of this elliptic curve point. Returns the same point if it's already compressed. See the ECKey class docs for a discussion of point compression.
    • get

      public org.bouncycastle.math.ec.ECPoint get()
    • getEncoded

      public byte[] getEncoded()
    • getDetachedPoint

      public org.bouncycastle.math.ec.ECPoint getDetachedPoint()
    • isInfinity

      public boolean isInfinity()
    • timesPow2

      public org.bouncycastle.math.ec.ECPoint timesPow2(int e)
    • getYCoord

      public org.bouncycastle.math.ec.ECFieldElement getYCoord()
    • getZCoords

      public org.bouncycastle.math.ec.ECFieldElement[] getZCoords()
    • isNormalized

      public boolean isNormalized()
    • isCompressed

      public boolean isCompressed()
    • multiply

      public org.bouncycastle.math.ec.ECPoint multiply(BigInteger k)
    • subtract

      public org.bouncycastle.math.ec.ECPoint subtract(org.bouncycastle.math.ec.ECPoint b)
    • isValid

      public boolean isValid()
    • scaleY

      public org.bouncycastle.math.ec.ECPoint scaleY(org.bouncycastle.math.ec.ECFieldElement scale)
    • getXCoord

      public org.bouncycastle.math.ec.ECFieldElement getXCoord()
    • scaleX

      public org.bouncycastle.math.ec.ECPoint scaleX(org.bouncycastle.math.ec.ECFieldElement scale)
    • equals

      public boolean equals(org.bouncycastle.math.ec.ECPoint other)
    • negate

      public org.bouncycastle.math.ec.ECPoint negate()
    • threeTimes

      public org.bouncycastle.math.ec.ECPoint threeTimes()
    • getZCoord

      public org.bouncycastle.math.ec.ECFieldElement getZCoord(int index)
    • getEncoded

      public byte[] getEncoded(boolean compressed)
    • add

      public org.bouncycastle.math.ec.ECPoint add(org.bouncycastle.math.ec.ECPoint b)
    • twicePlus

      public org.bouncycastle.math.ec.ECPoint twicePlus(org.bouncycastle.math.ec.ECPoint b)
    • getCurve

      public org.bouncycastle.math.ec.ECCurve getCurve()
    • normalize

      public org.bouncycastle.math.ec.ECPoint normalize()
    • getY

      public org.bouncycastle.math.ec.ECFieldElement getY()
    • twice

      public org.bouncycastle.math.ec.ECPoint twice()
    • getAffineYCoord

      public org.bouncycastle.math.ec.ECFieldElement getAffineYCoord()
    • getAffineXCoord

      public org.bouncycastle.math.ec.ECFieldElement getAffineXCoord()
    • getX

      public org.bouncycastle.math.ec.ECFieldElement getX()
    • equals

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

      public int hashCode()
      Overrides:
      hashCode in class Object