#ifndef WIN32
#include <dirent.h>
#endif
-#include "objects.h"
-#include "bio.h"
-#include "pem.h"
+#include <openssl/objects.h>
+#include <openssl/bio.h>
+#include <openssl/pem.h>
#include "ssl_locl.h"
-int SSL_get_ex_data_X509_STORE_CTX_idx()
+int SSL_get_ex_data_X509_STORE_CTX_idx(void)
{
static int ssl_x509_store_ctx_idx= -1;
return(ssl_x509_store_ctx_idx);
}
-CERT *ssl_cert_new()
+CERT *ssl_cert_new(void)
{
CERT *ret;
x=sk_X509_value(sk,0);
X509_STORE_CTX_init(&ctx,s->ctx->cert_store,x,sk);
+ if (SSL_get_verify_depth(s) >= 0)
+ X509_STORE_CTX_set_depth(&ctx, SSL_get_verify_depth(s));
X509_STORE_CTX_set_ex_data(&ctx,SSL_get_ex_data_X509_STORE_CTX_idx(),
(char *)s);
return(i);
}
-static void set_client_CA_list(STACK_OF(X509_NAME) **ca_list,
- STACK_OF(X509_NAME) *list)
+static void set_client_CA_list(STACK_OF(X509_NAME) **ca_list,STACK_OF(X509_NAME) *list)
{
if (*ca_list != NULL)
sk_X509_NAME_pop_free(*ca_list,X509_NAME_free);
* certs may have been added to \c stack.
*/
-int SSL_add_file_cert_subjects_to_stack(STACK *stack,const char *file)
+int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stack,
+ const char *file)
{
BIO *in;
X509 *x=NULL;
int ret=1;
int (*oldcmp)();
- oldcmp=sk_set_cmp_func(stack,name_cmp);
+ oldcmp=sk_X509_NAME_set_cmp_func(stack,name_cmp);
in=BIO_new(BIO_s_file_internal());
if ((xn=X509_get_subject_name(x)) == NULL) goto err;
xn=X509_NAME_dup(xn);
if (xn == NULL) goto err;
- if (sk_find(stack,(char *)xn) >= 0)
+ if (sk_X509_NAME_find(stack,xn) >= 0)
X509_NAME_free(xn);
else
- sk_push(stack,(char *)xn);
+ sk_X509_NAME_push(stack,xn);
}
if (0)
if(x != NULL)
X509_free(x);
- sk_set_cmp_func(stack,oldcmp);
+ sk_X509_NAME_set_cmp_func(stack,oldcmp);
return ret;
}
#ifndef WIN32
-int SSL_add_dir_cert_subjects_to_stack(STACK *stack,const char *dir)
+int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stack,
+ const char *dir)
{
DIR *d=opendir(dir);
struct dirent *dstruct;