From 2d79c7a9d5a8f2d2305c1b9ee85525d583bebbf0 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Mon, 5 Sep 2022 08:50:55 +0200 Subject: [PATCH] knownhosts: Give better warnings about unsupported key types Signed-off-by: Andreas Schneider Reviewed-by: Anderson Toshiyuki Sasaki --- src/knownhosts.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/knownhosts.c b/src/knownhosts.c index c51654b1..1253e250 100644 --- a/src/knownhosts.c +++ b/src/knownhosts.c @@ -483,6 +483,9 @@ static const char *ssh_known_host_sigs_from_hostkey_type(enum ssh_keytypes_e typ #ifdef HAVE_DSA case SSH_KEYTYPE_DSS: return "ssh-dss"; +#else + SSH_LOG(SSH_LOG_WARN, "DSS keys are not supported by this build"); + break; #endif #ifdef HAVE_ECDH case SSH_KEYTYPE_ECDSA_P256: @@ -491,13 +494,22 @@ static const char *ssh_known_host_sigs_from_hostkey_type(enum ssh_keytypes_e typ return "ecdsa-sha2-nistp384"; case SSH_KEYTYPE_ECDSA_P521: return "ecdsa-sha2-nistp521"; +#else + case SSH_KEYTYPE_ECDSA_P256: + case SSH_KEYTYPE_ECDSA_P384: + case SSH_KEYTYPE_ECDSA_P521: + SSH_LOG(SSH_LOG_WARN, "ECDSA keys are not supported by this build"); + break; #endif case SSH_KEYTYPE_UNKNOWN: default: - SSH_LOG(SSH_LOG_WARN, "The given type %d is not a base private key type " - "or is unsupported", type); - return NULL; + SSH_LOG(SSH_LOG_WARN, + "The given type %d is not a base private key type " + "or is unsupported", + type); } + + return NULL; } /**