From ce316d68117d7148d119388203959a76aad93bb8 Mon Sep 17 00:00:00 2001 From: Vishesh Handa Date: Wed, 29 May 2019 14:57:55 +0200 Subject: [PATCH] Android: Stop using jsch Instead use the c-lib for the ssh keygeneration. This should reduce our APK size a little bit, but most importantly we'll be using the exact same code for osx and android. --- android/app/build.gradle | 2 -- android/app/src/main/cpp/CMakeLists.txt | 1 + .../gitjournal/GenerateSSHKeysTask.java | 23 ++++--------------- 3 files changed, 6 insertions(+), 20 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 038dd998..6ae5ec80 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -102,8 +102,6 @@ dependencies { androidTestImplementation 'androidx.test:runner:1.1.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0' - implementation 'com.jcraft:jsch:0.1.54' - // For reading a file to string implementation 'commons-io:commons-io:2.5' } diff --git a/android/app/src/main/cpp/CMakeLists.txt b/android/app/src/main/cpp/CMakeLists.txt index 5f40712d..30abde89 100644 --- a/android/app/src/main/cpp/CMakeLists.txt +++ b/android/app/src/main/cpp/CMakeLists.txt @@ -42,6 +42,7 @@ add_library(native-lib SHARED ${CMAKE_SOURCE_DIR}/../../../../../gj_common/gitjournal.c ${CMAKE_SOURCE_DIR}/../../../../../gj_common/keygen.c + ${CMAKE_SOURCE_DIR}/../../../../../gj_common/common.c git.c ) diff --git a/android/app/src/main/java/io/gitjournal/gitjournal/GenerateSSHKeysTask.java b/android/app/src/main/java/io/gitjournal/gitjournal/GenerateSSHKeysTask.java index 80327af5..065c3756 100644 --- a/android/app/src/main/java/io/gitjournal/gitjournal/GenerateSSHKeysTask.java +++ b/android/app/src/main/java/io/gitjournal/gitjournal/GenerateSSHKeysTask.java @@ -3,14 +3,12 @@ package io.gitjournal.gitjournal; import android.os.AsyncTask; import android.util.Log; -import com.jcraft.jsch.*; +import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.nio.charset.Charset; -import org.apache.commons.io.FileUtils; - import io.flutter.plugin.common.MethodChannel.Result; public class GenerateSSHKeysTask extends AsyncTask { @@ -41,21 +39,10 @@ public class GenerateSSHKeysTask extends AsyncTask { return null; } - // Generate key pair - try { - JSch jsch = new JSch(); - KeyPair kpair = KeyPair.genKeyPair(jsch, KeyPair.RSA, 1024 * 4); - - kpair.writePrivateKey(privateKeyPath); - kpair.writePublicKey(publicKeyPath, comment); - kpair.dispose(); - } catch (JSchException ex) { - Log.d(TAG, ex.toString()); - result.error("FAILED", ex.getMessage(), null); - return null; - } catch (IOException ex) { - Log.d(TAG, ex.toString()); - result.error("FAILED", ex.getMessage(), null); + io.gitjournal.gitjournal.Git git = new io.gitjournal.gitjournal.Git(); + String errorStr = git.generateKeys(privateKeyPath, publicKeyPath, comment); + if (!errorStr.isEmpty()) { + result.error("FAILED", errorStr, null); return null; }