# HG changeset patch # User Carl Byington # Date 1406685035 25200 # Node ID ca5dd224a87b407e9ed4a1292ba5bd6ef7e96841 # Parent 349847b2e3181f056dbda6451ccd27b9beb9be70 add ecdsa key support everywhere diff -r 349847b2e318 -r ca5dd224a87b src/ch/ethz/ssh2/ServerConnection.java --- a/src/ch/ethz/ssh2/ServerConnection.java Tue Jul 29 18:36:57 2014 -0700 +++ b/src/ch/ethz/ssh2/ServerConnection.java Tue Jul 29 18:50:35 2014 -0700 @@ -10,6 +10,8 @@ import java.io.FileReader; import java.io.IOException; import java.net.Socket; +import java.util.List; +import java.util.ArrayList; import ch.ethz.ssh2.crypto.CryptoWishList; import ch.ethz.ssh2.crypto.PEMDecoder; @@ -49,11 +51,11 @@ */ public ServerConnection(Socket s) { - this(s, null, null); + this(s, null, null, null); } public ServerConnection(Socket s, String softwareversion) { - this(s, null, null); + this(s, null, null, null); this.softwareversion = softwareversion; } diff -r 349847b2e318 -r ca5dd224a87b src/ch/ethz/ssh2/transport/ClientTransportManager.java --- a/src/ch/ethz/ssh2/transport/ClientTransportManager.java Tue Jul 29 18:36:57 2014 -0700 +++ b/src/ch/ethz/ssh2/transport/ClientTransportManager.java Tue Jul 29 18:50:35 2014 -0700 @@ -47,7 +47,7 @@ KexManager km = new ClientKexManager(this, csh, cwl, hostname, port, verifier, rnd); super.init(tc, km); - km.initiateKEX(cwl, dhgex, null, null); + km.initiateKEX(cwl, dhgex, null, null, null); this.startReceiver(); } diff -r 349847b2e318 -r ca5dd224a87b src/ch/ethz/ssh2/transport/KexManager.java --- a/src/ch/ethz/ssh2/transport/KexManager.java Tue Jul 29 18:36:57 2014 -0700 +++ b/src/ch/ethz/ssh2/transport/KexManager.java Tue Jul 29 18:50:35 2014 -0700 @@ -14,6 +14,8 @@ import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.ECPrivateKey; import java.util.Arrays; +import java.util.Set; +import java.util.TreeSet; import ch.ethz.ssh2.ConnectionInfo; import ch.ethz.ssh2.DHGexParameters; diff -r 349847b2e318 -r ca5dd224a87b src/ch/ethz/ssh2/transport/KexState.java --- a/src/ch/ethz/ssh2/transport/KexState.java Tue Jul 29 18:36:57 2014 -0700 +++ b/src/ch/ethz/ssh2/transport/KexState.java Tue Jul 29 18:50:35 2014 -0700 @@ -39,4 +39,5 @@ public KeyPair local_dsa_key; public KeyPair local_rsa_key; + public KeyPair local_ec_key; } diff -r 349847b2e318 -r ca5dd224a87b src/ch/ethz/ssh2/transport/TransportManager.java --- a/src/ch/ethz/ssh2/transport/TransportManager.java Tue Jul 29 18:36:57 2014 -0700 +++ b/src/ch/ethz/ssh2/transport/TransportManager.java Tue Jul 29 18:50:35 2014 -0700 @@ -296,7 +296,7 @@ * @param rsa may be null if this is a client connection * @throws IOException */ - public void forceKeyExchange(CryptoWishList cwl, DHGexParameters dhgex, KeyPair dsa, KeyPair rsa) + public void forceKeyExchange(CryptoWishList cwl, DHGexParameters dhgex, KeyPair dsa, KeyPair rsa, KeyPair ec) throws IOException { synchronized(connectionSemaphore) { if(connectionClosed) { @@ -304,7 +304,7 @@ throw reasonClosedCause; } } - km.initiateKEX(cwl, dhgex, dsa, rsa); + km.initiateKEX(cwl, dhgex, dsa, rsa, ec); } public void changeRecvCipher(BlockCipher bc, MAC mac) {