Add missing EVP_CIPHER_CTX_{init,cleanup}
[openssl.git] / apps / speed.c
index 2024c38c5ef1efd7942665d2698ed90f3aecea87..363ec65b0cd2a1647c8b6296d2be0c3e2ce5d952 100644 (file)
@@ -83,6 +83,7 @@
 #include <openssl/err.h>
 #include <openssl/evp.h>
 #include <openssl/objects.h>
+#include OPENSSL_UNISTD
 
 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(OPENSSL_SYS_MACOSX)
 # define USE_TOD
 
 /* The following if from times(3) man page.  It may need to be changed */
 #ifndef HZ
-# ifndef CLK_TCK
-#  ifndef _BSD_CLK_TCK_ /* FreeBSD hack */
-#   define HZ  100.0
-#  else /* _BSD_CLK_TCK_ */
-#   define HZ ((double)_BSD_CLK_TCK_)
-#  endif
-# else /* CLK_TCK */
-#  ifdef OPENSSL_SYS_LINUX     /* Because it seems like some Linuxen
-                                  have weird values here... */
-#   define HZ   100.0
-#  else
+# ifdef _SC_CLK_TCK
+#  define HZ ((double)sysconf(_SC_CLK_TCK))
+# else
+#  ifndef CLK_TCK
+#   ifndef _BSD_CLK_TCK_ /* FreeBSD hack */
+#    define HZ 100.0
+#   else /* _BSD_CLK_TCK_ */
+#    define HZ ((double)_BSD_CLK_TCK_)
+#   endif
+#  else /* CLK_TCK */
 #   define HZ ((double)CLK_TCK)
 #  endif
 # endif
@@ -839,7 +839,7 @@ int MAIN(int argc, char **argv)
                Time_F(START,usertime);
                for (i=count; i; i--)
                        des_ecb_encrypt(buf_as_des_cblock,buf_as_des_cblock,
-                               &(sch[0]),DES_ENCRYPT);
+                               &sch,DES_ENCRYPT);
                d=Time_F(STOP,usertime);
                } while (d <3);
        save_count=count;
@@ -944,7 +944,7 @@ int MAIN(int argc, char **argv)
                        print_message(names[D_MD2],c[D_MD2][j],lengths[j]);
                        Time_F(START,usertime);
                        for (count=0,run=1; COND(c[D_MD2][j]); count++)
-                               EVP_Digest(buf,(unsigned long)lengths[j],&(md2[0]),NULL,EVP_md2());
+                               EVP_Digest(buf,(unsigned long)lengths[j],&(md2[0]),NULL,EVP_md2(), NULL);
                        d=Time_F(STOP,usertime);
                        BIO_printf(bio_err,"%ld %s's in %.2fs\n",
                                count,names[D_MD2],d);
@@ -960,7 +960,7 @@ int MAIN(int argc, char **argv)
                        print_message(names[D_MDC2],c[D_MDC2][j],lengths[j]);
                        Time_F(START,usertime);
                        for (count=0,run=1; COND(c[D_MDC2][j]); count++)
-                               EVP_Digest(buf,(unsigned long)lengths[j],&(mdc2[0]),NULL,EVP_mdc2());
+                               EVP_Digest(buf,(unsigned long)lengths[j],&(mdc2[0]),NULL,EVP_mdc2(), NULL);
                        d=Time_F(STOP,usertime);
                        BIO_printf(bio_err,"%ld %s's in %.2fs\n",
                                count,names[D_MDC2],d);
@@ -977,7 +977,7 @@ int MAIN(int argc, char **argv)
                        print_message(names[D_MD4],c[D_MD4][j],lengths[j]);
                        Time_F(START,usertime);
                        for (count=0,run=1; COND(c[D_MD4][j]); count++)
