diff options
author | Daniel Stenberg <daniel@haxx.se> | 2002-06-10 12:38:10 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2002-06-10 12:38:10 +0000 |
commit | 8b77f40f991d22fc835397900be673077f69f662 (patch) | |
tree | 780500ac64302d0c4c6388ca1c6eaac7468e7b98 /lib | |
parent | d8667165652cc69425b6f558460e3053881f46fa (diff) |
This fix MIGHT make us build nicely with OpenSSL 0.9.7. This fix is based
on a patch from Jacob Meuser, input from Götz Babin-Ebell and my own
browsing of the latest include files.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ssluse.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/ssluse.c b/lib/ssluse.c index 7a4d685a5..3c7f1ba21 100644 --- a/lib/ssluse.c +++ b/lib/ssluse.c @@ -55,6 +55,15 @@ #undef HAVE_USERDATA_IN_PWD_CALLBACK #endif +#if OPENSSL_VERSION_NUMBER >= 0x00907001L +/* ENGINE_load_private_key() takes four arguments */ +#define HAVE_ENGINE_LOAD_FOUR_ARGS +#else +/* ENGINE_load_private_key() takes three arguments */ +#undef HAVE_ENGINE_LOAD_FOUR_ARGS +#endif + + #ifndef HAVE_USERDATA_IN_PWD_CALLBACK static char global_passwd[64]; #endif @@ -275,11 +284,17 @@ int cert_stuff(struct connectdata *conn, { /* XXXX still needs some work */ EVP_PKEY *priv_key = NULL; if (conn && conn->data && conn->data->engine) { +#ifdef HAVE_ENGINE_LOAD_FOUR_ARGS + UI_METHOD *ui_method = UI_OpenSSL(); +#endif if (!key_file || !key_file[0]) { failf(data, "no key set to load from crypto engine\n"); return 0; } priv_key = ENGINE_load_private_key(conn->data->engine,key_file, +#ifdef HAVE_ENGINE_LOAD_FOUR_ARGS + ui_method, +#endif data->set.key_passwd); if (!priv_key) { failf(data, "failed to load private key from crypto engine\n"); |