]> xenbits.xensource.com Git - libvirt.git/commitdiff
rpc: libssh2: Enable EC host keys
authorBastian Germann <bastiangermann@fishpost.de>
Sun, 28 Mar 2021 21:10:21 +0000 (23:10 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 22 Apr 2021 14:35:57 +0000 (16:35 +0200)
libssh2 has ECDSA and ED25519 support beginning with v1.9.0. libvirt cannot
make use of those because it will handle them as unknown key types.

Add support for those host key types.

Signed-off-by: Bastian Germann <bastiangermann@fishpost.de>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/rpc/virnetsshsession.c

index 07110446d87edca66297073b42271aee00ba2492..f2862979c9e7994bd0dc658e9e3e22f86dd93a64 100644 (file)
@@ -388,7 +388,21 @@ virNetSSHCheckHostKey(virNetSSHSession *sess)
         case LIBSSH2_HOSTKEY_TYPE_DSS:
             keyType = LIBSSH2_KNOWNHOST_KEY_SSHDSS;
             break;
-
+#ifdef LIBSSH2_HOSTKEY_TYPE_ED25519
+        /* defs from libssh2 v1.9.0 or later */
+        case LIBSSH2_HOSTKEY_TYPE_ECDSA_256:
+            keyType = LIBSSH2_KNOWNHOST_KEY_ECDSA_256;
+            break;
+        case LIBSSH2_HOSTKEY_TYPE_ECDSA_384:
+            keyType = LIBSSH2_KNOWNHOST_KEY_ECDSA_384;
+            break;
+        case LIBSSH2_HOSTKEY_TYPE_ECDSA_521:
+            keyType = LIBSSH2_KNOWNHOST_KEY_ECDSA_521;
+            break;
+        case LIBSSH2_HOSTKEY_TYPE_ED25519:
+            keyType = LIBSSH2_KNOWNHOST_KEY_ED25519;
+            break;
+#endif
         case LIBSSH2_HOSTKEY_TYPE_UNKNOWN:
         default:
             virReportError(VIR_ERR_SSH, "%s",