aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2002-06-10 12:38:10 +0000
committerDaniel Stenberg <daniel@haxx.se>2002-06-10 12:38:10 +0000
commit8b77f40f991d22fc835397900be673077f69f662 (patch)
tree780500ac64302d0c4c6388ca1c6eaac7468e7b98 /lib
parentd8667165652cc69425b6f558460e3053881f46fa (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.c15
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");