From 4dd3a3370b94c8086860927dd5f01fd2b350b975 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Tue, 23 Aug 2016 23:06:59 +0200 Subject: [PATCH] Always use utility method in KeyCrypterScrypt for determining the scrypt salt. --- core/src/test/java/org/bitcoinj/core/ECKeyTest.java | 7 +------ .../java/org/bitcoinj/crypto/KeyCrypterScryptTest.java | 6 ++---- core/src/test/java/org/bitcoinj/wallet/WalletTest.java | 7 ++----- 3 files changed, 5 insertions(+), 15 deletions(-) diff --git a/core/src/test/java/org/bitcoinj/core/ECKeyTest.java b/core/src/test/java/org/bitcoinj/core/ECKeyTest.java index ed1fe56f..0df376ae 100644 --- a/core/src/test/java/org/bitcoinj/core/ECKeyTest.java +++ b/core/src/test/java/org/bitcoinj/core/ECKeyTest.java @@ -42,7 +42,6 @@ import org.spongycastle.crypto.params.KeyParameter; import java.io.InputStream; import java.math.BigInteger; -import java.security.SecureRandom; import java.security.SignatureException; import java.util.Arrays; import java.util.List; @@ -65,11 +64,7 @@ public class ECKeyTest { @Before public void setUp() throws Exception { - SecureRandom secureRandom = new SecureRandom(); - - byte[] salt = new byte[KeyCrypterScrypt.SALT_LENGTH]; - secureRandom.nextBytes(salt); - Protos.ScryptParameters.Builder scryptParametersBuilder = Protos.ScryptParameters.newBuilder().setSalt(ByteString.copyFrom(salt)); + Protos.ScryptParameters.Builder scryptParametersBuilder = Protos.ScryptParameters.newBuilder().setSalt(ByteString.copyFrom(KeyCrypterScrypt.randomSalt())); ScryptParameters scryptParameters = scryptParametersBuilder.build(); keyCrypter = new KeyCrypterScrypt(scryptParameters); diff --git a/core/src/test/java/org/bitcoinj/crypto/KeyCrypterScryptTest.java b/core/src/test/java/org/bitcoinj/crypto/KeyCrypterScryptTest.java index 8971025f..9cc66d38 100644 --- a/core/src/test/java/org/bitcoinj/crypto/KeyCrypterScryptTest.java +++ b/core/src/test/java/org/bitcoinj/crypto/KeyCrypterScryptTest.java @@ -28,7 +28,6 @@ import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.security.SecureRandom; import java.util.Random; import java.util.UUID; @@ -50,9 +49,8 @@ public class KeyCrypterScryptTest { @Before public void setUp() throws Exception { - byte[] salt = new byte[KeyCrypterScrypt.SALT_LENGTH]; - new SecureRandom().nextBytes(salt); - Protos.ScryptParameters.Builder scryptParametersBuilder = Protos.ScryptParameters.newBuilder().setSalt(ByteString.copyFrom(salt)); + Protos.ScryptParameters.Builder scryptParametersBuilder = Protos.ScryptParameters.newBuilder() + .setSalt(ByteString.copyFrom(KeyCrypterScrypt.randomSalt())); scryptParameters = scryptParametersBuilder.build(); BriefLogFormatter.init(); diff --git a/core/src/test/java/org/bitcoinj/wallet/WalletTest.java b/core/src/test/java/org/bitcoinj/wallet/WalletTest.java index 6273922b..74e30858 100644 --- a/core/src/test/java/org/bitcoinj/wallet/WalletTest.java +++ b/core/src/test/java/org/bitcoinj/wallet/WalletTest.java @@ -93,8 +93,6 @@ public class WalletTest extends TestWithWallet { private static final CharSequence PASSWORD1 = "my helicopter contains eels"; private static final CharSequence WRONG_PASSWORD = "nothing noone nobody nowhere"; - private SecureRandom secureRandom = new SecureRandom(); - private final Address OTHER_ADDRESS = new ECKey().toAddress(PARAMS); @Before @@ -2094,9 +2092,8 @@ public class WalletTest extends TestWithWallet { // Try added an ECKey that was encrypted with a differenct ScryptParameters (i.e. a non-homogenous key). // This is not allowed as the ScryptParameters is stored at the Wallet level. - byte[] salt = new byte[KeyCrypterScrypt.SALT_LENGTH]; - secureRandom.nextBytes(salt); - Protos.ScryptParameters.Builder scryptParametersBuilder = Protos.ScryptParameters.newBuilder().setSalt(ByteString.copyFrom(salt)); + Protos.ScryptParameters.Builder scryptParametersBuilder = Protos.ScryptParameters.newBuilder() + .setSalt(ByteString.copyFrom(KeyCrypterScrypt.randomSalt())); Protos.ScryptParameters scryptParameters = scryptParametersBuilder.build(); KeyCrypter keyCrypterDifferent = new KeyCrypterScrypt(scryptParameters); ECKey ecKeyDifferent = new ECKey();