diff options
author | Sanne Raymaekers <sraymaek@redhat.com> | 2018-11-08 13:28:03 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2018-11-08 16:19:18 +0100 |
commit | 67f418218bd3c2cec9e3b838541a1c371aeaa106 (patch) | |
tree | 92e8f86b747b2d73634854bc8a8626c05be57b47 /tests | |
parent | 03c30e9c8ad34b3fa659a70e474a9b8cb248f85b (diff) | |
download | libssh-67f418218bd3c2cec9e3b838541a1c371aeaa106.tar.gz libssh-67f418218bd3c2cec9e3b838541a1c371aeaa106.tar.xz libssh-67f418218bd3c2cec9e3b838541a1c371aeaa106.zip |
knownhosts: Take StrictHostKeyChecking option into account
Signed-off-by: Sanne Raymaekers <sraymaek@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/client/torture_knownhosts.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/client/torture_knownhosts.c b/tests/client/torture_knownhosts.c index 12dfbc82..c5447587 100644 --- a/tests/client/torture_knownhosts.c +++ b/tests/client/torture_knownhosts.c @@ -328,6 +328,41 @@ static void torture_knownhosts_conflict(void **state) { /* session will be freed by session_teardown() */ } +static void torture_knownhosts_no_hostkeychecking(void **state) +{ + + struct torture_state *s = *state; + ssh_session session = s->ssh.session; + char known_hosts_file[1024] = {0}; + enum ssh_known_hosts_e found; + int strict_host_key_checking = 0; + int rc; + + snprintf(known_hosts_file, + sizeof(known_hosts_file), + "%s/%s", + s->socket_dir, + TORTURE_KNOWN_HOSTS_FILE); + + rc = ssh_options_set(session, SSH_OPTIONS_KNOWNHOSTS, known_hosts_file); + assert_ssh_return_code(session, rc); + + rc = ssh_options_set(session, SSH_OPTIONS_HOSTKEYS, "ssh-ed25519"); + assert_ssh_return_code(session, rc); + + rc = ssh_connect(session); + assert_ssh_return_code(session, rc); + + found = ssh_session_is_known_server(session); + assert_int_equal(found, SSH_KNOWN_HOSTS_UNKNOWN); + + rc = ssh_options_set(session, SSH_OPTIONS_STRICTHOSTKEYCHECK, &strict_host_key_checking); + assert_ssh_return_code(session, rc); + + found = ssh_session_is_known_server(session); + assert_int_equal(found, SSH_KNOWN_HOSTS_OK); +} + int torture_run_tests(void) { int rc; struct CMUnitTest tests[] = { @@ -346,6 +381,9 @@ int torture_run_tests(void) { cmocka_unit_test_setup_teardown(torture_knownhosts_conflict, session_setup, session_teardown), + cmocka_unit_test_setup_teardown(torture_knownhosts_no_hostkeychecking, + session_setup, + session_teardown), }; ssh_init(); |