aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDebanga Sarma <deb737@proton.me>2024-04-09 22:07:22 +0530
committerJakub Jelen <jjelen@redhat.com>2024-04-15 11:48:31 +0200
commit4edd0669fd4df44fc343f73a8ea54b5fef4d8a53 (patch)
tree1962c9a8463fdbc5d6f200fbf1bf9790266ef490 /tests
parent2daf3dc4a8d83dd74d98ce8cea2b2e457fedbc5a (diff)
downloadlibssh-master.tar.gz
libssh-master.tar.xz
libssh-master.zip
test: test coverage for SSH_BIND_OPTIONS_IMPORT_KEY_STR and ed25519 keysHEADmaster
Signed-off-by: Debanga Sarma <deb737@proton.me> Reviewed-by: Jakub Jelen <jjelen@redhat.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/unittests/torture_options.c57
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/unittests/torture_options.c b/tests/unittests/torture_options.c
index 2ccfa7af..a9c41cc9 100644
--- a/tests/unittests/torture_options.c
+++ b/tests/unittests/torture_options.c
@@ -2072,6 +2072,15 @@ torture_bind_options_import_key(void **state)
assert_int_equal(rc, -1);
SSH_KEY_FREE(key);
+ /* set ed25519 key */
+ base64_key = torture_get_openssh_testkey(SSH_KEYTYPE_ED25519, 0);
+ rc = ssh_pki_import_privkey_base64(base64_key, NULL, NULL, NULL, &key);
+ assert_int_equal(rc, SSH_OK);
+ assert_non_null(key);
+
+ rc = ssh_bind_options_set(bind, SSH_BIND_OPTIONS_IMPORT_KEY, key);
+ assert_int_equal(rc, 0);
+
/* set rsa key */
base64_key = torture_get_testkey(SSH_KEYTYPE_RSA, 0);
rc = ssh_pki_import_privkey_base64(base64_key, NULL, NULL, NULL, &key);
@@ -2092,6 +2101,51 @@ torture_bind_options_import_key(void **state)
#endif
}
+static void
+torture_bind_options_import_key_str(void **state)
+{
+ struct bind_st *test_state = NULL;
+ ssh_bind bind = NULL;
+ int rc;
+ const char *base64_key = "";
+
+ assert_non_null(state);
+ test_state = *((struct bind_st **)state);
+ assert_non_null(test_state);
+ assert_non_null(test_state->bind);
+ bind = test_state->bind;
+
+ /* set null */
+ rc = ssh_bind_options_set(bind, SSH_BIND_OPTIONS_IMPORT_KEY_STR, NULL);
+ assert_int_equal(rc, -1);
+ /* set invalid key */
+ rc =
+ ssh_bind_options_set(bind, SSH_BIND_OPTIONS_IMPORT_KEY_STR, base64_key);
+ assert_int_equal(rc, -1);
+
+ /* set ed25519 key */
+ base64_key = torture_get_openssh_testkey(SSH_KEYTYPE_ED25519, 0);
+
+ rc =
+ ssh_bind_options_set(bind, SSH_BIND_OPTIONS_IMPORT_KEY_STR, base64_key);
+ assert_int_equal(rc, 0);
+
+ /* set rsa key */
+ base64_key = torture_get_testkey(SSH_KEYTYPE_RSA, 0);
+
+ rc =
+ ssh_bind_options_set(bind, SSH_BIND_OPTIONS_IMPORT_KEY_STR, base64_key);
+ assert_int_equal(rc, 0);
+#ifdef HAVE_ECC
+ /* set ecdsa key */
+ base64_key = torture_get_testkey(SSH_KEYTYPE_ECDSA_P521, 0);
+
+ rc =
+ ssh_bind_options_set(bind, SSH_BIND_OPTIONS_IMPORT_KEY_STR, base64_key);
+ assert_int_equal(rc, 0);
+#endif
+}
+
static void torture_bind_options_hostkey(void **state)
{
struct bind_st *test_state;
@@ -2819,6 +2873,9 @@ torture_run_tests(void)
cmocka_unit_test_setup_teardown(torture_bind_options_import_key,
sshbind_setup,
sshbind_teardown),
+ cmocka_unit_test_setup_teardown(torture_bind_options_import_key_str,
+ sshbind_setup,
+ sshbind_teardown),
cmocka_unit_test_setup_teardown(torture_bind_options_hostkey,
sshbind_setup,
sshbind_teardown),