This keeps all FILE* handling on the OpenSSL side of the DLL boundary avoiding crashes on Windows while removing the need for libssh2 to read the private key file into memory. This is now done by OpenSSL which is likely to do a better job of it.
Passing a FILE* argument across a DLL boundary causes problems on Windows. Instead the keys are read into memory by libssh2 and passed to the OpenSSL functions as BIO* arguments.
the recent commits converted the tabs to 4 spaces, which matched the
initial indent size. Other commits converted the tabs to 8 spaces, this
didn't match.
All the code has been converted to 4 space indents. No changes to line
lengths or actual code was performed. This is in preperation to my up
coming non-blocking work so my commits should only be code changes and
line lengths in the code I am working on.
code:
It's not clear to me whether all the BN_news in _libssh2_rsa_new need to
be cleaned up, too. The OpenSSL docs for RSA_free implies that you don't
need to, and valgrind doesn't complain, so it's probably OK as is.
1 - let libssh2 compile with OpenSSL 0.9.6b. This is due to 'crypt' is found
in one of its header files and EVP_MAX_BLOCK_LENGTH not being found.
2 - The EXEEXT patch is because automake 1.7 doesn't support it, and recent
automakes add it automatically