From: Daniel Stenberg Date: Mon, 10 Jun 2002 12:38:10 +0000 (+0000) Subject: This fix MIGHT make us build nicely with OpenSSL 0.9.7. This fix is based X-Git-Tag: curl-7_9_8~30 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8b77f40f991d22fc835397900be673077f69f662;p=curl 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. --- 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");