From 84452e9fc077b1d620493c11bd4cec3eb2b53f9e Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Mon, 13 Apr 2020 13:39:45 +0200 Subject: [PATCH] Spongy Castle by Bouncy Castle replacement --- app/build.gradle | 8 +++----- .../java/com/kunzisoft/keepass/crypto/CipherFactory.kt | 3 ++- .../kunzisoft/keepass/crypto/StreamCipherFactory.kt | 10 +++++----- .../kunzisoft/keepass/crypto/engine/ChaCha20Engine.kt | 2 +- .../keepass/database/file/input/DatabaseInputKDBX.kt | 2 +- .../keepass/database/file/output/DatabaseOutputKDBX.kt | 2 +- 6 files changed, 13 insertions(+), 14 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 86df0be34..c3c566ab9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -85,7 +85,6 @@ android { } } -def spongycastleVersion = "1.58.0.0" def room_version = "2.2.5" dependencies { @@ -100,12 +99,11 @@ dependencies { implementation "androidx.core:core-ktx:1.2.0" // To upgrade with style implementation 'com.google.android.material:material:1.0.0' - + // Database implementation "androidx.room:room-runtime:$room_version" kapt "androidx.room:room-compiler:$room_version" - - implementation "com.madgag.spongycastle:core:$spongycastleVersion" - implementation "com.madgag.spongycastle:prov:$spongycastleVersion" + // Crypto + implementation 'org.bouncycastle:bcprov-jdk15on:1.65' // Time implementation 'joda-time:joda-time:2.9.9' // Color diff --git a/app/src/main/java/com/kunzisoft/keepass/crypto/CipherFactory.kt b/app/src/main/java/com/kunzisoft/keepass/crypto/CipherFactory.kt index 0cd383c19..e0251c713 100644 --- a/app/src/main/java/com/kunzisoft/keepass/crypto/CipherFactory.kt +++ b/app/src/main/java/com/kunzisoft/keepass/crypto/CipherFactory.kt @@ -24,7 +24,7 @@ import com.kunzisoft.keepass.crypto.engine.AesEngine import com.kunzisoft.keepass.crypto.engine.ChaCha20Engine import com.kunzisoft.keepass.crypto.engine.CipherEngine import com.kunzisoft.keepass.crypto.engine.TwofishEngine -import org.spongycastle.jce.provider.BouncyCastleProvider +import org.bouncycastle.jce.provider.BouncyCastleProvider import java.security.NoSuchAlgorithmException import java.security.Security import java.util.* @@ -37,6 +37,7 @@ object CipherFactory { private var blacklisted: Boolean = false init { + Security.removeProvider(BouncyCastleProvider.PROVIDER_NAME) Security.addProvider(BouncyCastleProvider()) } diff --git a/app/src/main/java/com/kunzisoft/keepass/crypto/StreamCipherFactory.kt b/app/src/main/java/com/kunzisoft/keepass/crypto/StreamCipherFactory.kt index 1c5ac7dff..d36dcd086 100644 --- a/app/src/main/java/com/kunzisoft/keepass/crypto/StreamCipherFactory.kt +++ b/app/src/main/java/com/kunzisoft/keepass/crypto/StreamCipherFactory.kt @@ -19,11 +19,11 @@ */ package com.kunzisoft.keepass.crypto -import org.spongycastle.crypto.StreamCipher -import org.spongycastle.crypto.engines.ChaCha7539Engine -import org.spongycastle.crypto.engines.Salsa20Engine -import org.spongycastle.crypto.params.KeyParameter -import org.spongycastle.crypto.params.ParametersWithIV +import org.bouncycastle.crypto.StreamCipher +import org.bouncycastle.crypto.engines.ChaCha7539Engine +import org.bouncycastle.crypto.engines.Salsa20Engine +import org.bouncycastle.crypto.params.KeyParameter +import org.bouncycastle.crypto.params.ParametersWithIV object StreamCipherFactory { diff --git a/app/src/main/java/com/kunzisoft/keepass/crypto/engine/ChaCha20Engine.kt b/app/src/main/java/com/kunzisoft/keepass/crypto/engine/ChaCha20Engine.kt index 2789e8954..3c846929b 100644 --- a/app/src/main/java/com/kunzisoft/keepass/crypto/engine/ChaCha20Engine.kt +++ b/app/src/main/java/com/kunzisoft/keepass/crypto/engine/ChaCha20Engine.kt @@ -21,7 +21,7 @@ package com.kunzisoft.keepass.crypto.engine import com.kunzisoft.keepass.database.element.security.EncryptionAlgorithm import com.kunzisoft.keepass.stream.bytes16ToUuid -import org.spongycastle.jce.provider.BouncyCastleProvider +import org.bouncycastle.jce.provider.BouncyCastleProvider import java.security.InvalidAlgorithmParameterException import java.security.InvalidKeyException import java.security.NoSuchAlgorithmException diff --git a/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDBX.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDBX.kt index 16c175392..a7887d290 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDBX.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/file/input/DatabaseInputKDBX.kt @@ -43,7 +43,7 @@ import com.kunzisoft.keepass.database.file.DatabaseKDBXXML import com.kunzisoft.keepass.database.file.DateKDBXUtil import com.kunzisoft.keepass.stream.* import com.kunzisoft.keepass.tasks.ProgressTaskUpdater -import org.spongycastle.crypto.StreamCipher +import org.bouncycastle.crypto.StreamCipher import org.xmlpull.v1.XmlPullParser import org.xmlpull.v1.XmlPullParserException import org.xmlpull.v1.XmlPullParserFactory diff --git a/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseOutputKDBX.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseOutputKDBX.kt index 2aa48695c..e4248946b 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseOutputKDBX.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/file/output/DatabaseOutputKDBX.kt @@ -47,8 +47,8 @@ import com.kunzisoft.keepass.database.file.DatabaseHeaderKDBX import com.kunzisoft.keepass.database.file.DatabaseKDBXXML import com.kunzisoft.keepass.database.file.DateKDBXUtil import com.kunzisoft.keepass.stream.* +import org.bouncycastle.crypto.StreamCipher import org.joda.time.DateTime -import org.spongycastle.crypto.StreamCipher import org.xmlpull.v1.XmlSerializer import java.io.IOException import java.io.OutputStream