Modify verify code to handle self signed certificates.
[openssl.git] / apps / apps.c
index 7c9510e3b54f03a99e707a830a5929dab2ac1703..4e3f32d07a0608ffb93f11652ada2d3538195579 100644 (file)
@@ -1,5 +1,5 @@
 /* apps/apps.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
 #include "apps.h"
 #undef NON_MAIN
 
-#ifdef WIN16
-#define APPS_WIN16
-#ifdef FLAT_BUILD
-#include "bss_file.c"
-#else
-#include "../crypto/bio/bss_file.c"
-#endif
+#ifdef WINDOWS
+#  include "bss_file.c"
 #endif
 
-#ifndef NOPROTO
 int app_init(long mesgwin);
-#else
-int app_init();
-#endif
-
 #ifdef undef /* never finished - probably never will be :-) */
-int args_from_file(file,argc,argv)
-char *file;
-int *argc;
-char **argv[];
+int args_from_file(char *file, int *argc, char **argv[])
        {
        FILE *fp;
        int num,i;
@@ -162,8 +149,7 @@ char **argv[];
        }
 #endif
 
-int str2fmt(s)
-char *s;
+int str2fmt(char *s)
        {
        if      ((*s == 'D') || (*s == 'd'))
                return(FORMAT_ASN1);
@@ -178,10 +164,7 @@ char *s;
        }
 
 #if defined(MSDOS) || defined(WIN32) || defined(WIN16)
-void program_name(in,out,size)
-char *in;
-char *out;
-int size;
+void program_name(char *in, char *out, int size)
        {
        int i,n;
        char *p=NULL;
@@ -218,10 +201,28 @@ int size;
        out[n]='\0';
        }
 #else
-void program_name(in,out,size)
-char *in;
-char *out;
-int size;
+#ifdef VMS
+void program_name(char *in, char *out, int size)
+       {
+       char *p=in, *q;
+       char *chars=":]>";
+
+       while(*chars != '\0')
+               {
+               q=strrchr(p,*chars);
+               if (q > p)
+                       p = q + 1;
+               chars++;
+               }
+
+       q=strrchr(p,'.');
+       if (q == NULL)
+               q = in+size;
+       strncpy(out,p,q-p);
+       out[q-p]='\0';
+       }
+#else
+void program_name(char *in, char *out, int size)
        {
        char *p;
 
@@ -234,24 +235,25 @@ int size;
        out[size-1]='\0';
        }
 #endif
+#endif
 
 #ifdef WIN32
-int WIN32_rename(from,to)
-char *from;
-char *to;
+int WIN32_rename(char *from, char *to)
        {
+#ifdef WINNT
        int ret;
+/* Note: MoveFileEx() doesn't work under Win95, Win98 */
 
        ret=MoveFileEx(from,to,MOVEFILE_REPLACE_EXISTING|MOVEFILE_COPY_ALLOWED);
        return(ret?0:-1);
+#else
+       unlink(to);
+       return MoveFile(from, to);
+#endif
        }
 #endif
 
-int chopup_args(arg,buf,argc,argv)
-ARGS *arg;
-char *buf;
-int *argc;
-char **argv[];
+int chopup_args(ARGS *arg, char *buf, int *argc, char **argv[])
        {
        int num,len,i;
        char *p;
@@ -317,9 +319,33 @@ char **argv[];
        }
 
 #ifndef APP_INIT
-int app_init(mesgwin)
-long mesgwin;
+int app_init(long mesgwin)
        {
        return(1);
        }
 #endif
+
+int MS_CALLBACK key_cb(char *buf, int len, int verify, void *key)
+       {
+       int i;
+
+       if (key == NULL) return(0);
+       i=strlen(key);
+       i=(i > len)?len:i;
+       memcpy(buf,key,i);
+       return(i);
+       }
+
+int dump_cert_text (BIO *out, X509 *x)
+{
+       char buf[256];
+       X509_NAME_oneline(X509_get_subject_name(x),buf,256);
+       BIO_puts(out,"subject=");
+       BIO_puts(out,buf);
+
+       X509_NAME_oneline(X509_get_issuer_name(x),buf,256);
+       BIO_puts(out,"\nissuer= ");
+       BIO_puts(out,buf);
+       BIO_puts(out,"\n");
+        return 0;
+}