From: Dr. Stephen Henson Date: Wed, 18 Jun 2008 15:08:41 +0000 (+0000) Subject: Update from stable branch. X-Git-Tag: OpenSSL_0_9_8k^2~317 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=2836cb3816b87ec785ac6969b33136f293286382 Update from stable branch. --- diff --git a/engines/e_capi.c b/engines/e_capi.c index 568b8d3632..c2e5e64458 100644 --- a/engines/e_capi.c +++ b/engines/e_capi.c @@ -70,6 +70,7 @@ #include #include +#include #include "e_capi_err.h" #include "e_capi_err.c" @@ -1367,7 +1368,6 @@ static CAPI_KEY *capi_get_key(CAPI_CTX *ctx, const char *contname, char *provnam { CAPI_KEY *key; key = OPENSSL_malloc(sizeof(CAPI_KEY)); - contname, provname, ptype); CAPI_trace(ctx, "capi_get_key, contname=%s, provname=%s, type=%d\n", contname, provname, ptype); if (!CryptAcquireContext(&key->hprov, contname, provname, ptype, 0)) @@ -1587,11 +1587,15 @@ static int capi_load_ssl_client_cert(ENGINE *e, SSL *ssl, CAPI_trace(ctx, "Can't Parse Certificate %d\n", i); continue; } - if (cert_issuer_match(ca_dn, x)) + if (cert_issuer_match(ca_dn, x) + && X509_check_purpose(x, X509_PURPOSE_SSL_CLIENT, 0)) { key = capi_get_cert_key(ctx, cert); if (!key) + { + X509_free(x); continue; + } /* Match found: attach extra data to it so * we can retrieve the key later. */