]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
libssh: Use new ECDSA key types to check known hosts
authorAnderson Toshiyuki Sasaki <ansasaki@redhat.com>
Thu, 16 Apr 2020 17:26:06 +0000 (19:26 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 17 Apr 2020 21:22:26 +0000 (23:22 +0200)
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

lib/vssh/libssh.c

index 08d9f9e0fb26f42eb1d823d198a956946bd4131e..54bc5e019afd30cf54dbd4b05382b2fea3ac744c 100644 (file)
@@ -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)