From 910b2d9059a3aadc60181d455f2baa55f341054c Mon Sep 17 00:00:00 2001 From: supaiku <1311798+supaiku0@users.noreply.github.com> Date: Tue, 11 Jun 2019 14:17:00 +0200 Subject: [PATCH 01/12] release: 0.1.4 (#47) --- CHANGELOG.md | 5 +++++ build.gradle | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a3de660..284dcbff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## Unreleased +## 0.1.4 - 2019-11-06 + +### Fixed +- Support 255 bytes vendor fields + ## 0.1.3 - 2019-25-04 ### Fixed diff --git a/build.gradle b/build.gradle index 9dc4649f..384d214d 100644 --- a/build.gradle +++ b/build.gradle @@ -46,7 +46,7 @@ uploadArchives { pom.project { groupId = 'org.arkecosystem' - version = '0.1.3' + version = '0.1.4' artifactId = 'crypto' name = 'java-crypto' @@ -79,7 +79,7 @@ uploadArchives { scm { connection = 'scm:git:git://github.com/ArkEcosystem/java-crypto.git' developerConnection = 'scm:git:ssh://github.com:ArkEcosystem/java-crypto.git' - url = 'https://github.com/ArkEcosystem/java-crypto/tree/0.1.2' + url = 'https://github.com/ArkEcosystem/java-crypto/tree/0.1.4' } } } From 1f449daf8a4f43cd0e97b8b2bc6054843cdd26a9 Mon Sep 17 00:00:00 2001 From: supaiku <1311798+supaiku0@users.noreply.github.com> Date: Tue, 9 Jul 2019 04:09:29 +0200 Subject: [PATCH 02/12] chore: bump dependencies (#49) --- build.gradle | 9 +++++---- .../org/arkecosystem/crypto/identities/Address.java | 2 +- .../crypto/transactions/Transaction.java | 13 +++++++++++-- .../java/org/arkecosystem/crypto/utils/Message.java | 7 ++++++- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle index 384d214d..c4fcfeca 100644 --- a/build.gradle +++ b/build.gradle @@ -94,12 +94,13 @@ 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' + compile 'com.google.guava:guava:28.0-jre' - 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 c6ae3c9888a60e1af395a88f5e6cb519b945cc8a Mon Sep 17 00:00:00 2001 From: supaiku <1311798+supaiku0@users.noreply.github.com> Date: Wed, 10 Jul 2019 04:27:16 +0200 Subject: [PATCH 03/12] release: 0.1.5 (#50) --- CHANGELOG.md | 5 +++++ build.gradle | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 284dcbff..5fac7553 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## Unreleased +## 0.1.5 - 2019-10-07 + +### Changed +- Updated dependencies + ## 0.1.4 - 2019-11-06 ### Fixed diff --git a/build.gradle b/build.gradle index c4fcfeca..9e17e03a 100644 --- a/build.gradle +++ b/build.gradle @@ -46,7 +46,7 @@ uploadArchives { pom.project { groupId = 'org.arkecosystem' - version = '0.1.4' + version = '0.1.5' artifactId = 'crypto' name = 'java-crypto' @@ -79,7 +79,7 @@ uploadArchives { scm { connection = 'scm:git:git://github.com/ArkEcosystem/java-crypto.git' developerConnection = 'scm:git:ssh://github.com:ArkEcosystem/java-crypto.git' - url = 'https://github.com/ArkEcosystem/java-crypto/tree/0.1.4' + url = 'https://github.com/ArkEcosystem/java-crypto/tree/0.1.5' } } } From 516912c42f5da79d1a10a8406fcb6c787869b93b Mon Sep 17 00:00:00 2001 From: supaiku <1311798+supaiku0@users.noreply.github.com> Date: Mon, 15 Jul 2019 20:52:05 +0200 Subject: [PATCH 04/12] chore: downgrade bitcoinj-core to 0.14.7 (#51) --- build.gradle | 2 +- .../crypto/transactions/Transaction.java | 13 ++----------- .../java/org/arkecosystem/crypto/utils/Message.java | 7 +------ 3 files changed, 4 insertions(+), 18 deletions(-) diff --git a/build.gradle b/build.gradle index 9e17e03a..63e70708 100644 --- a/build.gradle +++ b/build.gradle @@ -94,7 +94,7 @@ if (project.hasProperty("signing.keyId")) { } dependencies { - compile group: 'org.bitcoinj', name: 'bitcoinj-core', version: '0.15.2' + compile group: 'org.bitcoinj', name: 'bitcoinj-core', version: '0.14.7' 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' diff --git a/src/main/java/org/arkecosystem/crypto/transactions/Transaction.java b/src/main/java/org/arkecosystem/crypto/transactions/Transaction.java index ca80655c..d4d5b758 100644 --- a/src/main/java/org/arkecosystem/crypto/transactions/Transaction.java +++ b/src/main/java/org/arkecosystem/crypto/transactions/Transaction.java @@ -7,7 +7,6 @@ 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; @@ -67,11 +66,7 @@ public boolean verify() { byte[] signature = Hex.decode(this.signature); byte[] bytes = toBytes(); - try { - return ECKey.verify(Sha256Hash.hash(bytes), signature, keys.getPubKey()); - } catch (SignatureDecodeException e) { - return false; - } + return ECKey.verify(Sha256Hash.hash(bytes), signature, keys.getPubKey()); } public boolean secondVerify(String secondPublicKey) { @@ -80,11 +75,7 @@ public boolean secondVerify(String secondPublicKey) { byte[] signature = Hex.decode(this.signSignature); byte[] bytes = toBytes(false); - try { - return ECKey.verify(Sha256Hash.hash(bytes), signature, keys.getPubKey()); - } catch (SignatureDecodeException e) { - return false; - } + return ECKey.verify(Sha256Hash.hash(bytes), signature, keys.getPubKey()); } 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 bd638b4a..744c86a7 100644 --- a/src/main/java/org/arkecosystem/crypto/utils/Message.java +++ b/src/main/java/org/arkecosystem/crypto/utils/Message.java @@ -5,7 +5,6 @@ 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; @@ -35,11 +34,7 @@ public boolean verify() { byte[] signature = Hex.decode(this.signature); byte[] messageBytes = Sha256Hash.hash(this.message.getBytes()); - try { - return ECKey.verify(messageBytes, signature, keys.getPubKey()); - } catch (SignatureDecodeException e) { - return false; - } + return ECKey.verify(messageBytes, signature, keys.getPubKey()); } public Map toMap() { From 8f1e5c3d11f3d571bf2e773f32e4c43507f43189 Mon Sep 17 00:00:00 2001 From: supaiku <1311798+supaiku0@users.noreply.github.com> Date: Mon, 15 Jul 2019 21:01:19 +0200 Subject: [PATCH 05/12] release: 0.1.6 (#52) --- CHANGELOG.md | 5 +++++ build.gradle | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5fac7553..6993f28e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## Unreleased +## 0.1.6 - 2019-10-15 + +### Changed +- Downgrade bitcoinj-core to 0.14.7 + ## 0.1.5 - 2019-10-07 ### Changed diff --git a/build.gradle b/build.gradle index 63e70708..a04c8151 100644 --- a/build.gradle +++ b/build.gradle @@ -46,7 +46,7 @@ uploadArchives { pom.project { groupId = 'org.arkecosystem' - version = '0.1.5' + version = '0.1.6' artifactId = 'crypto' name = 'java-crypto' @@ -79,7 +79,7 @@ uploadArchives { scm { connection = 'scm:git:git://github.com/ArkEcosystem/java-crypto.git' developerConnection = 'scm:git:ssh://github.com:ArkEcosystem/java-crypto.git' - url = 'https://github.com/ArkEcosystem/java-crypto/tree/0.1.5' + url = 'https://github.com/ArkEcosystem/java-crypto/tree/0.1.6' } } } From d5945255ee12ac7f5c2a9c88cb4e07fc7ea10210 Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Mon, 22 Jul 2019 07:56:32 +0300 Subject: [PATCH 06/12] chore: setup probot/stale configuration --- .github/stale.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/stale.yml diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 00000000..0d0b1c99 --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1 @@ +_extends: .github From 4704463aae3f7cb479b1d4c2e8e63117d4f9d62c Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Mon, 22 Jul 2019 09:27:47 +0300 Subject: [PATCH 07/12] chore(readme): add lead maintainer information (#54) --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c42560b6..6e6ce947 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,8 @@ [![Latest Version](https://badgen.now.sh/github/release/ArkEcosystem/java-crypto)](https://github.com/ArkEcosystem/java-crypto/releases) [![License: MIT](https://badgen.now.sh/badge/license/MIT/green)](https://opensource.org/licenses/MIT) +> Lead Maintainer: [Joshua Noack](https://github.com/supaiku0) + ## Documentation You can find installation instructions and detailed instructions on how to use this package at the [dedicated documentation site](https://docs.ark.io/sdk/cryptography/java.html). @@ -21,9 +23,8 @@ If you discover a security vulnerability within this package, please send an e-m ## Credits -- [Brian Faust](https://github.com/faustbrian) -- [All Contributors](../../../../contributors) +This project exists thanks to all the people who [contribute](../../contributors). ## License -[MIT](LICENSE) © [ArkEcosystem](https://ark.io) +[MIT](LICENSE) © [ARK Ecosystem](https://ark.io) From 07534b1f3bb58da4fbf7cb8b48cc9a663d9d2b14 Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Sat, 21 Sep 2019 09:11:59 +0300 Subject: [PATCH 08/12] ci: setup github action workflow for testing --- .circleci/config.yml | 29 ----------------------------- .github/workflows/test.yml | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+), 29 deletions(-) delete mode 100644 .circleci/config.yml create mode 100644 .github/workflows/test.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 8711a4d3..00000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,29 +0,0 @@ -version: 2 -jobs: - build: - docker: - - image: circleci/openjdk:8-jdk - working_directory: ~/arkecosystem/crypto - environment: - JVM_OPTS: -Xmx3200m - TERM: dumb - steps: - - checkout - - restore_cache: - keys: - - v1-dependencies-{{ checksum "build.gradle" }} - - v1-dependencies- - - run: gradle dependencies - - save_cache: - paths: - - ~/.gradle - key: v1-dependencies-{{ checksum "build.gradle" }} - - run: - name: Tests - command: | - gradle test - gradle jacocoTestReport - - run: - name: Codecov - when: on_success - command: bash <(curl -s https://codecov.io/bash) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..6d521470 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,18 @@ +name: Test + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Install + run: gradle dependencies + - name: Test + run: gradle test From bbe2838bc6464e2cd3913d0bc7994a06ea9d1338 Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Mon, 23 Sep 2019 10:19:48 +0300 Subject: [PATCH 09/12] ci: adjust job triggers (#58) --- .github/workflows/test.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6d521470..d96c7a24 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,9 +1,14 @@ name: Test -on: [push, pull_request] +on: + push: + branches: + - '**' + pull_request: + types: [opened] jobs: - build: + unit: runs-on: ubuntu-latest steps: From e1965b8a42220ccbaf47096aec2d772c8f2fd9ab Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Mon, 23 Sep 2019 11:46:46 +0300 Subject: [PATCH 10/12] ci: report coverage to codecov (#59) --- .github/workflows/test.yml | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d96c7a24..61b4922d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,16 +8,18 @@ on: types: [opened] jobs: - unit: - runs-on: ubuntu-latest + unit: + runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v1 - - name: Set up JDK 1.8 - uses: actions/setup-java@v1 - with: - java-version: 1.8 - - name: Install - run: gradle dependencies - - name: Test - run: gradle test + steps: + - uses: actions/checkout@v1 + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Install + run: gradle dependencies + - name: Test + run: gradle test && gradle jacocoTestReport + - name: Codecov + run: bash <(curl -s https://codecov.io/bash) -t ${{ secrets.CODECOV_TOKEN }} From 26cc5b511ea7a1599896b461876c3d0f7b7da84b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Sep 2019 13:50:46 +0300 Subject: [PATCH 11/12] chore(deps): add renovate.json (#60) --- renovate.json | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 renovate.json diff --git a/renovate.json b/renovate.json new file mode 100644 index 00000000..042ab22c --- /dev/null +++ b/renovate.json @@ -0,0 +1,3 @@ +{ + "extends": ["config:base", ":preserveSemverRanges"] +} From 34e8bd4a4a8df40dab849c0b6ba362187e3fbfb2 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 27 Sep 2019 10:51:01 +0000 Subject: [PATCH 12/12] chore(deps): update dependency gradle to v5 --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 196cac00..f8ea1501 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip