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);
}