From 92e70550a5543c7d3a610f59737c9227cd8e8fa0 Mon Sep 17 00:00:00 2001 From: supaiku Date: Mon, 8 Jul 2019 18:17:28 +0200 Subject: [PATCH 1/2] chore: bump dependencies --- build.gradle | 8 ++++---- .../org/arkecosystem/crypto/identities/Address.java | 2 +- .../crypto/transactions/Transaction.java | 13 +++++++++++-- .../java/org/arkecosystem/crypto/utils/Message.java | 7 ++++++- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle index 384d214d..9211524b 100644 --- a/build.gradle +++ b/build.gradle @@ -94,12 +94,12 @@ if (project.hasProperty("signing.keyId")) { } dependencies { - compile group: 'org.bitcoinj', name: 'bitcoinj-core', version: '0.14.7' - compile group: 'com.madgag.spongycastle', name: 'core', version: '1.54.0.0' + compile group: 'org.bitcoinj', name: 'bitcoinj-core', version: '0.15.2' + compile group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: '1.62' compile group: 'com.google.code.gson', name: 'gson', version: '2.8.0' - testImplementation 'org.junit.jupiter:junit-jupiter-api:5.3.1' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.3.1' + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.5.0' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.5.0' } test { diff --git a/src/main/java/org/arkecosystem/crypto/identities/Address.java b/src/main/java/org/arkecosystem/crypto/identities/Address.java index 1af9b998..adb2d3b6 100644 --- a/src/main/java/org/arkecosystem/crypto/identities/Address.java +++ b/src/main/java/org/arkecosystem/crypto/identities/Address.java @@ -5,7 +5,7 @@ import org.arkecosystem.crypto.encoding.Base58; import org.arkecosystem.crypto.encoding.Hex; import org.bitcoinj.core.ECKey; -import org.spongycastle.crypto.digests.RIPEMD160Digest; +import org.bouncycastle.crypto.digests.RIPEMD160Digest; public class Address { public static String fromPassphrase(String passphrase, Integer networkVersion) { diff --git a/src/main/java/org/arkecosystem/crypto/transactions/Transaction.java b/src/main/java/org/arkecosystem/crypto/transactions/Transaction.java index d4d5b758..ca80655c 100644 --- a/src/main/java/org/arkecosystem/crypto/transactions/Transaction.java +++ b/src/main/java/org/arkecosystem/crypto/transactions/Transaction.java @@ -7,6 +7,7 @@ import org.arkecosystem.crypto.identities.PrivateKey; import org.bitcoinj.core.ECKey; import org.bitcoinj.core.Sha256Hash; +import org.bitcoinj.core.SignatureDecodeException; import java.lang.reflect.Type; import java.nio.ByteBuffer; @@ -66,7 +67,11 @@ public boolean verify() { byte[] signature = Hex.decode(this.signature); byte[] bytes = toBytes(); - return ECKey.verify(Sha256Hash.hash(bytes), signature, keys.getPubKey()); + try { + return ECKey.verify(Sha256Hash.hash(bytes), signature, keys.getPubKey()); + } catch (SignatureDecodeException e) { + return false; + } } public boolean secondVerify(String secondPublicKey) { @@ -75,7 +80,11 @@ public boolean secondVerify(String secondPublicKey) { byte[] signature = Hex.decode(this.signSignature); byte[] bytes = toBytes(false); - return ECKey.verify(Sha256Hash.hash(bytes), signature, keys.getPubKey()); + try { + return ECKey.verify(Sha256Hash.hash(bytes), signature, keys.getPubKey()); + } catch (SignatureDecodeException e) { + return false; + } } public Transaction parseSignatures(String serialized, int startOffset) { diff --git a/src/main/java/org/arkecosystem/crypto/utils/Message.java b/src/main/java/org/arkecosystem/crypto/utils/Message.java index 744c86a7..bd638b4a 100644 --- a/src/main/java/org/arkecosystem/crypto/utils/Message.java +++ b/src/main/java/org/arkecosystem/crypto/utils/Message.java @@ -5,6 +5,7 @@ import org.arkecosystem.crypto.identities.PrivateKey; import org.bitcoinj.core.ECKey; import org.bitcoinj.core.Sha256Hash; +import org.bitcoinj.core.SignatureDecodeException; import java.util.HashMap; import java.util.Map; @@ -34,7 +35,11 @@ public boolean verify() { byte[] signature = Hex.decode(this.signature); byte[] messageBytes = Sha256Hash.hash(this.message.getBytes()); - return ECKey.verify(messageBytes, signature, keys.getPubKey()); + try { + return ECKey.verify(messageBytes, signature, keys.getPubKey()); + } catch (SignatureDecodeException e) { + return false; + } } public Map toMap() { From 489961d15fbcea7a22c7cdf41cb1e22339dd5eb9 Mon Sep 17 00:00:00 2001 From: supaiku Date: Mon, 8 Jul 2019 20:46:26 +0200 Subject: [PATCH 2/2] chore: add missing dep --- build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/build.gradle b/build.gradle index 9211524b..c4fcfeca 100644 --- a/build.gradle +++ b/build.gradle @@ -97,6 +97,7 @@ dependencies { compile group: 'org.bitcoinj', name: 'bitcoinj-core', version: '0.15.2' compile group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: '1.62' compile group: 'com.google.code.gson', name: 'gson', version: '2.8.0' + compile 'com.google.guava:guava:28.0-jre' testImplementation 'org.junit.jupiter:junit-jupiter-api:5.5.0' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.5.0'