test: test coverage for SSH_BIND_OPTIONS_IMPORT_KEY_STR and ed25519 keys

Signed-off-by: Debanga Sarma <deb737@proton.me>
Reviewed-by: Jakub Jelen <jjelen@redhat.com>
This commit is contained in:
Debanga Sarma
2024-04-09 22:07:22 +05:30
committed by Jakub Jelen
parent 2daf3dc4a8
commit 4edd0669fd

View File

@@ -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),