(_hx509_private_key_assign_key_file): ask for password if nothing matches.

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@16813 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2006-03-26 23:54:18 +00:00
parent 7542d311ee
commit c4c31576fe

View File

@@ -945,16 +945,20 @@ _hx509_private_key_assign_key_file(hx509_private_key key,
pw = _hx509_lock_get_passwords(lock); pw = _hx509_lock_get_passwords(lock);
for (i = 0; i < pw->len; i++) { for (i = 0; i < pw->len + 1; i++) {
#if HAVE_OPENSSL #if HAVE_OPENSSL
EVP_PKEY *private_key; EVP_PKEY *private_key;
const char *password = NULL;
FILE *f; FILE *f;
if (i < pw->len)
password = pw->val[i];
f = fopen(fn, "r"); f = fopen(fn, "r");
if (f == NULL) if (f == NULL)
return ENOMEM; return ENOMEM;
private_key = PEM_read_PrivateKey(f, NULL, NULL, pw->val[i]); private_key = PEM_read_PrivateKey(f, NULL, NULL, rk_UNCONST(password));
fclose(f); fclose(f);
if (private_key == NULL) if (private_key == NULL)
continue; continue;