aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2015-01-21 09:19:30 +0100
committerAndreas Schneider <asn@cryptomilk.org>2015-01-21 09:19:30 +0100
commitf6a50aff4c07934648cf0d43000d08c278670251 (patch)
treedeba2d62f6e2497758f5aabb952011562adfd1bc
parent6b7f275c32418a1a38b6f01466299469f9995f4c (diff)
downloadlibssh-f6a50aff4c07934648cf0d43000d08c278670251.tar.gz
libssh-f6a50aff4c07934648cf0d43000d08c278670251.tar.xz
libssh-f6a50aff4c07934648cf0d43000d08c278670251.zip
tests: Fix torture_server_x11().
-rw-r--r--tests/torture.c24
-rw-r--r--tests/torture.h1
-rw-r--r--tests/unittests/torture_server_x11.c9
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 */