aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/org/connectbot/service/TerminalManager.java
diff options
context:
space:
mode:
authorhsm <hsm@lamia.panaceas.james.local>2016-05-29 04:34:17 +0100
committerhsm <hsm@lamia.panaceas.james.local>2016-05-29 05:26:48 +0100
commit5a4943730fb343cf90df4088d4959121796b7a01 (patch)
treed140006db7edb7eeee328b159722e541865b7e9d /app/src/main/java/org/connectbot/service/TerminalManager.java
parent2d2d14c83fc21cce366c30775dfc3b9931924b52 (diff)
downloadconnectbot-5a4943730fb343cf90df4088d4959121796b7a01.tar.gz
connectbot-5a4943730fb343cf90df4088d4959121796b7a01.tar.bz2
connectbot-5a4943730fb343cf90df4088d4959121796b7a01.zip
support for open-keychain auth
Diffstat (limited to 'app/src/main/java/org/connectbot/service/TerminalManager.java')
-rw-r--r--app/src/main/java/org/connectbot/service/TerminalManager.java14
1 files changed, 11 insertions, 3 deletions
diff --git a/app/src/main/java/org/connectbot/service/TerminalManager.java b/app/src/main/java/org/connectbot/service/TerminalManager.java
index 73eb4d1..4f7893f 100644
--- a/app/src/main/java/org/connectbot/service/TerminalManager.java
+++ b/app/src/main/java/org/connectbot/service/TerminalManager.java
@@ -60,6 +60,8 @@ import android.os.Vibrator;
import android.preference.PreferenceManager;
import android.util.Log;
+import com.trilead.ssh2.crypto.PEMDecoder;
+
/**
* Manager for SSH connections that runs as a service. This service holds a list
* of currently connected SSH bridges that are ready for connection up to a GUI
@@ -141,9 +143,15 @@ public class TerminalManager extends Service implements BridgeDisconnectedListen
for (PubkeyBean pubkey : pubkeys) {
try {
- PrivateKey privKey = PubkeyUtils.decodePrivate(pubkey.getPrivateKey(), pubkey.getType());
- PublicKey pubKey = PubkeyUtils.decodePublic(pubkey.getPublicKey(), pubkey.getType());
- KeyPair pair = new KeyPair(pubKey, privKey);
+ KeyPair pair;
+
+ if (PubkeyDatabase.KEY_TYPE_IMPORTED.equals(pubkey.getType())) {
+ pair = PEMDecoder.decode(new String(pubkey.getPrivateKey()).toCharArray(), "");
+ } else {
+ PrivateKey privKey = PubkeyUtils.decodePrivate(pubkey.getPrivateKey(), pubkey.getType());
+ PublicKey pubKey = PubkeyUtils.decodePublic(pubkey.getPublicKey(), pubkey.getType());
+ pair = new KeyPair(pubKey, privKey);
+ }
addKey(pubkey, pair);
} catch (Exception e) {