]> source.dussan.org Git - jgit.git/commit
Ensure Jsch checks all configured algorithms 51/124251/2
authorThomas Wolf <thomas.wolf@paranor.ch>
Fri, 8 Jun 2018 13:47:05 +0000 (15:47 +0200)
committerMatthias Sohn <matthias.sohn@sap.com>
Sun, 10 Jun 2018 10:06:59 +0000 (12:06 +0200)
commit4ef8769f81949d1b5759645bdba969b6b5a7289a
tree974eddea4761f0bb52624bccb4c70027aa98b327
parent6cb0199ffc4f879bc654b28b6e4756abdc6351e5
Ensure Jsch checks all configured algorithms

Jsch checks only for the availability of the algorithms given by
Jsch-internal config keys "CheckCiphers", "CheckKexes", and
"CheckSignatures". If the ssh config defines any algorithms
unknown to Jsch not listed in those keys, it'll still propose them
during the negotiation phase, and run into an NPE later on if the
server happens to propose such an algorithm and it gets chosen.

Jsch reads those "CheckCiphers" and the other values from either a
session-local config, or the global static Jsch config. It bypasses
~/.ssh/config for these values.

Therefore, copy these values from the config as read from
~/.ssh/config into the session-specific config. That makes Jsch
check _all_ configured algorithms up front, discarding any for
which it has no implementation. Thus it proposes only algorithms
it actually can handle.

Bug: 535672
Change-Id: I6a68e54f4d9a3267e895c536bcf3c58099826ad5
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java