From fc8a182823b77862852d4ba988d0fc7cd737cc3e Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 28 Dec 2011 18:22:10 +0100 Subject: tests: Add a testing of importing ecdsa pubkeys. --- tests/unittests/torture_pki.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'tests') diff --git a/tests/unittests/torture_pki.c b/tests/unittests/torture_pki.c index 17903cc..9ca3d33 100644 --- a/tests/unittests/torture_pki.c +++ b/tests/unittests/torture_pki.c @@ -397,6 +397,43 @@ static void torture_pki_publickey_dsa_base64(void **state) ssh_key_free(key); } +static void torture_pki_publickey_ecdsa_base64(void **state) +{ + enum ssh_keytypes_e type; + char *b64_key, *key_buf, *p; + const char *q; + ssh_key key; + int rc; + + (void) state; /* unused */ + + key_buf = read_file(LIBSSH_ECDSA_TESTKEY ".pub"); + assert_true(key_buf != NULL); + + q = p = key_buf; + while (*p != ' ') p++; + *p = '\0'; + + type = ssh_key_type_from_name(q); + assert_true(type == SSH_KEYTYPE_ECDSA); + + q = ++p; + while (*p != ' ') p++; + *p = '\0'; + + rc = ssh_pki_import_pubkey_base64(q, type, &key); + assert_true(rc == 0); + + rc = ssh_pki_export_pubkey_base64(key, &b64_key); + assert_true(rc == 0); + + assert_string_equal(q, b64_key); + + free(b64_key); + free(key_buf); + ssh_key_free(key); +} + static void torture_pki_publickey_rsa_base64(void **state) { enum ssh_keytypes_e type; @@ -778,6 +815,9 @@ int torture_run_tests(void) { unit_test_setup_teardown(torture_pki_publickey_dsa_base64, setup_dsa_key, teardown), + unit_test_setup_teardown(torture_pki_publickey_ecdsa_base64, + setup_ecdsa_key, + teardown), unit_test_setup_teardown(torture_pki_publickey_rsa_base64, setup_rsa_key, teardown), -- cgit