Look up MD5 by name.
[openssl.git] / apps / speed.c
index dbf7732a2a6fa0e39df9cbdbee7e762927bd911e..5c05e11d67028a81c8147a025bc158e962c26c70 100644 (file)
@@ -426,6 +426,7 @@ int MAIN(int argc, char **argv)
        int pr_header=0;
        int usertime=1;
        const EVP_CIPHER *evp=NULL;
+       int decrypt=0;
 
 #ifndef TIMES
        usertime=-1;
@@ -495,6 +496,8 @@ int MAIN(int argc, char **argv)
                                }
                        doit[D_EVP]=1;
                        }
+               else if(argc > 0 && !strcmp(*argv,"-decrypt"))
+                       decrypt=1;
                else
                if      ((argc > 0) && (strcmp(*argv,"-engine") == 0))
                        {
@@ -784,9 +787,9 @@ int MAIN(int argc, char **argv)
 #endif
 
 #ifndef OPENSSL_NO_DES
-       des_set_key_unchecked(&key,sch);
-       des_set_key_unchecked(&key2,sch2);
-       des_set_key_unchecked(&key3,sch3);
+       des_set_key_unchecked(&key,&sch);
+       des_set_key_unchecked(&key2,&sch2);
+       des_set_key_unchecked(&key3,&sch3);
 #endif
 #ifndef OPENSSL_NO_IDEA
        idea_set_encrypt_key(key16,&idea_ks);
@@ -974,7 +977,7 @@ int MAIN(int argc, char **argv)
                        print_message(names[D_MD5],c[D_MD5][j],lengths[j]);
                        Time_F(START,usertime);
                        for (count=0,run=1; COND(c[D_MD5][j]); count++)
-                               EVP_Digest(&(buf[0]),(unsigned long)lengths[j],&(md5[0]),NULL,EVP_md5());
+                               EVP_Digest(&(buf[0]),(unsigned long)lengths[j],&(md5[0]),NULL,EVP_get_digestbyname("md5"));
                        d=Time_F(STOP,usertime);
                        BIO_printf(bio_err,"%ld %s's in %.2fs\n",
                                count,names[D_MD5],d);
@@ -987,6 +990,8 @@ int MAIN(int argc, char **argv)
        if (doit[D_HMAC])
                {
                HMAC_CTX hctx;
+
+               HMAC_CTX_init(&hctx);
                HMAC_Init(&hctx,(unsigned char *)"This is a key...",
                        16,EVP_md5());
 
@@ -1005,7 +1010,7 @@ int MAIN(int argc, char **argv)
                                count,names[D_HMAC],d);
                        results[D_HMAC][j]=((double)count)/d*lengths[j];
                        }
-               HMAC_cleanup(&hctx);
+               HMAC_CTX_cleanup(&hctx);
                }
 #endif
 #ifndef OPENSSL_NO_SHA
@@ -1065,11 +1070,11 @@ int MAIN(int argc, char **argv)
                        print_message(names[D_CBC_DES],c[D_CBC_DES][j],lengths[j]);
                        Time_F(START,usertime);
                        for (count=0,run=1; COND(c[D_CBC_DES][j]); count++)
-                               des_ncbc_encrypt(buf,buf,lengths[j],sch,
+                               des_ncbc_encrypt(buf,buf,lengths[j],&sch,
                                                 &iv,DES_ENCRYPT);
                        d=Time_F(STOP,usertime);
                        BIO_printf(bio_err,"%ld %s's in %.2fs\n",
-                               count,names[D_CBC_DES],d);
+                                  count,names[D_CBC_DES],d);
                        results[D_CBC_DES][j]=((double)count)/d*lengths[j];
                        }
                }
@@ -1082,7 +1087,7 @@ int MAIN(int argc, char **argv)
                        Time_F(START,usertime);
                        for (count=0,run=1; COND(c[D_EDE3_DES][j]); count++)
                                des_ede3_cbc_encrypt(buf,buf,lengths[j],
-                                                    sch,sch2,sch3,
+                                                    &sch,&sch2,&sch3,
                                                     &iv,DES_ENCRYPT);
                        d=Time_F(STOP,usertime);
                        BIO_printf(bio_err,"%ld %s's in %.2fs\n",
@@ -1192,11 +1197,22 @@ int MAIN(int argc, char **argv)
                        names[D_EVP]=OBJ_nid2ln(evp->nid);
                        print_message(names[D_EVP],save_count,
                                                  lengths[j]);
-                       EVP_EncryptInit(&ctx,evp,key16,iv);
+                       if(decrypt)
+                               EVP_DecryptInit(&ctx,evp,key16,iv);
+                       else
+                               EVP_EncryptInit(&ctx,evp,key16,iv);
+                               
                        Time_F(START,usertime);
-                       for (count=0,run=1; COND(save_count*4*lengths[0]/lengths[j]); count++)
-                           EVP_EncryptUpdate(&ctx,buf,&outl,buf,lengths[j]);
-                       EVP_EncryptFinal(&ctx,buf,&outl);
+                       if(decrypt)
+                               for (count=0,run=1; COND(save_count*4*lengths[0]/lengths[j]); count++)
+                                       EVP_DecryptUpdate(&ctx,buf,&outl,buf,lengths[j]);
+                       else
+                               for (count=0,run=1; COND(save_count*4*lengths[0]/lengths[j]); count++)
+                                       EVP_EncryptUpdate(&ctx,buf,&outl,buf,lengths[j]);
+                       if(decrypt)
+                               EVP_DecryptFinal(&ctx,buf,&outl);
+                       else
+                               EVP_EncryptFinal(&ctx,buf,&outl);
                        d=Time_F(STOP,usertime);
                        BIO_printf(bio_err,"%ld %s's in %.2fs\n",
                                           count,names[D_EVP],d);
@@ -1302,7 +1318,7 @@ int MAIN(int argc, char **argv)
                int ret;
 
                if (!dsa_doit[j]) continue;
-               DSA_generate_key(dsa_key[j]);
+/*             DSA_generate_key(dsa_key[j]); */
 /*             DSA_sign_setup(dsa_key[j],NULL); */
                ret=DSA_sign(EVP_PKEY_DSA,buf,20,buf2,
                        &kk,dsa_key[j]);
@@ -1470,6 +1486,7 @@ end:
                if (dsa_key[i] != NULL)
                        DSA_free(dsa_key[i]);
 #endif
+       apps_shutdown();
        EXIT(mret);
        }