From bab2c775da62663163c51d0aa21c7ed25345905a Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Tue, 14 Apr 2020 14:39:19 +0200 Subject: [PATCH] Make the testing ping use all supported algorithms Previously, it would use only the default set, which makes some tests failing including the DSA ones and disabled RSA with SHA1. Signed-off-by: Jakub Jelen Reviewed-by: Anderson Toshiyuki Sasaki --- tests/CMakeLists.txt | 2 +- tests/ssh_ping.c | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index b8a1421d..31a16a39 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -181,7 +181,7 @@ if (CLIENT_TESTING OR SERVER_TESTING) # ssh_ping add_executable(ssh_ping ssh_ping.c) target_compile_options(ssh_ping PRIVATE ${DEFAULT_C_COMPILE_FLAGS}) - target_link_libraries(ssh_ping ssh::ssh) + target_link_libraries(ssh_ping ssh::static) # homedir will be used in passwd set(HOMEDIR ${CMAKE_CURRENT_BINARY_DIR}/home) diff --git a/tests/ssh_ping.c b/tests/ssh_ping.c index c3fc1f9a..bdb3cea0 100644 --- a/tests/ssh_ping.c +++ b/tests/ssh_ping.c @@ -14,15 +14,19 @@ The goal is to show the API in action. It's not a reference on how terminal clients must be made or how a client should react. */ +#include "config.h" + #include #include #include #include +#include int main(int argc, char **argv) { const char *banner = NULL; ssh_session session = NULL; + const char *hostkeys = NULL; int rc = 1; bool process_config = false; @@ -32,6 +36,8 @@ int main(int argc, char **argv) goto out; } + ssh_init(); + session = ssh_new(); if (session == NULL) { goto out; @@ -54,6 +60,13 @@ int main(int argc, char **argv) goto out; } + /* Enable all supported algorithms (including DSA) */ + hostkeys = ssh_kex_get_supported_method(SSH_HOSTKEYS); + rc = ssh_options_set(session, SSH_OPTIONS_HOSTKEYS, hostkeys); + if (rc < 0) { + goto out; + } + rc = ssh_connect(session); if (rc != SSH_OK) { fprintf(stderr, "Connection failed : %s\n", ssh_get_error(session)); @@ -71,6 +84,7 @@ int main(int argc, char **argv) out: ssh_free(session); + ssh_finalize(); return rc; }