Index: kopenssl.cc
===================================================================
RCS file: /home/kde/kdelibs/kssl/Attic/kopenssl.cc,v
retrieving revision 1.24.2.1
diff -u -p -r1.24.2.1 kopenssl.cc
--- kopenssl.cc 2001/08/21 16:07:31 1.24.2.1
+++ kopenssl.cc 2002/08/12 20:53:43
@@ -92,6 +92,7 @@ static int (*K_SSL_CTX_use_certificate)
static int (*K_SSL_get_error) (SSL*, int) = NULL;
static STACK_OF(X509)* (*K_SSL_get_peer_cert_chain) (SSL*) = NULL;
static void (*K_X509_STORE_CTX_set_chain) (X509_STORE_CTX *, STACK_OF(X509)*) = NULL;
+static void (*K_X509_STORE_CTX_set_purpose) (X509_STORE_CTX *, int) = NULL;
static void (*K_sk_free) (STACK*) = NULL;
static int (*K_sk_num) (STACK*) = NULL;
static char* (*K_sk_value) (STACK*, int) = NULL;
@@ -254,6 +255,7 @@ KConfig *cfg;
X509**, STACK_OF(X509)**)) _cryptoLib->symbol("PKCS12_parse");
K_EVP_PKEY_free = (void (*) (EVP_PKEY *)) _cryptoLib->symbol("EVP_PKEY_free");
K_X509_STORE_CTX_set_chain = (void (*)(X509_STORE_CTX *, STACK_OF(X509)*)) _cryptoLib->symbol("X509_STORE_CTX_set_chain");
+ K_X509_STORE_CTX_set_purpose = (void (*)(X509_STORE_CTX *, int)) _cryptoLib->symbol("X509_STORE_CTX_set_purpose");
K_sk_free = (void (*) (STACK *)) _cryptoLib->symbol("sk_free");
K_sk_num = (int (*) (STACK *)) _cryptoLib->symbol("sk_num");
K_sk_value = (char* (*) (STACK *, int)) _cryptoLib->symbol("sk_value");
@@ -742,6 +744,10 @@ char *KOpenSSLProxy::sk_value(STACK *s,
void KOpenSSLProxy::X509_STORE_CTX_set_chain(X509_STORE_CTX *v, STACK_OF(X509)* x) {
if (K_X509_STORE_CTX_set_chain) (K_X509_STORE_CTX_set_chain)(v,x);
+}
+
+void KOpenSSLProxy::X509_STORE_CTX_set_purpose(X509_STORE_CTX *v, int purpose) {
+ if (K_X509_STORE_CTX_set_purpose) (K_X509_STORE_CTX_set_purpose)(v,purpose);
}
Index: kopenssl.h
===================================================================
RCS file: /home/kde/kdelibs/kssl/Attic/kopenssl.h,v
retrieving revision 1.15
diff -u -p -r1.15 kopenssl.h
--- kopenssl.h 2001/07/27 09:55:02 1.15
+++ kopenssl.h 2002/08/12 20:53:43
@@ -277,6 +277,10 @@ public:
*/
void X509_STORE_CTX_set_chain(X509_STORE_CTX *v, STACK_OF(X509)* x);
+ /*
+ * X509_STORE_CTX_set_purpose - set the purpose of the certificate
+ */
+ void X509_STORE_CTX_set_purpose(X509_STORE_CTX *v, int purpose);
/*
* X509_verify_cert - verify the certificate
Index: ksslcertificate.cc
===================================================================
RCS file: /home/kde/kdelibs/kssl/Attic/ksslcertificate.cc,v
retrieving revision 1.39.2.6
diff -u -p -r1.39.2.6 ksslcertificate.cc
--- ksslcertificate.cc 2001/10/25 06:12:11 1.39.2.6
+++ ksslcertificate.cc 2002/08/12 20:53:43
@@ -262,6 +262,8 @@ KSSLCertificate::KSSLValidation KSSLCert
// FIXME: do all the X509_STORE_CTX_set_flags(); here
// +-----> Note that this is for 0.9.6 or better ONLY!
+ d->kossl->X509_STORE_CTX_set_purpose(certStoreCTX, X509_PURPOSE_SSL_SERVER);
+
//kdDebug(7029) << "KSSL verifying.............." << endl;
certStoreCTX->error = X509_V_OK;
rc = d->kossl->X509_verify_cert(certStoreCTX);