Migrate from SpongyCastle back to BouncyCastle.

Google moved their broken BouncyCastle out of the way with Android 3.0
(see 0ac85ead96%5E%21/).
This commit is contained in:
Andreas Schildbach
2017-08-22 16:35:50 +02:00
parent 5c768c6ae5
commit ad262de961
46 changed files with 79 additions and 79 deletions

View File

@@ -6,7 +6,7 @@ version = '0.15-SNAPSHOT'
archivesBaseName = 'bitcoinj-core'
dependencies {
compile 'com.madgag.spongycastle:core:1.58.0.0'
compile 'org.bouncycastle:bcprov-jdk15on:1.58'
implementation 'com.lambdaworks:scrypt:1.4.0'
implementation 'com.google.guava:guava:24.0-android'
compile 'com.google.protobuf:protobuf-java:3.5.1'

View File

@@ -31,23 +31,23 @@ import org.bitcoinj.wallet.Protos;
import org.bitcoinj.wallet.Wallet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.spongycastle.asn1.*;
import org.spongycastle.asn1.x9.X9ECParameters;
import org.spongycastle.asn1.x9.X9IntegerConverter;
import org.spongycastle.crypto.AsymmetricCipherKeyPair;
import org.spongycastle.crypto.digests.SHA256Digest;
import org.spongycastle.crypto.ec.CustomNamedCurves;
import org.spongycastle.crypto.generators.ECKeyPairGenerator;
import org.spongycastle.crypto.params.*;
import org.spongycastle.crypto.signers.ECDSASigner;
import org.spongycastle.crypto.signers.HMacDSAKCalculator;
import org.spongycastle.math.ec.ECAlgorithms;
import org.spongycastle.math.ec.ECPoint;
import org.spongycastle.math.ec.FixedPointCombMultiplier;
import org.spongycastle.math.ec.FixedPointUtil;
import org.spongycastle.math.ec.custom.sec.SecP256K1Curve;
import org.spongycastle.util.Properties;
import org.spongycastle.util.encoders.Base64;
import org.bouncycastle.asn1.*;
import org.bouncycastle.asn1.x9.X9ECParameters;
import org.bouncycastle.asn1.x9.X9IntegerConverter;
import org.bouncycastle.crypto.AsymmetricCipherKeyPair;
import org.bouncycastle.crypto.digests.SHA256Digest;
import org.bouncycastle.crypto.ec.CustomNamedCurves;
import org.bouncycastle.crypto.generators.ECKeyPairGenerator;
import org.bouncycastle.crypto.params.*;
import org.bouncycastle.crypto.signers.ECDSASigner;
import org.bouncycastle.crypto.signers.HMacDSAKCalculator;
import org.bouncycastle.math.ec.ECAlgorithms;
import org.bouncycastle.math.ec.ECPoint;
import org.bouncycastle.math.ec.FixedPointCombMultiplier;
import org.bouncycastle.math.ec.FixedPointUtil;
import org.bouncycastle.math.ec.custom.sec.SecP256K1Curve;
import org.bouncycastle.util.Properties;
import org.bouncycastle.util.encoders.Base64;
import javax.annotation.Nullable;
import java.io.ByteArrayOutputStream;
@@ -571,7 +571,7 @@ public class ECKey implements EncryptableItem {
try {
// BouncyCastle by default is strict about parsing ASN.1 integers. We relax this check, because some
// Bitcoin signatures would not parse.
Properties.setThreadOverride("org.spongycastle.asn1.allow_unsafe_integer", true);
Properties.setThreadOverride("org.bouncycastle.asn1.allow_unsafe_integer", true);
decoder = new ASN1InputStream(bytes);
final ASN1Primitive seqObj = decoder.readObject();
if (seqObj == null)
@@ -594,7 +594,7 @@ public class ECKey implements EncryptableItem {
} finally {
if (decoder != null)
try { decoder.close(); } catch (IOException x) {}
Properties.removeThreadOverride("org.spongycastle.asn1.allow_unsafe_integer");
Properties.removeThreadOverride("org.bouncycastle.asn1.allow_unsafe_integer");
}
}

View File

@@ -37,7 +37,7 @@ import com.google.common.primitives.Ints;
import com.google.common.primitives.Longs;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.Nullable;
import java.io.*;

View File

@@ -35,7 +35,7 @@ import java.util.concurrent.BlockingQueue;
import java.util.concurrent.TimeUnit;
import java.util.regex.Pattern;
import org.spongycastle.crypto.digests.RIPEMD160Digest;
import org.bouncycastle.crypto.digests.RIPEMD160Digest;
import com.google.common.base.Joiner;
import com.google.common.base.Splitter;

View File

@@ -22,8 +22,8 @@ import org.bitcoinj.core.*;
import com.google.common.base.MoreObjects;
import com.google.common.base.Objects;
import com.google.common.collect.ImmutableList;
import org.spongycastle.crypto.params.KeyParameter;
import org.spongycastle.math.ec.ECPoint;
import org.bouncycastle.crypto.params.KeyParameter;
import org.bouncycastle.math.ec.ECPoint;
import javax.annotation.Nullable;
import java.math.BigInteger;

View File

@@ -18,7 +18,7 @@ package org.bitcoinj.crypto;
import com.google.common.collect.*;
import org.bitcoinj.core.*;
import org.spongycastle.math.ec.*;
import org.bouncycastle.math.ec.*;
import java.math.*;
import java.nio.*;

View File

@@ -21,9 +21,9 @@ import org.bitcoinj.core.ECKey;
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import org.spongycastle.crypto.digests.SHA512Digest;
import org.spongycastle.crypto.macs.HMac;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.digests.SHA512Digest;
import org.bouncycastle.crypto.macs.HMac;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.Nonnull;
import java.nio.ByteBuffer;

View File

@@ -17,7 +17,7 @@
package org.bitcoinj.crypto;
import org.bitcoinj.wallet.Protos.Wallet.EncryptionType;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import java.io.Serializable;

View File

@@ -27,12 +27,12 @@ import org.bitcoinj.wallet.Protos.ScryptParameters;
import org.bitcoinj.wallet.Protos.Wallet.EncryptionType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.spongycastle.crypto.BufferedBlockCipher;
import org.spongycastle.crypto.engines.AESFastEngine;
import org.spongycastle.crypto.modes.CBCBlockCipher;
import org.spongycastle.crypto.paddings.PaddedBufferedBlockCipher;
import org.spongycastle.crypto.params.KeyParameter;
import org.spongycastle.crypto.params.ParametersWithIV;
import org.bouncycastle.crypto.BufferedBlockCipher;
import org.bouncycastle.crypto.engines.AESFastEngine;
import org.bouncycastle.crypto.modes.CBCBlockCipher;
import org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher;
import org.bouncycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.ParametersWithIV;
import java.security.SecureRandom;
import java.util.Arrays;

View File

@@ -16,9 +16,9 @@
package org.bitcoinj.crypto;
import org.spongycastle.math.ec.ECCurve;
import org.spongycastle.math.ec.ECFieldElement;
import org.spongycastle.math.ec.ECPoint;
import org.bouncycastle.math.ec.ECCurve;
import org.bouncycastle.math.ec.ECFieldElement;
import org.bouncycastle.math.ec.ECPoint;
import javax.annotation.Nullable;
import java.math.BigInteger;

View File

@@ -18,12 +18,12 @@ package org.bitcoinj.crypto;
import com.google.common.base.Joiner;
import org.bitcoinj.protocols.payments.PaymentSession;
import org.spongycastle.asn1.ASN1ObjectIdentifier;
import org.spongycastle.asn1.ASN1String;
import org.spongycastle.asn1.x500.AttributeTypeAndValue;
import org.spongycastle.asn1.x500.RDN;
import org.spongycastle.asn1.x500.X500Name;
import org.spongycastle.asn1.x500.style.RFC4519Style;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
import org.bouncycastle.asn1.ASN1String;
import org.bouncycastle.asn1.x500.AttributeTypeAndValue;
import org.bouncycastle.asn1.x500.RDN;
import org.bouncycastle.asn1.x500.X500Name;
import org.bouncycastle.asn1.x500.style.RFC4519Style;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;

View File

@@ -24,7 +24,7 @@ import com.google.common.util.concurrent.ListenableFuture;
import com.google.protobuf.ByteString;
import org.bitcoin.paymentchannel.Protos;
import org.bitcoinj.wallet.SendRequest;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.Nullable;

View File

@@ -31,7 +31,7 @@ import com.google.protobuf.ByteString;
import net.jcip.annotations.GuardedBy;
import org.bitcoin.paymentchannel.Protos;
import org.slf4j.LoggerFactory;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.Nullable;
import java.util.concurrent.locks.ReentrantLock;

View File

@@ -31,7 +31,7 @@ import com.google.common.util.concurrent.SettableFuture;
import com.google.protobuf.ByteString;
import org.bitcoin.paymentchannel.Protos;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.Nullable;
import java.io.IOException;

View File

@@ -31,7 +31,7 @@ import org.bitcoinj.wallet.Wallet;
import org.bitcoinj.wallet.listeners.WalletCoinsReceivedEventListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.Nullable;

View File

@@ -30,7 +30,7 @@ import com.google.protobuf.ByteString;
import net.jcip.annotations.GuardedBy;
import org.bitcoin.paymentchannel.Protos;
import org.slf4j.LoggerFactory;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.Nullable;
import java.util.Map;

View File

@@ -28,7 +28,7 @@ import org.bitcoinj.wallet.Wallet;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.protobuf.ByteString;
import org.bitcoin.paymentchannel.Protos;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.Nullable;

View File

@@ -30,7 +30,7 @@ import org.bitcoinj.crypto.TransactionSignature;
import org.bitcoinj.script.Script;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.Nullable;

View File

@@ -27,7 +27,7 @@ import org.bitcoinj.script.ScriptException;
import org.bitcoinj.wallet.AllowUnconfirmedCoinSelector;
import org.bitcoinj.wallet.SendRequest;
import org.bitcoinj.wallet.Wallet;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.Lists;
import org.slf4j.Logger;

View File

@@ -30,7 +30,7 @@ import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.SettableFuture;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.Nullable;
import java.util.Locale;

View File

@@ -29,7 +29,7 @@ import org.bitcoinj.wallet.SendRequest;
import org.bitcoinj.wallet.Wallet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.Nullable;
import java.math.BigInteger;

View File

@@ -30,7 +30,7 @@ import org.bitcoinj.wallet.SendRequest;
import org.bitcoinj.wallet.Wallet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.Nullable;
import java.math.BigInteger;

View File

@@ -24,7 +24,7 @@ import org.bitcoinj.crypto.TransactionSignature;
import com.google.common.collect.Lists;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.spongycastle.crypto.digests.RIPEMD160Digest;
import org.bouncycastle.crypto.digests.RIPEMD160Digest;
import javax.annotation.Nullable;
import java.io.ByteArrayInputStream;

View File

@@ -26,7 +26,7 @@ import org.bitcoinj.wallet.listeners.KeyChainEventListener;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import com.google.protobuf.ByteString;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.Nullable;
import java.util.*;

View File

@@ -17,7 +17,7 @@
package org.bitcoinj.wallet;
import org.bitcoinj.core.ECKey;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.Nullable;

View File

@@ -32,7 +32,7 @@ import com.google.common.collect.PeekingIterator;
import com.google.protobuf.ByteString;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.Nullable;
import java.math.BigInteger;

View File

@@ -22,7 +22,7 @@ import org.bitcoinj.crypto.*;
import com.google.common.base.Objects;
import com.google.common.base.Splitter;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.Nullable;

View File

@@ -19,7 +19,7 @@ package org.bitcoinj.wallet;
import org.bitcoinj.crypto.KeyCrypter;
import org.bitcoinj.crypto.KeyCrypterException;
import org.bitcoinj.crypto.KeyCrypterScrypt;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.Nullable;

View File

@@ -32,7 +32,7 @@ import org.bitcoinj.script.Script.ScriptType;
import org.bitcoinj.utils.*;
import org.bitcoinj.wallet.listeners.KeyChainEventListener;
import org.slf4j.*;
import org.spongycastle.crypto.params.*;
import org.bouncycastle.crypto.params.*;
import javax.annotation.*;
import java.security.*;

View File

@@ -28,7 +28,7 @@ import org.bitcoinj.crypto.DeterministicKey;
import org.bitcoinj.crypto.KeyCrypter;
import org.bitcoinj.script.Script;
import org.bitcoinj.script.ScriptBuilder;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import java.security.SecureRandom;
import java.util.LinkedHashMap;

View File

@@ -37,7 +37,7 @@ import org.bitcoinj.script.ScriptBuilder;
import org.bitcoinj.utils.ExchangeRate;
import org.bitcoinj.wallet.KeyChain.KeyPurpose;
import org.bitcoinj.wallet.Wallet.MissingSigsMode;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import com.google.common.base.MoreObjects;

View File

@@ -69,7 +69,7 @@ import org.bitcoinj.wallet.listeners.WalletCoinsReceivedEventListener;
import org.bitcoinj.wallet.listeners.WalletCoinsSentEventListener;
import org.bitcoinj.wallet.listeners.WalletReorganizeEventListener;
import org.slf4j.*;
import org.spongycastle.crypto.params.*;
import org.bouncycastle.crypto.params.*;
import javax.annotation.*;
import java.io.*;

View File

@@ -38,7 +38,7 @@ import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import java.io.InputStream;
import java.math.BigInteger;

View File

@@ -20,7 +20,7 @@ package org.bitcoinj.crypto;
import org.bitcoinj.core.*;
import org.bitcoinj.params.*;
import org.junit.*;
import org.spongycastle.crypto.params.*;
import org.bouncycastle.crypto.params.*;
import static org.bitcoinj.core.Utils.*;
import static org.junit.Assert.*;

View File

@@ -36,7 +36,7 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.Nullable;
import java.io.ByteArrayInputStream;

View File

@@ -26,7 +26,7 @@ import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.protobuf.ByteString;
import org.bitcoin.paymentchannel.Protos;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.Nullable;
import java.util.concurrent.BlockingQueue;

View File

@@ -26,7 +26,7 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import java.util.Arrays;
import java.util.Collection;

View File

@@ -38,7 +38,7 @@ import com.google.common.io.Resources;
import org.junit.Before;
import org.junit.Test;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

View File

@@ -32,7 +32,7 @@ import org.bitcoinj.wallet.listeners.KeyChainEventListener;
import com.google.common.collect.ImmutableList;
import org.junit.Before;
import org.junit.Test;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import java.math.BigInteger;
import java.util.Arrays;

View File

@@ -68,7 +68,7 @@ import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import java.io.File;
import java.math.BigInteger;

View File

@@ -87,7 +87,7 @@ import org.bitcoinj.wallet.listeners.WalletCoinsSentEventListener;
import org.bitcoinj.wallet.listeners.WalletReorganizeEventListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.Nullable;
import java.io.*;

View File

@@ -27,7 +27,7 @@ import javafx.event.ActionEvent;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import wallettemplate.controls.BitcoinAddressValidator;
import wallettemplate.utils.TextFieldValidator;
import wallettemplate.utils.WTUtils;

View File

@@ -32,7 +32,7 @@ import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import wallettemplate.utils.KeyDerivationTasks;
import java.time.Duration;

View File

@@ -24,7 +24,7 @@ import javafx.scene.layout.*;
import org.bitcoinj.crypto.*;
import org.bitcoinj.wallet.*;
import org.slf4j.*;
import org.spongycastle.crypto.params.*;
import org.bouncycastle.crypto.params.*;
import com.google.protobuf.ByteString;

View File

@@ -30,7 +30,7 @@ import javafx.scene.control.DatePicker;
import javafx.scene.control.TextArea;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import wallettemplate.utils.TextFieldValidator;
import javax.annotation.Nullable;

View File

@@ -22,7 +22,7 @@ import javafx.beans.property.ReadOnlyDoubleProperty;
import javafx.concurrent.Task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.spongycastle.crypto.params.KeyParameter;
import org.bouncycastle.crypto.params.KeyParameter;
import javax.annotation.*;
import java.time.Duration;