mirror of
https://github.com/curl/curl.git
synced 2026-07-28 15:33:08 +03:00
libssh2: try sha2 algos for hostkey methods
As is supported by recent libssh2, but should just be ignored by older versions. Reported-by: norbertmm on github Assisted-by: norbertmm on github Fixes #10143 Closes #10145
This commit is contained in:
parent
e2aed00430
commit
ccf1ca9430
1 changed files with 12 additions and 1 deletions
|
|
@ -840,6 +840,8 @@ static CURLcode ssh_force_knownhost_key_type(struct Curl_easy *data)
|
|||
#endif
|
||||
static const char * const hostkey_method_ssh_rsa
|
||||
= "ssh-rsa";
|
||||
static const char * const hostkey_method_ssh_rsa_all
|
||||
= "rsa-sha2-256,rsa-sha2-512,ssh-rsa";
|
||||
static const char * const hostkey_method_ssh_dss
|
||||
= "ssh-dss";
|
||||
|
||||
|
|
@ -914,7 +916,16 @@ static CURLcode ssh_force_knownhost_key_type(struct Curl_easy *data)
|
|||
break;
|
||||
#endif
|
||||
case LIBSSH2_KNOWNHOST_KEY_SSHRSA:
|
||||
hostkey_method = hostkey_method_ssh_rsa;
|
||||
#ifdef HAVE_LIBSSH2_VERSION
|
||||
if(libssh2_version(0x010900))
|
||||
/* since 1.9.0 libssh2_session_method_pref() works as expected */
|
||||
hostkey_method = hostkey_method_ssh_rsa_all;
|
||||
else
|
||||
#endif
|
||||
/* old libssh2 which cannot correctly remove unsupported methods due
|
||||
* to bug in src/kex.c or does not support the new methods anyways.
|
||||
*/
|
||||
hostkey_method = hostkey_method_ssh_rsa;
|
||||
break;
|
||||
case LIBSSH2_KNOWNHOST_KEY_SSHDSS:
|
||||
hostkey_method = hostkey_method_ssh_dss;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue