Zap obsolete der_chop script.
[openssl.git] / apps / dgst.c
index 32e40c1f5368406796b6578bb38b1f4087b3d1e0..30253149114186123e8159b811248a7d7bdc527f 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();
 
@@ -117,7 +119,7 @@ int MAIN(int argc, char **argv)
                goto end;
 
        /* first check the program name */
-       program_name(argv[0],pname,PROG_NAME_SIZE);
+       program_name(argv[0],pname,sizeof pname);
 
        md=EVP_get_digestbyname(pname);
 
@@ -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());
@@ -314,7 +332,13 @@ int MAIN(int argc, char **argv)
 
 
        /* we use md as a filter, reading from 'in' */
-       BIO_set_md(bmd,md);
+       if (!BIO_set_md(bmd,md))
+               {
+               BIO_printf(bio_err, "Error setting digest %s\n", pname);
+               ERR_print_errors(bio_err);
+               goto end;
+               }
+               
        inp=BIO_push(bmd,in);
 
        if (argc == 0)
@@ -339,8 +363,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 +381,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 +390,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,