-                               EVP_Digest(&(buf[0]),(unsigned long)lengths[j],&(md4[0]),NULL,EVP_md4());
+                               EVP_Digest(&(buf[0]),(unsigned long)lengths[j],&(md4[0]),NULL,EVP_md4(), NULL);
                        d=Time_F(STOP,usertime);
                        BIO_printf(bio_err,"%ld %s's in %.2fs\n",
                                count,names[D_MD4],d);
@@ -994,7 +994,8 @@ 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_get_digestbyname("md5"));
+                               EVP_Digest(&(buf[0]),(unsigned long)lengths[j],&(md5[0]),NULL,
+                                                                               EVP_get_digestbyname("md5"), NULL);
                        d=Time_F(STOP,usertime);
                        BIO_printf(bio_err,"%ld %s's in %.2fs\n",
                                count,names[D_MD5],d);
@@ -1038,7 +1039,7 @@ int MAIN(int argc, char **argv)
                        print_message(names[D_SHA1],c[D_SHA1][j],lengths[j]);
                        Time_F(START,usertime);
                        for (count=0,run=1; COND(c[D_SHA1][j]); count++)
-                               EVP_Digest(buf,(unsigned long)lengths[j],&(sha[0]),NULL,EVP_sha1());
+                               EVP_Digest(buf,(unsigned long)lengths[j],&(sha[0]),NULL,EVP_sha1(), NULL);
                        d=Time_F(STOP,usertime);
                        BIO_printf(bio_err,"%ld %s's in %.2fs\n",
                                count,names[D_SHA1],d);
@@ -1054,7 +1055,7 @@ int MAIN(int argc, char **argv)
                        print_message(names[D_RMD160],c[D_RMD160][j],lengths[j]);
                        Time_F(START,usertime);
                        for (count=0,run=1; COND(c[D_RMD160][j]); count++)
-                               EVP_Digest(buf,(unsigned long)lengths[j],&(rmd160[0]),NULL,EVP_ripemd160());
+                               EVP_Digest(buf,(unsigned long)lengths[j],&(rmd160[0]),NULL,EVP_ripemd160(), NULL);
                        d=Time_F(STOP,usertime);
                        BIO_printf(bio_err,"%ld %s's in %.2fs\n",
                                count,names[D_RMD160],d);
@@ -1214,10 +1215,11 @@ int MAIN(int argc, char **argv)
                        names[D_EVP]=OBJ_nid2ln(evp->nid);
                        print_message(names[D_EVP],save_count,
                                                  lengths[j]);
+                       EVP_CIPHER_CTX_init(&ctx);
                        if(decrypt)
-                               EVP_DecryptInit(&ctx,evp,key16,iv);
+                               EVP_DecryptInit_ex(&ctx,evp,NULL,key16,iv);
                        else
-                               EVP_EncryptInit(&ctx,evp,key16,iv);
+                               EVP_EncryptInit_ex(&ctx,evp,NULL,key16,iv);
                                
                        Time_F(START,usertime);
                        if(decrypt)
@@ -1227,10 +1229,11 @@ int MAIN(int argc, char **argv)
                                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);
+                               EVP_DecryptFinal_ex(&ctx,buf,&outl);
                        else
-                               EVP_EncryptFinal(&ctx,buf,&outl);
+                               EVP_EncryptFinal_ex(&ctx,buf,&outl);
                        d=Time_F(STOP,usertime);
+                       EVP_CIPHER_CTX_cleanup(&ctx);
                        BIO_printf(bio_err,"%ld %s's in %.2fs\n",
                                           count,names[D_EVP],d);
                        results[D_EVP][j]=((double)count)/d*lengths[j];
@@ -1446,7 +1449,10 @@ int MAIN(int argc, char **argv)
 #endif
 #ifdef HZ
 #define as_string(s) (#s)
-       printf("HZ=%g", (double)HZ);
+       printf("HZ=%g", HZ);
+# ifdef _SC_CLK_TCK
+       printf(" [sysconf value]");
+# endif
 #endif
        printf("\n");
        printf("timing function used: %s%s%s%s%s%s%s\n",