diff --git a/android/build.gradle b/android/build.gradle index b771725..5340886 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -78,6 +78,5 @@ def kotlin_version = getExtOrDefault("kotlinVersion") dependencies { implementation "com.facebook.react:react-android" implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - implementation "com.madgag.spongycastle:core:1.58.0.0" - implementation "com.madgag.spongycastle:prov:1.58.0.0" + implementation "org.bouncycastle:bcprov-jdk18on:1.84" } diff --git a/android/src/main/java/chat/rocket/mobilecrypto/algorithms/PBKDF2Crypto.kt b/android/src/main/java/chat/rocket/mobilecrypto/algorithms/PBKDF2Crypto.kt index f96fa03..4e04780 100644 --- a/android/src/main/java/chat/rocket/mobilecrypto/algorithms/PBKDF2Crypto.kt +++ b/android/src/main/java/chat/rocket/mobilecrypto/algorithms/PBKDF2Crypto.kt @@ -1,15 +1,15 @@ package chat.rocket.mobilecrypto.algorithms import java.security.NoSuchAlgorithmException -import org.spongycastle.crypto.ExtendedDigest -import org.spongycastle.crypto.PBEParametersGenerator -import org.spongycastle.crypto.digests.SHA1Digest -import org.spongycastle.crypto.digests.SHA224Digest -import org.spongycastle.crypto.digests.SHA256Digest -import org.spongycastle.crypto.digests.SHA384Digest -import org.spongycastle.crypto.digests.SHA512Digest -import org.spongycastle.crypto.generators.PKCS5S2ParametersGenerator -import org.spongycastle.crypto.params.KeyParameter +import org.bouncycastle.crypto.ExtendedDigest +import org.bouncycastle.crypto.PBEParametersGenerator +import org.bouncycastle.crypto.digests.SHA1Digest +import org.bouncycastle.crypto.digests.SHA224Digest +import org.bouncycastle.crypto.digests.SHA256Digest +import org.bouncycastle.crypto.digests.SHA384Digest +import org.bouncycastle.crypto.digests.SHA512Digest +import org.bouncycastle.crypto.generators.PKCS5S2ParametersGenerator +import org.bouncycastle.crypto.params.KeyParameter /** * PBKDF2 (Password-Based Key Derivation Function 2) operations diff --git a/android/src/main/java/chat/rocket/mobilecrypto/algorithms/RSACrypto.kt b/android/src/main/java/chat/rocket/mobilecrypto/algorithms/RSACrypto.kt index c79334d..3589bbe 100644 --- a/android/src/main/java/chat/rocket/mobilecrypto/algorithms/RSACrypto.kt +++ b/android/src/main/java/chat/rocket/mobilecrypto/algorithms/RSACrypto.kt @@ -21,13 +21,13 @@ import java.security.spec.RSAPublicKeySpec import java.security.spec.X509EncodedKeySpec import java.util.Arrays import javax.crypto.Cipher -import org.spongycastle.asn1.ASN1InputStream -import org.spongycastle.asn1.ASN1Primitive -import org.spongycastle.asn1.pkcs.PrivateKeyInfo -import org.spongycastle.asn1.x509.SubjectPublicKeyInfo -import org.spongycastle.util.io.pem.PemObject -import org.spongycastle.util.io.pem.PemReader -import org.spongycastle.util.io.pem.PemWriter +import org.bouncycastle.asn1.ASN1InputStream +import org.bouncycastle.asn1.ASN1Primitive +import org.bouncycastle.asn1.pkcs.PrivateKeyInfo +import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo +import org.bouncycastle.util.io.pem.PemObject +import org.bouncycastle.util.io.pem.PemReader +import org.bouncycastle.util.io.pem.PemWriter /** * RSA encryption, decryption, signing and key format conversion operations @@ -318,7 +318,7 @@ object RSACrypto { // PKCS#1 RSA PUBLIC KEY format - need to convert to X.509 val inputStream = ASN1InputStream(keyData) val obj = inputStream.readObject() - val rsaPublicKey = org.spongycastle.asn1.pkcs.RSAPublicKey.getInstance(obj) + val rsaPublicKey = org.bouncycastle.asn1.pkcs.RSAPublicKey.getInstance(obj) val keySpec = RSAPublicKeySpec(rsaPublicKey.modulus, rsaPublicKey.publicExponent) keyFactory.generatePublic(keySpec) @@ -412,7 +412,7 @@ object RSACrypto { } private fun pkcs1ToPublicKey(obj: ASN1Primitive): WritableMap { - val keyStruct = org.spongycastle.asn1.pkcs.RSAPublicKey.getInstance(obj) + val keyStruct = org.bouncycastle.asn1.pkcs.RSAPublicKey.getInstance(obj) val jwk = Arguments.createMap() jwk.putString("n", toBase64String(keyStruct.modulus, true)) @@ -422,7 +422,7 @@ object RSACrypto { } private fun pkcs1ToPrivateKey(obj: ASN1Primitive): WritableMap { - val keyStruct = org.spongycastle.asn1.pkcs.RSAPrivateKey.getInstance(obj) + val keyStruct = org.bouncycastle.asn1.pkcs.RSAPrivateKey.getInstance(obj) val jwk = Arguments.createMap() jwk.putString("n", toBase64String(keyStruct.modulus, true)) diff --git a/package.json b/package.json index 9fd0da8..c54fbbc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@rocket.chat/mobile-crypto", - "version": "0.3.0", + "version": "0.4.0", "description": "Rocket.Chat Mobile Crypto", "main": "./lib/module/index.js", "module": "./lib/module/index.js",