From f6a50aff4c07934648cf0d43000d08c278670251 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 21 Jan 2015 09:19:30 +0100 Subject: tests: Fix torture_server_x11(). --- tests/torture.c | 24 ++++++++++++++++++++++-- tests/torture.h | 1 + tests/unittests/torture_server_x11.c | 9 +++++++-- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/tests/torture.c b/tests/torture.c index 726db214..f985ed1f 100644 --- a/tests/torture.c +++ b/tests/torture.c @@ -331,6 +331,11 @@ ssh_session torture_ssh_session(const char *host, return NULL; } + rc = ssh_options_set(session, SSH_OPTIONS_SSH_DIR, "/tmp"); + if (rc < 0) { + goto failed; + } + if (ssh_options_set(session, SSH_OPTIONS_HOST, host) < 0) { goto failed; } @@ -397,9 +402,11 @@ failed: ssh_bind torture_ssh_bind(const char *addr, const unsigned int port, + enum ssh_keytypes_e key_type, const char *private_key_file) { int rc; ssh_bind sshbind = NULL; + enum ssh_bind_options_e opts = -1; sshbind = ssh_bind_new(); if (sshbind == NULL) { @@ -416,8 +423,21 @@ ssh_bind torture_ssh_bind(const char *addr, goto out_free; } - rc = ssh_bind_options_set(sshbind, SSH_BIND_OPTIONS_HOSTKEY, - private_key_file); + switch (key_type) { + case SSH_KEYTYPE_DSS: + opts = SSH_BIND_OPTIONS_DSAKEY; + break; + case SSH_KEYTYPE_RSA: + opts = SSH_BIND_OPTIONS_RSAKEY; + break; + case SSH_KEYTYPE_ECDSA: + opts = SSH_BIND_OPTIONS_ECDSAKEY; + break; + default: + goto out_free; + } + + rc = ssh_bind_options_set(sshbind, opts, private_key_file); if (rc != 0) { goto out_free; } diff --git a/tests/torture.h b/tests/torture.h index b4eab587..e1738ab0 100644 --- a/tests/torture.h +++ b/tests/torture.h @@ -69,6 +69,7 @@ ssh_session torture_ssh_session(const char *host, ssh_bind torture_ssh_bind(const char *addr, const unsigned int port, + enum ssh_keytypes_e key_type, const char *private_key_file); struct torture_sftp *torture_sftp_session(ssh_session session); diff --git a/tests/unittests/torture_server_x11.c b/tests/unittests/torture_server_x11.c index 29190869..0b86c692 100644 --- a/tests/unittests/torture_server_x11.c +++ b/tests/unittests/torture_server_x11.c @@ -12,6 +12,7 @@ struct hostkey_state { const char *hostkey; char *hostkey_path; + enum ssh_keytypes_e key_type; int fd; }; @@ -27,7 +28,8 @@ static void setup(void **state) { assert_return_code(h->fd, errno); close(h->fd); - h->hostkey = torture_get_testkey(SSH_KEYTYPE_ECDSA, 512, 0); + h->key_type = SSH_KEYTYPE_RSA; + h->hostkey = torture_get_testkey(h->key_type, 0, 0); torture_write_file(h->hostkey_path, h->hostkey); @@ -152,7 +154,10 @@ static void test_ssh_channel_request_x11(void **state) { ssh_callbacks_init(&server_cb); /* Create server */ - sshbind = torture_ssh_bind("localhost", TEST_SERVER_PORT, h->hostkey_path); + sshbind = torture_ssh_bind("localhost", + TEST_SERVER_PORT, + h->key_type, + h->hostkey_path); assert_non_null(sshbind); /* Get client to connect */ -- cgit