Generate DLLs with Mingw32.
[openssl.git] / ssl / ssl_cert.c
index 52812e9966a8af6c416286c8d94bad66aa1d4c58..30877eaef69cabd93b8b9ed80b17af7a5718f1d0 100644 (file)
 #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;
 
@@ -78,7 +78,7 @@ int SSL_get_ex_data_X509_STORE_CTX_idx()
        return(ssl_x509_store_ctx_idx);
        }
 
-CERT *ssl_cert_new()
+CERT *ssl_cert_new(void)
        {
        CERT *ret;
 
@@ -185,6 +185,8 @@ int ssl_verify_cert_chain(SSL *s,STACK_OF(X509) *sk)
 
        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);
 
@@ -207,8 +209,7 @@ int ssl_verify_cert_chain(SSL *s,STACK_OF(X509) *sk)
        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);
@@ -372,7 +373,8 @@ err:
  * 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;
@@ -380,7 +382,7 @@ int SSL_add_file_cert_subjects_to_stack(STACK *stack,const char *file)
     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());
 
@@ -400,10 +402,10 @@ int SSL_add_file_cert_subjects_to_stack(STACK *stack,const char *file)
        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)
@@ -416,7 +418,7 @@ err:
     if(x != NULL)
        X509_free(x);
 
-    sk_set_cmp_func(stack,oldcmp);
+    sk_X509_NAME_set_cmp_func(stack,oldcmp);
 
     return ret;
     }
@@ -434,7 +436,8 @@ err:
 
 #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;