diff src/ch/ethz/ssh2/transport/ServerTransportManager.java @ 273:91a31873c42a ganymed

start conversion from trilead to ganymed
author Carl Byington <carl@five-ten-sg.com>
date Fri, 18 Jul 2014 11:21:46 -0700
parents
children beaccc9df37b
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ch/ethz/ssh2/transport/ServerTransportManager.java	Fri Jul 18 11:21:46 2014 -0700
@@ -0,0 +1,42 @@
+package ch.ethz.ssh2.transport;
+
+import java.io.IOException;
+import java.net.Socket;
+
+import ch.ethz.ssh2.server.ServerConnectionState;
+
+/**
+ * @version $Id: ServerTransportManager.java 151 2014-04-28 10:03:39Z dkocher@sudo.ch $
+ */
+public class ServerTransportManager extends TransportManager
+{
+
+	private final Socket sock;
+
+	public ServerTransportManager(final Socket socket)
+	{
+		super(socket);
+		// TCP connection is already established
+		this.sock = socket;
+	}
+
+	public void connect(ServerConnectionState state) throws IOException
+	{
+		   /* Parse the client lin
+           e and say hello - important: this information is later needed for the
+            * key exchange (to stop man-in-the-middle attacks) - that is why we wrap it into an object
+   		 * for later use.
+   		 */
+
+		state.csh = ClientServerHello.serverHello(state.softwareversion, sock.getInputStream(), sock.getOutputStream());
+
+		TransportConnection tc = new TransportConnection(sock.getInputStream(), sock.getOutputStream(), state.generator);
+		KexManager km = new ServerKexManager(state);
+
+		super.init(tc, km);
+
+		km.initiateKEX(state.next_cryptoWishList, null, state.next_dsa_key, state.next_rsa_key);
+
+		this.startReceiver();
+	}
+}