From b1cc4fe006244a98312f3f473d18ebb8930b26d5 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Mon, 16 Aug 2021 15:38:36 +0100 Subject: [PATCH] Replace Spongy Castle with Bouncy Castle. --- bramble-core/build.gradle | 2 +- .../bramble/crypto/CryptoComponentImpl.java | 6 +-- .../bramble/crypto/MessageEncrypter.java | 54 +++++++++---------- .../bramble/crypto/ScryptKdf.java | 2 +- .../bramble/crypto/Sec1KeyParser.java | 10 ++-- .../bramble/crypto/Sec1PrivateKey.java | 2 +- .../bramble/crypto/Sec1PublicKey.java | 2 +- .../bramble/crypto/TransportCryptoImpl.java | 4 +- .../XSalsa20Poly1305AuthenticatedCipher.java | 12 ++--- .../plugin/tor/TorRendezvousCryptoImpl.java | 6 +-- .../rendezvous/KeyMaterialSourceImpl.java | 6 +-- .../bramble/crypto/Blake2bDigestTest.java | 2 +- .../EllipticCurveMultiplicationTest.java | 24 ++++----- .../crypto/EllipticCurvePerformanceTest.java | 40 +++++++------- .../bramble/crypto/MessageEncrypterTest.java | 2 +- .../bramble/crypto/PseudoRandom.java | 10 ++-- bramble-core/witness.gradle | 2 +- briar-android/witness.gradle | 2 +- .../org/briarproject/briar/headless/Main.kt | 2 +- .../headless/contact/ContactControllerImpl.kt | 6 +-- .../messaging/MessagingControllerImpl.kt | 4 +- .../messaging/MessagingControllerImplTest.kt | 4 +- 22 files changed, 101 insertions(+), 103 deletions(-) diff --git a/bramble-core/build.gradle b/bramble-core/build.gradle index d6e813963..057516595 100644 --- a/bramble-core/build.gradle +++ b/bramble-core/build.gradle @@ -10,7 +10,7 @@ apply from: '../dagger.gradle' dependencies { implementation project(path: ':bramble-api', configuration: 'default') - implementation 'com.madgag.spongycastle:core:1.58.0.0' + implementation 'org.bouncycastle:bcprov-jdk15on:1.58' implementation 'com.h2database:h2:1.4.192' // The last version that supports Java 1.6 implementation 'org.bitlet:weupnp:0.1.4' implementation 'net.i2p.crypto:eddsa:0.2.0' diff --git a/bramble-core/src/main/java/org/briarproject/bramble/crypto/CryptoComponentImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/crypto/CryptoComponentImpl.java index 7a30b7ce6..2f3741826 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/crypto/CryptoComponentImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/crypto/CryptoComponentImpl.java @@ -4,6 +4,9 @@ import net.i2p.crypto.eddsa.EdDSAPrivateKey; import net.i2p.crypto.eddsa.EdDSAPublicKey; import net.i2p.crypto.eddsa.KeyPairGenerator; +import org.bouncycastle.crypto.CryptoException; +import org.bouncycastle.crypto.Digest; +import org.bouncycastle.crypto.digests.Blake2bDigest; import org.briarproject.bramble.api.crypto.AgreementPrivateKey; import org.briarproject.bramble.api.crypto.AgreementPublicKey; import org.briarproject.bramble.api.crypto.CryptoComponent; @@ -20,9 +23,6 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.system.SecureRandomProvider; import org.briarproject.bramble.util.ByteUtils; import org.briarproject.bramble.util.StringUtils; -import org.spongycastle.crypto.CryptoException; -import org.spongycastle.crypto.Digest; -import org.spongycastle.crypto.digests.Blake2bDigest; import org.whispersystems.curve25519.Curve25519; import org.whispersystems.curve25519.Curve25519KeyPair; diff --git a/bramble-core/src/main/java/org/briarproject/bramble/crypto/MessageEncrypter.java b/bramble-core/src/main/java/org/briarproject/bramble/crypto/MessageEncrypter.java index 7154ea327..a9494c957 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/crypto/MessageEncrypter.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/crypto/MessageEncrypter.java @@ -1,38 +1,38 @@ package org.briarproject.bramble.crypto; +import org.bouncycastle.asn1.teletrust.TeleTrusTNamedCurves; +import org.bouncycastle.asn1.x9.X9ECParameters; +import org.bouncycastle.crypto.AsymmetricCipherKeyPair; +import org.bouncycastle.crypto.BasicAgreement; +import org.bouncycastle.crypto.BlockCipher; +import org.bouncycastle.crypto.CipherParameters; +import org.bouncycastle.crypto.CryptoException; +import org.bouncycastle.crypto.DerivationFunction; +import org.bouncycastle.crypto.KeyEncoder; +import org.bouncycastle.crypto.Mac; +import org.bouncycastle.crypto.agreement.ECDHCBasicAgreement; +import org.bouncycastle.crypto.digests.SHA256Digest; +import org.bouncycastle.crypto.engines.AESLightEngine; +import org.bouncycastle.crypto.engines.IESEngine; +import org.bouncycastle.crypto.generators.ECKeyPairGenerator; +import org.bouncycastle.crypto.generators.EphemeralKeyPairGenerator; +import org.bouncycastle.crypto.generators.KDF2BytesGenerator; +import org.bouncycastle.crypto.macs.HMac; +import org.bouncycastle.crypto.modes.CBCBlockCipher; +import org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher; +import org.bouncycastle.crypto.params.AsymmetricKeyParameter; +import org.bouncycastle.crypto.params.ECDomainParameters; +import org.bouncycastle.crypto.params.ECKeyGenerationParameters; +import org.bouncycastle.crypto.params.ECPrivateKeyParameters; +import org.bouncycastle.crypto.params.ECPublicKeyParameters; +import org.bouncycastle.crypto.params.IESWithCipherParameters; +import org.bouncycastle.crypto.parsers.ECIESPublicKeyParser; import org.briarproject.bramble.api.crypto.KeyPair; import org.briarproject.bramble.api.crypto.KeyParser; import org.briarproject.bramble.api.crypto.PrivateKey; import org.briarproject.bramble.api.crypto.PublicKey; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.util.StringUtils; -import org.spongycastle.asn1.teletrust.TeleTrusTNamedCurves; -import org.spongycastle.asn1.x9.X9ECParameters; -import org.spongycastle.crypto.AsymmetricCipherKeyPair; -import org.spongycastle.crypto.BasicAgreement; -import org.spongycastle.crypto.BlockCipher; -import org.spongycastle.crypto.CipherParameters; -import org.spongycastle.crypto.CryptoException; -import org.spongycastle.crypto.DerivationFunction; -import org.spongycastle.crypto.KeyEncoder; -import org.spongycastle.crypto.Mac; -import org.spongycastle.crypto.agreement.ECDHCBasicAgreement; -import org.spongycastle.crypto.digests.SHA256Digest; -import org.spongycastle.crypto.engines.AESLightEngine; -import org.spongycastle.crypto.engines.IESEngine; -import org.spongycastle.crypto.generators.ECKeyPairGenerator; -import org.spongycastle.crypto.generators.EphemeralKeyPairGenerator; -import org.spongycastle.crypto.generators.KDF2BytesGenerator; -import org.spongycastle.crypto.macs.HMac; -import org.spongycastle.crypto.modes.CBCBlockCipher; -import org.spongycastle.crypto.paddings.PaddedBufferedBlockCipher; -import org.spongycastle.crypto.params.AsymmetricKeyParameter; -import org.spongycastle.crypto.params.ECDomainParameters; -import org.spongycastle.crypto.params.ECKeyGenerationParameters; -import org.spongycastle.crypto.params.ECPrivateKeyParameters; -import org.spongycastle.crypto.params.ECPublicKeyParameters; -import org.spongycastle.crypto.params.IESWithCipherParameters; -import org.spongycastle.crypto.parsers.ECIESPublicKeyParser; import java.io.FileInputStream; import java.io.FileOutputStream; diff --git a/bramble-core/src/main/java/org/briarproject/bramble/crypto/ScryptKdf.java b/bramble-core/src/main/java/org/briarproject/bramble/crypto/ScryptKdf.java index 76ad68417..d330024f1 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/crypto/ScryptKdf.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/crypto/ScryptKdf.java @@ -1,9 +1,9 @@ package org.briarproject.bramble.crypto; +import org.bouncycastle.crypto.generators.SCrypt; import org.briarproject.bramble.api.crypto.SecretKey; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.util.StringUtils; -import org.spongycastle.crypto.generators.SCrypt; import java.util.logging.Logger; diff --git a/bramble-core/src/main/java/org/briarproject/bramble/crypto/Sec1KeyParser.java b/bramble-core/src/main/java/org/briarproject/bramble/crypto/Sec1KeyParser.java index c3b6ac9ab..979551275 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/crypto/Sec1KeyParser.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/crypto/Sec1KeyParser.java @@ -1,14 +1,14 @@ package org.briarproject.bramble.crypto; +import org.bouncycastle.crypto.params.ECDomainParameters; +import org.bouncycastle.crypto.params.ECPrivateKeyParameters; +import org.bouncycastle.crypto.params.ECPublicKeyParameters; +import org.bouncycastle.math.ec.ECCurve; +import org.bouncycastle.math.ec.ECPoint; import org.briarproject.bramble.api.crypto.KeyParser; import org.briarproject.bramble.api.crypto.PrivateKey; import org.briarproject.bramble.api.crypto.PublicKey; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; -import org.spongycastle.crypto.params.ECDomainParameters; -import org.spongycastle.crypto.params.ECPrivateKeyParameters; -import org.spongycastle.crypto.params.ECPublicKeyParameters; -import org.spongycastle.math.ec.ECCurve; -import org.spongycastle.math.ec.ECPoint; import java.math.BigInteger; import java.security.GeneralSecurityException; diff --git a/bramble-core/src/main/java/org/briarproject/bramble/crypto/Sec1PrivateKey.java b/bramble-core/src/main/java/org/briarproject/bramble/crypto/Sec1PrivateKey.java index 7d93a9cbb..086159757 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/crypto/Sec1PrivateKey.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/crypto/Sec1PrivateKey.java @@ -1,8 +1,8 @@ package org.briarproject.bramble.crypto; +import org.bouncycastle.crypto.params.ECPrivateKeyParameters; import org.briarproject.bramble.api.crypto.PrivateKey; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; -import org.spongycastle.crypto.params.ECPrivateKeyParameters; import javax.annotation.concurrent.Immutable; diff --git a/bramble-core/src/main/java/org/briarproject/bramble/crypto/Sec1PublicKey.java b/bramble-core/src/main/java/org/briarproject/bramble/crypto/Sec1PublicKey.java index 3f4046f42..c22fe6fbb 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/crypto/Sec1PublicKey.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/crypto/Sec1PublicKey.java @@ -1,8 +1,8 @@ package org.briarproject.bramble.crypto; +import org.bouncycastle.crypto.params.ECPublicKeyParameters; import org.briarproject.bramble.api.crypto.PublicKey; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; -import org.spongycastle.crypto.params.ECPublicKeyParameters; import javax.annotation.concurrent.Immutable; diff --git a/bramble-core/src/main/java/org/briarproject/bramble/crypto/TransportCryptoImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/crypto/TransportCryptoImpl.java index 2bf4c7b21..d02d1dcde 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/crypto/TransportCryptoImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/crypto/TransportCryptoImpl.java @@ -1,5 +1,7 @@ package org.briarproject.bramble.crypto; +import org.bouncycastle.crypto.Digest; +import org.bouncycastle.crypto.digests.Blake2bDigest; import org.briarproject.bramble.api.crypto.CryptoComponent; import org.briarproject.bramble.api.crypto.KeyPair; import org.briarproject.bramble.api.crypto.PublicKey; @@ -9,8 +11,6 @@ import org.briarproject.bramble.api.plugin.TransportId; import org.briarproject.bramble.api.transport.IncomingKeys; import org.briarproject.bramble.api.transport.OutgoingKeys; import org.briarproject.bramble.api.transport.TransportKeys; -import org.spongycastle.crypto.Digest; -import org.spongycastle.crypto.digests.Blake2bDigest; import java.security.GeneralSecurityException; diff --git a/bramble-core/src/main/java/org/briarproject/bramble/crypto/XSalsa20Poly1305AuthenticatedCipher.java b/bramble-core/src/main/java/org/briarproject/bramble/crypto/XSalsa20Poly1305AuthenticatedCipher.java index fe1f38d9e..5b89fd40b 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/crypto/XSalsa20Poly1305AuthenticatedCipher.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/crypto/XSalsa20Poly1305AuthenticatedCipher.java @@ -1,13 +1,13 @@ package org.briarproject.bramble.crypto; +import org.bouncycastle.crypto.DataLengthException; +import org.bouncycastle.crypto.engines.XSalsa20Engine; +import org.bouncycastle.crypto.generators.Poly1305KeyGenerator; +import org.bouncycastle.crypto.macs.Poly1305; +import org.bouncycastle.crypto.params.KeyParameter; +import org.bouncycastle.crypto.params.ParametersWithIV; import org.briarproject.bramble.api.crypto.SecretKey; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; -import org.spongycastle.crypto.DataLengthException; -import org.spongycastle.crypto.engines.XSalsa20Engine; -import org.spongycastle.crypto.generators.Poly1305KeyGenerator; -import org.spongycastle.crypto.macs.Poly1305; -import org.spongycastle.crypto.params.KeyParameter; -import org.spongycastle.crypto.params.ParametersWithIV; import java.security.GeneralSecurityException; diff --git a/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorRendezvousCryptoImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorRendezvousCryptoImpl.java index 1545bcfba..76bfb5373 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorRendezvousCryptoImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorRendezvousCryptoImpl.java @@ -4,10 +4,10 @@ import net.i2p.crypto.eddsa.spec.EdDSANamedCurveSpec; import net.i2p.crypto.eddsa.spec.EdDSANamedCurveTable; import net.i2p.crypto.eddsa.spec.EdDSAPrivateKeySpec; +import org.bouncycastle.crypto.Digest; +import org.bouncycastle.crypto.digests.SHA3Digest; +import org.bouncycastle.util.encoders.Base64; import org.briarproject.bramble.util.Base32; -import org.spongycastle.crypto.Digest; -import org.spongycastle.crypto.digests.SHA3Digest; -import org.spongycastle.util.encoders.Base64; import java.nio.charset.Charset; diff --git a/bramble-core/src/main/java/org/briarproject/bramble/rendezvous/KeyMaterialSourceImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/rendezvous/KeyMaterialSourceImpl.java index 7a2ec3508..a7c9d42ec 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/rendezvous/KeyMaterialSourceImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/rendezvous/KeyMaterialSourceImpl.java @@ -1,11 +1,11 @@ package org.briarproject.bramble.rendezvous; +import org.bouncycastle.crypto.engines.Salsa20Engine; +import org.bouncycastle.crypto.params.KeyParameter; +import org.bouncycastle.crypto.params.ParametersWithIV; import org.briarproject.bramble.api.crypto.SecretKey; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.rendezvous.KeyMaterialSource; -import org.spongycastle.crypto.engines.Salsa20Engine; -import org.spongycastle.crypto.params.KeyParameter; -import org.spongycastle.crypto.params.ParametersWithIV; import javax.annotation.concurrent.GuardedBy; import javax.annotation.concurrent.ThreadSafe; diff --git a/bramble-core/src/test/java/org/briarproject/bramble/crypto/Blake2bDigestTest.java b/bramble-core/src/test/java/org/briarproject/bramble/crypto/Blake2bDigestTest.java index 3154e925f..29b5d8b65 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/crypto/Blake2bDigestTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/crypto/Blake2bDigestTest.java @@ -1,9 +1,9 @@ package org.briarproject.bramble.crypto; +import org.bouncycastle.crypto.digests.Blake2bDigest; import org.briarproject.bramble.test.BrambleTestCase; import org.briarproject.bramble.util.StringUtils; import org.junit.Test; -import org.spongycastle.crypto.digests.Blake2bDigest; import java.util.Random; diff --git a/bramble-core/src/test/java/org/briarproject/bramble/crypto/EllipticCurveMultiplicationTest.java b/bramble-core/src/test/java/org/briarproject/bramble/crypto/EllipticCurveMultiplicationTest.java index b4e639047..1d66ee1eb 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/crypto/EllipticCurveMultiplicationTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/crypto/EllipticCurveMultiplicationTest.java @@ -1,19 +1,19 @@ package org.briarproject.bramble.crypto; +import org.bouncycastle.asn1.teletrust.TeleTrusTNamedCurves; +import org.bouncycastle.asn1.x9.X9ECParameters; +import org.bouncycastle.crypto.AsymmetricCipherKeyPair; +import org.bouncycastle.crypto.agreement.ECDHCBasicAgreement; +import org.bouncycastle.crypto.generators.ECKeyPairGenerator; +import org.bouncycastle.crypto.params.ECDomainParameters; +import org.bouncycastle.crypto.params.ECKeyGenerationParameters; +import org.bouncycastle.crypto.params.ECPrivateKeyParameters; +import org.bouncycastle.crypto.params.ECPublicKeyParameters; +import org.bouncycastle.math.ec.ECCurve; +import org.bouncycastle.math.ec.ECPoint; +import org.bouncycastle.math.ec.MontgomeryLadderMultiplier; import org.briarproject.bramble.test.BrambleTestCase; import org.junit.Test; -import org.spongycastle.asn1.teletrust.TeleTrusTNamedCurves; -import org.spongycastle.asn1.x9.X9ECParameters; -import org.spongycastle.crypto.AsymmetricCipherKeyPair; -import org.spongycastle.crypto.agreement.ECDHCBasicAgreement; -import org.spongycastle.crypto.generators.ECKeyPairGenerator; -import org.spongycastle.crypto.params.ECDomainParameters; -import org.spongycastle.crypto.params.ECKeyGenerationParameters; -import org.spongycastle.crypto.params.ECPrivateKeyParameters; -import org.spongycastle.crypto.params.ECPublicKeyParameters; -import org.spongycastle.math.ec.ECCurve; -import org.spongycastle.math.ec.ECPoint; -import org.spongycastle.math.ec.MontgomeryLadderMultiplier; import java.math.BigInteger; import java.security.SecureRandom; diff --git a/bramble-core/src/test/java/org/briarproject/bramble/crypto/EllipticCurvePerformanceTest.java b/bramble-core/src/test/java/org/briarproject/bramble/crypto/EllipticCurvePerformanceTest.java index abf2798b1..b90ea09e1 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/crypto/EllipticCurvePerformanceTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/crypto/EllipticCurvePerformanceTest.java @@ -3,26 +3,26 @@ package org.briarproject.bramble.crypto; import net.i2p.crypto.eddsa.EdDSASecurityProvider; import net.i2p.crypto.eddsa.KeyPairGenerator; -import org.spongycastle.asn1.sec.SECNamedCurves; -import org.spongycastle.asn1.teletrust.TeleTrusTNamedCurves; -import org.spongycastle.asn1.x9.X9ECParameters; -import org.spongycastle.crypto.AsymmetricCipherKeyPair; -import org.spongycastle.crypto.BasicAgreement; -import org.spongycastle.crypto.Digest; -import org.spongycastle.crypto.agreement.ECDHBasicAgreement; -import org.spongycastle.crypto.agreement.ECDHCBasicAgreement; -import org.spongycastle.crypto.digests.Blake2bDigest; -import org.spongycastle.crypto.generators.ECKeyPairGenerator; -import org.spongycastle.crypto.params.ECDomainParameters; -import org.spongycastle.crypto.params.ECKeyGenerationParameters; -import org.spongycastle.crypto.params.ParametersWithRandom; -import org.spongycastle.crypto.signers.DSADigestSigner; -import org.spongycastle.crypto.signers.DSAKCalculator; -import org.spongycastle.crypto.signers.ECDSASigner; -import org.spongycastle.crypto.signers.HMacDSAKCalculator; -import org.spongycastle.math.ec.ECCurve; -import org.spongycastle.math.ec.ECPoint; -import org.spongycastle.math.ec.MontgomeryLadderMultiplier; +import org.bouncycastle.asn1.sec.SECNamedCurves; +import org.bouncycastle.asn1.teletrust.TeleTrusTNamedCurves; +import org.bouncycastle.asn1.x9.X9ECParameters; +import org.bouncycastle.crypto.AsymmetricCipherKeyPair; +import org.bouncycastle.crypto.BasicAgreement; +import org.bouncycastle.crypto.Digest; +import org.bouncycastle.crypto.agreement.ECDHBasicAgreement; +import org.bouncycastle.crypto.agreement.ECDHCBasicAgreement; +import org.bouncycastle.crypto.digests.Blake2bDigest; +import org.bouncycastle.crypto.generators.ECKeyPairGenerator; +import org.bouncycastle.crypto.params.ECDomainParameters; +import org.bouncycastle.crypto.params.ECKeyGenerationParameters; +import org.bouncycastle.crypto.params.ParametersWithRandom; +import org.bouncycastle.crypto.signers.DSADigestSigner; +import org.bouncycastle.crypto.signers.DSAKCalculator; +import org.bouncycastle.crypto.signers.ECDSASigner; +import org.bouncycastle.crypto.signers.HMacDSAKCalculator; +import org.bouncycastle.math.ec.ECCurve; +import org.bouncycastle.math.ec.ECPoint; +import org.bouncycastle.math.ec.MontgomeryLadderMultiplier; import org.whispersystems.curve25519.Curve25519; import org.whispersystems.curve25519.Curve25519KeyPair; diff --git a/bramble-core/src/test/java/org/briarproject/bramble/crypto/MessageEncrypterTest.java b/bramble-core/src/test/java/org/briarproject/bramble/crypto/MessageEncrypterTest.java index 8b15e222a..164c92a52 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/crypto/MessageEncrypterTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/crypto/MessageEncrypterTest.java @@ -1,11 +1,11 @@ package org.briarproject.bramble.crypto; +import org.bouncycastle.crypto.CryptoException; import org.briarproject.bramble.api.crypto.KeyPair; import org.briarproject.bramble.api.crypto.PrivateKey; import org.briarproject.bramble.api.crypto.PublicKey; import org.briarproject.bramble.test.BrambleTestCase; import org.junit.Test; -import org.spongycastle.crypto.CryptoException; import java.security.SecureRandom; diff --git a/bramble-core/src/test/java/org/briarproject/bramble/crypto/PseudoRandom.java b/bramble-core/src/test/java/org/briarproject/bramble/crypto/PseudoRandom.java index e778a1fda..ccb80a42f 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/crypto/PseudoRandom.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/crypto/PseudoRandom.java @@ -1,11 +1,11 @@ package org.briarproject.bramble.crypto; +import org.bouncycastle.crypto.Digest; +import org.bouncycastle.crypto.digests.Blake2bDigest; +import org.bouncycastle.crypto.engines.Salsa20Engine; +import org.bouncycastle.crypto.params.KeyParameter; +import org.bouncycastle.crypto.params.ParametersWithIV; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; -import org.spongycastle.crypto.Digest; -import org.spongycastle.crypto.digests.Blake2bDigest; -import org.spongycastle.crypto.engines.Salsa20Engine; -import org.spongycastle.crypto.params.KeyParameter; -import org.spongycastle.crypto.params.ParametersWithIV; import javax.annotation.concurrent.NotThreadSafe; diff --git a/bramble-core/witness.gradle b/bramble-core/witness.gradle index 082897e89..493152371 100644 --- a/bramble-core/witness.gradle +++ b/bramble-core/witness.gradle @@ -15,7 +15,6 @@ dependencyVerification { 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava:listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99', 'com.google.j2objc:j2objc-annotations:1.1:j2objc-annotations-1.1.jar:2994a7eb78f2710bd3d3bfb639b2c94e219cedac0d4d084d516e78c16dddecf6', 'com.h2database:h2:1.4.192:h2-1.4.192.jar:225b22e9857235c46c93861410b60b8c81c10dc8985f4faf188985ba5445126c', - 'com.madgag.spongycastle:core:1.58.0.0:core-1.58.0.0.jar:199617dd5698c5a9312b898c0a4cec7ce9dd8649d07f65d91629f58229d72728', 'com.squareup:javapoet:1.13.0:javapoet-1.13.0.jar:4c7517e848a71b36d069d12bb3bf46a70fd4cda3105d822b0ed2e19c00b69291', 'javax.annotation:jsr250-api:1.0:jsr250-api-1.0.jar:a1a922d0d9b6d183ed3800dfac01d1e1eb159f0e8c6f94736931c1def54a941f', 'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff', @@ -27,6 +26,7 @@ dependencyVerification { 'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd', 'org.apache-extras.beanshell:bsh:2.0b6:bsh-2.0b6.jar:a17955976070c0573235ee662f2794a78082758b61accffce8d3f8aedcd91047', 'org.bitlet:weupnp:0.1.4:weupnp-0.1.4.jar:88df7e6504929d00bdb832863761385c68ab92af945b04f0770b126270a444fb', + 'org.bouncycastle:bcprov-jdk15on:1.58:bcprov-jdk15on-1.58.jar:eb61ab61065ed96f9f2d5cde94d326233c09fdec9333c1185f2fa65ee88a4236', 'org.briarproject:jtorctl:0.3:jtorctl-0.3.jar:f2939238a097898998432effe93b0334d97a787972ab3a91a8973a1d309fc864', 'org.checkerframework:checker-compat-qual:2.5.3:checker-compat-qual-2.5.3.jar:d76b9afea61c7c082908023f0cbc1427fab9abd2df915c8b8a3e7a509bccbc6d', 'org.checkerframework:checker-qual:2.5.2:checker-qual-2.5.2.jar:64b02691c8b9d4e7700f8ee2e742dce7ea2c6e81e662b7522c9ee3bf568c040a', diff --git a/briar-android/witness.gradle b/briar-android/witness.gradle index 2794176e9..c0f90b3a0 100644 --- a/briar-android/witness.gradle +++ b/briar-android/witness.gradle @@ -187,8 +187,8 @@ dependencyVerification { 'org.apache.maven:maven-repository-metadata:2.2.1:maven-repository-metadata-2.2.1.jar:5fe283f47b0e7f7d95a4252af3fa7a0db4d8f080cd9df308608c0472b8f168a1', 'org.apache.maven:maven-settings:2.2.1:maven-settings-2.2.1.jar:9a9f556713a404e770c9dbdaed7eb086078014c989291960c76fdde6db4192f7', 'org.bouncycastle:bcpkix-jdk15on:1.56:bcpkix-jdk15on-1.56.jar:7043dee4e9e7175e93e0b36f45b1ec1ecb893c5f755667e8b916eb8dd201c6ca', - 'org.bouncycastle:bcprov-jdk15on:1.52:bcprov-jdk15on-1.52.jar:0dc4d181e4d347893c2ddbd2e6cd5d7287fc651c03648fa64b2341c7366b1773', 'org.bouncycastle:bcprov-jdk15on:1.56:bcprov-jdk15on-1.56.jar:963e1ee14f808ffb99897d848ddcdb28fa91ddda867eb18d303e82728f878349', + 'org.bouncycastle:bcprov-jdk15on:1.58:bcprov-jdk15on-1.58.jar:eb61ab61065ed96f9f2d5cde94d326233c09fdec9333c1185f2fa65ee88a4236', 'org.checkerframework:checker-compat-qual:2.5.3:checker-compat-qual-2.5.3.jar:d76b9afea61c7c082908023f0cbc1427fab9abd2df915c8b8a3e7a509bccbc6d', 'org.checkerframework:checker-qual:2.5.2:checker-qual-2.5.2.jar:64b02691c8b9d4e7700f8ee2e742dce7ea2c6e81e662b7522c9ee3bf568c040a', 'org.checkerframework:checker-qual:2.8.1:checker-qual-2.8.1.jar:9103499008bcecd4e948da29b17864abb64304e15706444ae209d17ebe0575df', diff --git a/briar-headless/src/main/java/org/briarproject/briar/headless/Main.kt b/briar-headless/src/main/java/org/briarproject/briar/headless/Main.kt index dbbeebee3..6c091f71d 100644 --- a/briar-headless/src/main/java/org/briarproject/briar/headless/Main.kt +++ b/briar-headless/src/main/java/org/briarproject/briar/headless/Main.kt @@ -6,10 +6,10 @@ import com.github.ajalt.clikt.parameters.options.default import com.github.ajalt.clikt.parameters.options.flag import com.github.ajalt.clikt.parameters.options.option import com.github.ajalt.clikt.parameters.types.int +import org.bouncycastle.util.encoders.Base64.toBase64String import org.briarproject.bramble.BrambleCoreEagerSingletons import org.briarproject.briar.BriarCoreEagerSingletons import org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY -import org.spongycastle.util.encoders.Base64.toBase64String import java.io.File import java.io.File.separator import java.io.IOException diff --git a/briar-headless/src/main/java/org/briarproject/briar/headless/contact/ContactControllerImpl.kt b/briar-headless/src/main/java/org/briarproject/briar/headless/contact/ContactControllerImpl.kt index 168520e56..10d5222ae 100644 --- a/briar-headless/src/main/java/org/briarproject/briar/headless/contact/ContactControllerImpl.kt +++ b/briar-headless/src/main/java/org/briarproject/briar/headless/contact/ContactControllerImpl.kt @@ -3,9 +3,9 @@ package org.briarproject.briar.headless.contact import com.fasterxml.jackson.databind.ObjectMapper import io.javalin.http.BadRequestResponse import io.javalin.http.Context -import io.javalin.http.ForbiddenResponse -import io.javalin.http.HttpResponseException import io.javalin.http.NotFoundResponse +import org.bouncycastle.util.encoders.Base64 +import org.bouncycastle.util.encoders.DecoderException import org.briarproject.bramble.api.connection.ConnectionRegistry import org.briarproject.bramble.api.contact.ContactManager import org.briarproject.bramble.api.contact.HandshakeLinkConstants.LINK_REGEX @@ -31,8 +31,6 @@ import org.briarproject.briar.headless.getFromJson import org.briarproject.briar.headless.json.JsonDict import org.eclipse.jetty.http.HttpStatus.BAD_REQUEST_400 import org.eclipse.jetty.http.HttpStatus.FORBIDDEN_403 -import org.spongycastle.util.encoders.Base64 -import org.spongycastle.util.encoders.DecoderException import java.security.GeneralSecurityException import javax.annotation.concurrent.Immutable import javax.inject.Inject diff --git a/briar-headless/src/main/java/org/briarproject/briar/headless/messaging/MessagingControllerImpl.kt b/briar-headless/src/main/java/org/briarproject/briar/headless/messaging/MessagingControllerImpl.kt index 4e1aabdb6..b821e0d78 100644 --- a/briar-headless/src/main/java/org/briarproject/briar/headless/messaging/MessagingControllerImpl.kt +++ b/briar-headless/src/main/java/org/briarproject/briar/headless/messaging/MessagingControllerImpl.kt @@ -4,6 +4,8 @@ import com.fasterxml.jackson.databind.ObjectMapper import io.javalin.http.BadRequestResponse import io.javalin.http.Context import io.javalin.http.NotFoundResponse +import org.bouncycastle.util.encoders.Base64 +import org.bouncycastle.util.encoders.DecoderException import org.briarproject.bramble.api.contact.Contact import org.briarproject.bramble.api.contact.ContactId import org.briarproject.bramble.api.contact.ContactManager @@ -36,8 +38,6 @@ import org.briarproject.briar.headless.event.output import org.briarproject.briar.headless.getContactIdFromPathParam import org.briarproject.briar.headless.getFromJson import org.briarproject.briar.headless.json.JsonDict -import org.spongycastle.util.encoders.Base64 -import org.spongycastle.util.encoders.DecoderException import java.util.concurrent.Executor import javax.annotation.concurrent.Immutable import javax.inject.Inject diff --git a/briar-headless/src/test/java/org/briarproject/briar/headless/messaging/MessagingControllerImplTest.kt b/briar-headless/src/test/java/org/briarproject/briar/headless/messaging/MessagingControllerImplTest.kt index 588caf0db..200d5ee12 100644 --- a/briar-headless/src/test/java/org/briarproject/briar/headless/messaging/MessagingControllerImplTest.kt +++ b/briar-headless/src/test/java/org/briarproject/briar/headless/messaging/MessagingControllerImplTest.kt @@ -11,6 +11,7 @@ import io.mockk.just import io.mockk.mockk import io.mockk.mockkStatic import io.mockk.runs +import org.bouncycastle.util.encoders.Base64 import org.briarproject.bramble.api.contact.ContactId import org.briarproject.bramble.api.db.NoSuchContactException import org.briarproject.bramble.api.sync.MessageId @@ -39,7 +40,6 @@ import org.briarproject.briar.headless.json.JsonDict import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Assertions.assertThrows import org.junit.jupiter.api.Test -import org.spongycastle.util.encoders.Base64 import kotlin.random.Random internal class MessagingControllerImplTest : ControllerTest() { @@ -213,7 +213,7 @@ internal class MessagingControllerImplTest : ControllerTest() { @Test fun markMessageRead() { mockkStatic("org.briarproject.briar.headless.RouterKt") - mockkStatic("org.spongycastle.util.encoders.Base64") + mockkStatic("org.bouncycastle.util.encoders.Base64") expectGetContact() val messageIdString = message.id.bytes.toString()