aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2017-08-24 15:33:11 +0200
committerAndreas Schneider <asn@cryptomilk.org>2017-08-24 18:01:41 +0200
commit316ee071cf4bd06a8cdeeaac417e137be0a3af0e (patch)
tree1d732c2e2af026fd97aefb3a608223db3282c749 /tests
parent895055ab38e7716390019aae5e11771a88b99d26 (diff)
downloadlibssh-316ee071cf4bd06a8cdeeaac417e137be0a3af0e.tar.gz
libssh-316ee071cf4bd06a8cdeeaac417e137be0a3af0e.tar.xz
libssh-316ee071cf4bd06a8cdeeaac417e137be0a3af0e.zip
torture_options: test the setting of ciphers and MACs
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/unittests/torture_options.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/unittests/torture_options.c b/tests/unittests/torture_options.c
index ba2fad5f..05dadba4 100644
--- a/tests/unittests/torture_options.c
+++ b/tests/unittests/torture_options.c
@@ -38,6 +38,44 @@ static void torture_options_set_host(void **state) {
assert_string_equal(session->opts.username, "guru");
}
+static void torture_options_set_ciphers(void **state) {
+ ssh_session session = *state;
+ int rc;
+
+ /* Test known ciphers */
+ rc = ssh_options_set(session, SSH_OPTIONS_CIPHERS_C_S, "aes128-ctr,aes192-ctr,aes256-ctr");
+ assert_true(rc == 0);
+ assert_string_equal(session->opts.wanted_methods[SSH_CRYPT_C_S], "aes128-ctr,aes192-ctr,aes256-ctr");
+
+ /* Test one unknown cipher */
+ rc = ssh_options_set(session, SSH_OPTIONS_CIPHERS_C_S, "aes128-ctr,unknown-crap@example.com,aes192-ctr,aes256-ctr");
+ assert_true(rc == 0);
+ assert_string_equal(session->opts.wanted_methods[SSH_CRYPT_C_S], "aes128-ctr,aes192-ctr,aes256-ctr");
+
+ /* Test all unknown ciphers */
+ rc = ssh_options_set(session, SSH_OPTIONS_CIPHERS_C_S, "unknown-crap@example.com,more-crap@example.com");
+ assert_false(rc == 0);
+}
+
+static void torture_options_set_macs(void **state) {
+ ssh_session session = *state;
+ int rc;
+
+ /* Test known MACs */
+ rc = ssh_options_set(session, SSH_OPTIONS_HMAC_S_C, "hmac-sha1");
+ assert_true(rc == 0);
+ assert_string_equal(session->opts.wanted_methods[SSH_MAC_S_C], "hmac-sha1");
+
+ /* Test unknown MACs */
+ rc = ssh_options_set(session, SSH_OPTIONS_HMAC_S_C, "unknown-crap@example.com,hmac-sha1,unknown@example.com");
+ assert_true(rc == 0);
+ assert_string_equal(session->opts.wanted_methods[SSH_MAC_S_C], "hmac-sha1");
+
+ /* Test all unknown MACs */
+ rc = ssh_options_set(session, SSH_OPTIONS_HMAC_S_C, "unknown-crap@example.com");
+ assert_false(rc == 0);
+}
+
static void torture_options_get_host(void **state) {
ssh_session session = *state;
int rc;
@@ -262,6 +300,8 @@ int torture_run_tests(void) {
cmocka_unit_test_setup_teardown(torture_options_set_identity, setup, teardown),
cmocka_unit_test_setup_teardown(torture_options_get_identity, setup, teardown),
cmocka_unit_test_setup_teardown(torture_options_proxycommand, setup, teardown),
+ cmocka_unit_test_setup_teardown(torture_options_set_ciphers, setup, teardown),
+ cmocka_unit_test_setup_teardown(torture_options_set_macs, setup, teardown),
};
#ifdef WITH_SERVER