diff options
author | Anderson Toshiyuki Sasaki <ansasaki@redhat.com> | 2020-04-16 19:26:06 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2020-04-17 23:22:26 +0200 |
commit | 14bf7eb6e526f7ce0c60c1c972b4d935c1c5132d (patch) | |
tree | 54b67255f0d8aebd999c77514e93ce87710dc6ff | |
parent | 9c703ead3620535eb6b190c8ef87942ff8f08fc2 (diff) |
libssh: Use new ECDSA key types to check known hosts
From libssh 0.9.0, ssh_key_type() returns different key types for ECDSA
keys depending on the curve.
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
Fixes #5252
Closes #5253
-rw-r--r-- | lib/vssh/libssh.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/vssh/libssh.c b/lib/vssh/libssh.c index 08d9f9e0f..54bc5e019 100644 --- a/lib/vssh/libssh.c +++ b/lib/vssh/libssh.c @@ -403,6 +403,9 @@ static int myssh_is_known(struct connectdata *conn) knownkey.keytype = CURLKHTYPE_RSA1; break; case SSH_KEYTYPE_ECDSA: + case SSH_KEYTYPE_ECDSA_P256: + case SSH_KEYTYPE_ECDSA_P384: + case SSH_KEYTYPE_ECDSA_P521: knownkey.keytype = CURLKHTYPE_ECDSA; break; case SSH_KEYTYPE_ED25519: @@ -470,6 +473,11 @@ static int myssh_is_known(struct connectdata *conn) foundkey.keytype = CURLKHTYPE_RSA1; break; case SSH_KEYTYPE_ECDSA: +#if LIBSSH_VERSION_INT >= SSH_VERSION_INT(0,9,0) + case SSH_KEYTYPE_ECDSA_P256: + case SSH_KEYTYPE_ECDSA_P384: + case SSH_KEYTYPE_ECDSA_P521: +#endif foundkey.keytype = CURLKHTYPE_ECDSA; break; #if LIBSSH_VERSION_INT >= SSH_VERSION_INT(0,7,0) |