Repository: karaf Updated Branches: refs/heads/master d784a9bd1 -> 539540cde
[KARAF-4062]Karaf client does now work after installing BouncyCastle Project: http://git-wip-us.apache.org/repos/asf/karaf/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/539540cd Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/539540cd Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/539540cd Branch: refs/heads/master Commit: 539540cde099aee52fd523a09aca92e36522261c Parents: d784a9b Author: Freeman Fang <freeman.f...@gmail.com> Authored: Wed Oct 14 12:09:09 2015 +0800 Committer: Freeman Fang <freeman.f...@gmail.com> Committed: Wed Oct 14 12:09:09 2015 +0800 ---------------------------------------------------------------------- .../main/java/org/apache/karaf/client/Main.java | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf/blob/539540cd/client/src/main/java/org/apache/karaf/client/Main.java ---------------------------------------------------------------------- diff --git a/client/src/main/java/org/apache/karaf/client/Main.java b/client/src/main/java/org/apache/karaf/client/Main.java index 3fe2e1f..31b7c2f 100644 --- a/client/src/main/java/org/apache/karaf/client/Main.java +++ b/client/src/main/java/org/apache/karaf/client/Main.java @@ -24,6 +24,7 @@ import java.lang.reflect.Proxy; import java.net.URL; import java.security.KeyPair; import java.nio.charset.Charset; +import java.util.Arrays; import java.util.HashMap; import java.util.Locale; import java.util.Map; @@ -38,6 +39,7 @@ import jline.UnixTerminal; import jline.internal.TerminalLineSettings; import org.apache.sshd.ClientChannel; import org.apache.sshd.ClientSession; +import org.apache.sshd.SshBuilder; import org.apache.sshd.SshClient; import org.apache.sshd.agent.SshAgent; import org.apache.sshd.agent.local.AgentImpl; @@ -46,6 +48,11 @@ import org.apache.sshd.client.UserInteraction; import org.apache.sshd.client.channel.ChannelShell; import org.apache.sshd.client.channel.PtyCapableChannelSession; import org.apache.sshd.client.future.ConnectFuture; +import org.apache.sshd.client.kex.ECDHP256; +import org.apache.sshd.client.kex.ECDHP384; +import org.apache.sshd.client.kex.ECDHP521; +import org.apache.sshd.common.KeyExchange; +import org.apache.sshd.common.NamedFactory; import org.apache.sshd.common.PtyMode; import org.apache.sshd.common.RuntimeSshException; import org.apache.sshd.common.Session; @@ -90,7 +97,18 @@ public class Main { Terminal terminal = null; int exitStatus = 0; try { - client = SshClient.setUpDefaultClient(); + SshBuilder.ClientBuilder clientBuilder = SshBuilder.client(); + clientBuilder.keyExchangeFactories(Arrays.<NamedFactory<KeyExchange>>asList( + new ECDHP256.Factory(), + new ECDHP256.Factory(), + new ECDHP384.Factory(), + new ECDHP384.Factory(), + new ECDHP521.Factory(), + new ECDHP521.Factory() + ) + ); + + client = (SshClient)clientBuilder.build(); setupAgent(config.getUser(), config.getKeyFile(), client); final Console console = System.console(); if (console != null) {