1
1

tests: Add ecdsa pubkey_from_privkey test.

Этот коммит содержится в:
Andreas Schneider 2011-12-29 11:08:01 +01:00
родитель 0e1992a9cc
Коммит 14bb23ae3b

Просмотреть файл

@ -577,6 +577,47 @@ static void torture_generate_pubkey_from_privkey_dsa(void **state) {
ssh_key_free(pubkey);
}
static void torture_generate_pubkey_from_privkey_ecdsa(void **state) {
char pubkey_original[4096] = {0};
char pubkey_generated[4096] = {0};
ssh_key privkey;
ssh_key pubkey;
int rc;
(void) state; /* unused */
rc = torture_read_one_line(LIBSSH_ECDSA_TESTKEY ".pub",
pubkey_original,
sizeof(pubkey_original));
assert_true(rc == 0);
/* remove the public key, generate it from the private key and write it. */
unlink(LIBSSH_ECDSA_TESTKEY ".pub");
rc = ssh_pki_import_privkey_file(LIBSSH_ECDSA_TESTKEY,
NULL,
NULL,
NULL,
&privkey);
assert_true(rc == 0);
rc = ssh_pki_export_privkey_to_pubkey(privkey, &pubkey);
assert_true(rc == SSH_OK);
rc = ssh_pki_export_pubkey_file(pubkey, LIBSSH_ECDSA_TESTKEY ".pub");
assert_true(rc == 0);
rc = torture_read_one_line(LIBSSH_ECDSA_TESTKEY ".pub",
pubkey_generated,
sizeof(pubkey_generated));
assert_true(rc == 0);
assert_string_equal(pubkey_original, pubkey_generated);
ssh_key_free(privkey);
ssh_key_free(pubkey);
}
static void torture_pki_duplicate_key_rsa(void **state)
{
int rc;
@ -851,6 +892,9 @@ int torture_run_tests(void) {
unit_test_setup_teardown(torture_generate_pubkey_from_privkey_dsa,
setup_dsa_key,
teardown),
unit_test_setup_teardown(torture_generate_pubkey_from_privkey_ecdsa,
setup_ecdsa_key,
teardown),
unit_test_setup_teardown(torture_generate_pubkey_from_privkey_rsa,
setup_rsa_key,
teardown),