Package org.bitcoinj.crypto
Class LazyECPoint
- java.lang.Object
-
- org.bitcoinj.crypto.LazyECPoint
-
public class LazyECPoint extends java.lang.ObjectA 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.bouncycastle.math.ec.ECPointadd(org.bouncycastle.math.ec.ECPoint b)LazyECPointcompress()Returns a compressed version of this elliptic curve point.LazyECPointdecompress()Returns a decompressed version of this elliptic curve point.booleanequals(java.lang.Object o)booleanequals(org.bouncycastle.math.ec.ECPoint other)org.bouncycastle.math.ec.ECPointget()org.bouncycastle.math.ec.ECFieldElementgetAffineXCoord()org.bouncycastle.math.ec.ECFieldElementgetAffineYCoord()org.bouncycastle.math.ec.ECCurvegetCurve()org.bouncycastle.math.ec.ECPointgetDetachedPoint()byte[]getEncoded()byte[]getEncoded(boolean compressed)org.bouncycastle.math.ec.ECFieldElementgetX()org.bouncycastle.math.ec.ECFieldElementgetXCoord()org.bouncycastle.math.ec.ECFieldElementgetY()org.bouncycastle.math.ec.ECFieldElementgetYCoord()org.bouncycastle.math.ec.ECFieldElementgetZCoord(int index)org.bouncycastle.math.ec.ECFieldElement[]getZCoords()inthashCode()booleanisCompressed()booleanisInfinity()booleanisNormalized()booleanisValid()org.bouncycastle.math.ec.ECPointmultiply(java.math.BigInteger k)org.bouncycastle.math.ec.ECPointnegate()org.bouncycastle.math.ec.ECPointnormalize()org.bouncycastle.math.ec.ECPointscaleX(org.bouncycastle.math.ec.ECFieldElement scale)org.bouncycastle.math.ec.ECPointscaleY(org.bouncycastle.math.ec.ECFieldElement scale)org.bouncycastle.math.ec.ECPointsubtract(org.bouncycastle.math.ec.ECPoint b)org.bouncycastle.math.ec.ECPointthreeTimes()org.bouncycastle.math.ec.ECPointtimesPow2(int e)org.bouncycastle.math.ec.ECPointtwice()org.bouncycastle.math.ec.ECPointtwicePlus(org.bouncycastle.math.ec.ECPoint b)
-
-
-
Constructor Detail
-
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 onbits- 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 pointcompressed- true if the represented public key is compressed
-
-
Method Detail
-
compress
public LazyECPoint compress()
Returns a compressed version of this elliptic curve point. Returns the same point if it's already compressed. See theECKeyclass 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 theECKeyclass 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(java.math.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(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
-