Avoid warnings for no-engine and PEDANTIC
[oweals/openssl.git] / apps / apps.c
index 305227d7abd5747d9d9c4b4f6448614a6d117cbc..007e3e06c3e0858fb61bf8138cc7da5b1e69fb2e 100644 (file)
 #include <openssl/pkcs12.h>
 #include <openssl/ui.h>
 #include <openssl/safestack.h>
+#ifndef OPENSSL_NO_ENGINE
 #include <openssl/engine.h>
+#endif
 
 #ifdef OPENSSL_SYS_WINDOWS
 #define strcasecmp _stricmp
 #include "apps.h"
 #undef NON_MAIN
 
-#ifdef OPENSSL_SYS_WINDOWS
-#  include "bss_file.c"
-#endif
-
 typedef struct {
        char *name;
        unsigned long flag;
@@ -345,6 +343,7 @@ void program_name(char *in, char *out, int size)
 #ifdef OPENSSL_SYS_WIN32
 int WIN32_rename(char *from, char *to)
        {
+#ifndef OPENSSL_SYS_WINCE
        /* Windows rename gives an error if 'to' exists, so delete it
         * first and ignore file not found errror
         */
@@ -352,6 +351,30 @@ int WIN32_rename(char *from, char *to)
                return -1;
 #undef rename
        return rename(from, to);
+#else
+       /* convert strings to UNICODE */
+       {
+       BOOL result = FALSE;
+       WCHAR* wfrom;
+       WCHAR* wto;
+       int i;
+       wfrom = malloc((strlen(from)+1)*2);
+       wto = malloc((strlen(to)+1)*2);
+       if (wfrom != NULL && wto != NULL)
+               {
+               for (i=0; i<(int)strlen(from)+1; i++)
+                       wfrom[i] = (short)from[i];
+               for (i=0; i<(int)strlen(to)+1; i++)
+                       wto[i] = (short)to[i];
+               result = MoveFile(wfrom, wto);
+               }
+       if (wfrom != NULL)
+               free(wfrom);
+       if (wto != NULL)
+               free(wto);
+       return result;
+       }
+#endif
        }
 #endif
 
@@ -590,7 +613,7 @@ int password_callback(char *buf, int bufsiz, int verify,
 
                if (buff)
                        {
-                       memset(buff,0,(unsigned int)bufsiz);
+                       OPENSSL_cleanse(buff,(unsigned int)bufsiz);
                        OPENSSL_free(buff);
                        }
 
@@ -600,13 +623,13 @@ int password_callback(char *buf, int bufsiz, int verify,
                        {
                        BIO_printf(bio_err, "User interface error\n");
                        ERR_print_errors(bio_err);
-                       memset(buf,0,(unsigned int)bufsiz);
+                       OPENSSL_cleanse(buf,(unsigned int)bufsiz);
                        res = 0;
                        }
                if (ok == -2)
                        {
                        BIO_printf(bio_err,"aborted!\n");
-                       memset(buf,0,(unsigned int)bufsiz);
+                       OPENSSL_cleanse(buf,(unsigned int)bufsiz);
                        res = 0;
                        }
                UI_free(ui);
@@ -834,6 +857,7 @@ EVP_PKEY *load_key(BIO *err, const char *file, int format, int maybe_stdin,
                BIO_printf(err,"no keyfile specified\n");
                goto end;
                }
+#ifndef OPENSSL_NO_ENGINE
        if (format == FORMAT_ENGINE)
                {
                if (!e)
@@ -843,6 +867,7 @@ EVP_PKEY *load_key(BIO *err, const char *file, int format, int maybe_stdin,
                                ui_method, &cb_data);
                goto end;
                }
+#endif
        key=BIO_new(BIO_s_file());
        if (key == NULL)
                {
@@ -910,6 +935,7 @@ EVP_PKEY *load_pubkey(BIO *err, const char *file, int format, int maybe_stdin,
                BIO_printf(err,"no keyfile specified\n");
                goto end;
                }
+#ifndef OPENSSL_NO_ENGINE
        if (format == FORMAT_ENGINE)
                {
                if (!e)
@@ -919,6 +945,7 @@ EVP_PKEY *load_pubkey(BIO *err, const char *file, int format, int maybe_stdin,
                                ui_method, &cb_data);
                goto end;
                }
+#endif
        key=BIO_new(BIO_s_file());
        if (key == NULL)
                {
@@ -1304,6 +1331,7 @@ X509_STORE *setup_verify(BIO *bp, char *CAfile, char *CApath)
        return NULL;
 }
 
+#ifndef OPENSSL_NO_ENGINE
 /* Try to load an engine in a shareable library */
 static ENGINE *try_load_engine(BIO *err, const char *engine, int debug)
        {
@@ -1360,6 +1388,7 @@ ENGINE *setup_engine(BIO *err, const char *engine, int debug)
                }
         return e;
         }
+#endif
 
 int load_config(BIO *err, CONF *cnf)
        {