Author: gnodet Date: Mon Apr 12 14:56:43 2010 New Revision: 933264 URL: http://svn.apache.org/viewvc?rev=933264&view=rev Log: SSHD-83: support client initiated key reexchange on the server side
Modified: mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java Modified: mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java URL: http://svn.apache.org/viewvc/mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java?rev=933264&r1=933263&r2=933264&view=diff ============================================================================== --- mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java (original) +++ mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java Mon Apr 12 14:56:43 2010 @@ -227,6 +227,22 @@ public class ServerSession extends Abstr case SSH_MSG_GLOBAL_REQUEST: globalRequest(buffer); break; + case SSH_MSG_KEXINIT: + receiveKexInit(buffer); + sendKexInit(); + negociate(); + kex = NamedFactory.Utils.create(factoryManager.getKeyExchangeFactories(), negociated[SshConstants.PROPOSAL_KEX_ALGS]); + kex.init(this, serverVersion.getBytes(), clientVersion.getBytes(), I_S, I_C); + break; + case SSH_MSG_KEXDH_INIT: + buffer.rpos(buffer.rpos() - 1); + if (kex.next(buffer)) { + sendNewKeys(); + } + break; + case SSH_MSG_NEWKEYS: + receiveNewKeys(true); + break; default: throw new IllegalStateException("Unsupported command: " + cmd); }