'apps/openssl dgst -help' update and minor apps/speed.c update.
[openssl.git] / apps / dgst.c
index dd65a591f5b3ee41a481f99e99e3a59512543045..c1bacd79b7a125bf172be6289209551acbfe10f7 100644 (file)
@@ -100,7 +100,9 @@ int MAIN(int argc, char **argv)
        EVP_PKEY *sigkey = NULL;
        unsigned char *sigbuf = NULL;
        int siglen = 0;
+#ifndef OPENSSL_NO_ENGINE
        char *engine=NULL;
+#endif
 
        apps_startup();
 
@@ -166,11 +168,13 @@ int MAIN(int argc, char **argv)
                        if (--argc < 1) break;
                        keyform=str2fmt(*(++argv));
                        }
+#ifndef OPENSSL_NO_ENGINE
                else if (strcmp(*argv,"-engine") == 0)
                        {
                        if (--argc < 1) break;
                        engine= *(++argv);
                        }
+#endif
                else if (strcmp(*argv,"-hex") == 0)
                        out_bin = 0;
                else if (strcmp(*argv,"-binary") == 0)
@@ -208,7 +212,9 @@ int MAIN(int argc, char **argv)
                BIO_printf(bio_err,"-keyform arg    key file format (PEM or ENGINE)\n");
                BIO_printf(bio_err,"-signature file signature to verify\n");
                BIO_printf(bio_err,"-binary         output in binary form\n");
+#ifndef OPENSSL_NO_ENGINE
                BIO_printf(bio_err,"-engine e       use engine e, possibly a hardware device.\n");
+#endif
 
                BIO_printf(bio_err,"-%3s to use the %s message digest algorithm (default)\n",
                        LN_md5,LN_md5);
@@ -216,10 +222,20 @@ int MAIN(int argc, char **argv)
                        LN_md4,LN_md4);
                BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
                        LN_md2,LN_md2);
+#ifndef OPENSSL_NO_SHA
                BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
                        LN_sha1,LN_sha1);
                BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
                        LN_sha,LN_sha);
+#ifndef OPENSSL_NO_SHA256
+               BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
+                       LN_sha256,LN_sha256);
+#endif
+#ifndef OPENSSL_NO_SHA512
+               BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
+                       LN_sha512,LN_sha512);
+#endif
+#endif
                BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
                        LN_mdc2,LN_mdc2);
                BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
@@ -228,7 +244,9 @@ int MAIN(int argc, char **argv)
                goto end;
                }
 
+#ifndef OPENSSL_NO_ENGINE
         e = setup_engine(bio_err, engine, 0);
+#endif
 
        in=BIO_new(BIO_s_file());
        bmd=BIO_new(BIO_f_md());
@@ -339,8 +357,9 @@ int MAIN(int argc, char **argv)
                                }
                        if(!out_bin)
                                {
-                               tmp=tofree=OPENSSL_malloc(strlen(name)+strlen(argv[i])+5);
-                               sprintf(tmp,"%s(%s)= ",name,argv[i]);
+                               size_t len = strlen(name)+strlen(argv[i])+5;
+                               tmp=tofree=OPENSSL_malloc(len);
+                               BIO_snprintf(tmp,len,"%s(%s)= ",name,argv[i]);
                                }
                        else
                                tmp="";
@@ -356,7 +375,7 @@ int MAIN(int argc, char **argv)
 end:
        if (buf != NULL)
                {
-               memset(buf,0,BUFSIZE);
+               OPENSSL_cleanse(buf,BUFSIZE);
                OPENSSL_free(buf);
                }
        if (in != NULL) BIO_free(in);
@@ -365,7 +384,7 @@ end:
        if(sigbuf) OPENSSL_free(sigbuf);
        if (bmd != NULL) BIO_free(bmd);
        apps_shutdown();
-       EXIT(err);
+       OPENSSL_EXIT(err);
        }
 
 int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,