diff options
author | Oliver Stöneberg <oliverst@online.de> | 2011-05-02 09:25:12 -0700 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2011-05-17 20:59:55 +0200 |
commit | a6dda5fefdca6f39b7f90ee0e8ba3cfc9bae7345 (patch) | |
tree | 60f096eea703908273fdb349d1a99004b8484afd /src | |
parent | da8356b477fc94a18b8098f021a25d7e24ee79de (diff) | |
download | libssh-a6dda5fefdca6f39b7f90ee0e8ba3cfc9bae7345.tar.gz libssh-a6dda5fefdca6f39b7f90ee0e8ba3cfc9bae7345.tar.xz libssh-a6dda5fefdca6f39b7f90ee0e8ba3cfc9bae7345.zip |
keyfiles: Use BIO* in _privatekey_from_file().
(cherry picked from commit 82df5dc2083a6f7234d1545bd671ee1b5b4680b6)
Diffstat (limited to 'src')
-rw-r--r-- | src/keyfiles.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/keyfiles.c b/src/keyfiles.c index d0f30076..1c5c34db 100644 --- a/src/keyfiles.c +++ b/src/keyfiles.c @@ -872,6 +872,15 @@ ssh_private_key _privatekey_from_file(void *session, const char *filename, } #endif +#ifdef HAVE_LIBCRYPTO + bio = BIO_new_file(filename,"r"); + if (bio == NULL) { + fclose(file); + ssh_set_error(session, SSH_FATAL, "Could not create BIO."); + return NULL; + } +#endif + switch (type) { case SSH_KEYTYPE_DSS: #ifdef HAVE_LIBGCRYPT @@ -884,7 +893,7 @@ ssh_private_key _privatekey_from_file(void *session, const char *filename, #elif defined HAVE_LIBCRYPTO dsa = PEM_read_bio_DSAPrivateKey(bio, NULL, NULL, NULL); - BIO_free(bio); + BIO_free(bio); if (dsa == NULL) { ssh_set_error(session, SSH_FATAL, @@ -905,7 +914,7 @@ ssh_private_key _privatekey_from_file(void *session, const char *filename, #elif defined HAVE_LIBCRYPTO rsa = PEM_read_bio_RSAPrivateKey(bio, NULL, NULL, NULL); - BIO_free(bio); + BIO_free(bio); if (rsa == NULL) { ssh_set_error(session, SSH_FATAL, @@ -917,9 +926,9 @@ ssh_private_key _privatekey_from_file(void *session, const char *filename, break; default: #ifdef HAVE_LIBGCRYPT - fclose(file); + fclose(file); #elif defined HAVE_LIBCRYPTO - BIO_free(bio); + BIO_free(bio); #endif ssh_set_error(session, SSH_FATAL, "Invalid private key type %d", type); return NULL; |