ECKey: Move compressPoint()/decompressPoint() helpers to LazyECPoint.compress()/decompress().

Deprecate the old methods.
This commit is contained in:
Andreas Schildbach 2019-10-23 10:29:29 +02:00 committed by Andreas Schildbach
parent 98bc701c2b
commit 4dc4cf743d
3 changed files with 24 additions and 8 deletions

View file

@ -198,19 +198,19 @@ public class ECKey implements EncryptableItem {
}
/**
* Utility for compressing an elliptic curve point. Returns the same point if it's already compressed.
* See the ECKey class docs for a discussion of point compression.
* @deprecated Use {@link LazyECPoint#compress()}
*/
@Deprecated
public static LazyECPoint compressPoint(LazyECPoint point) {
return point.isCompressed() ? point : new LazyECPoint(point.get(), true);
return point.compress();
}
/**
* Utility for decompressing an elliptic curve point. Returns the same point if it's already uncompressed.
* See the ECKey class docs for a discussion of point compression.
* @deprecated Use {@link LazyECPoint#decompress()}
*/
@Deprecated
public static LazyECPoint decompressPoint(LazyECPoint point) {
return !point.isCompressed() ? point : new LazyECPoint(point.get(), false);
return point.decompress();
}
/**

View file

@ -67,7 +67,7 @@ public class DeterministicKey extends ECKey {
LazyECPoint publicAsPoint,
@Nullable BigInteger priv,
@Nullable DeterministicKey parent) {
super(priv, compressPoint(checkNotNull(publicAsPoint)));
super(priv, publicAsPoint.compress());
checkArgument(chainCode.length == 32);
this.parent = parent;
this.childNumberPath = HDPath.M(checkNotNull(childNumberPath));
@ -138,7 +138,7 @@ public class DeterministicKey extends ECKey {
@Nullable DeterministicKey parent,
int depth,
int parentFingerprint) {
super(null, compressPoint(checkNotNull(publicAsPoint)));
super(null, publicAsPoint.compress());
checkArgument(chainCode.length == 32);
this.parent = parent;
this.childNumberPath = HDPath.M(checkNotNull(childNumberPath));

View file

@ -70,6 +70,22 @@ public class LazyECPoint {
this.bits = null;
}
/**
* Returns a compressed version of this elliptic curve point. Returns the same point if it's already compressed.
* See the {@link ECKey} class docs for a discussion of point compression.
*/
public LazyECPoint compress() {
return compressed ? this : new LazyECPoint(get(), true);
}
/**
* Returns a decompressed version of this elliptic curve point. Returns the same point if it's already compressed.
* See the {@link ECKey} class docs for a discussion of point compression.
*/
public LazyECPoint decompress() {
return !compressed ? this : new LazyECPoint(get(), false);
}
public ECPoint get() {
if (point == null)
point = curve.decodePoint(bits);