diff --git a/apps/speed.c b/apps/speed.c index 4008930454..b3c4e70951 100644 --- a/apps/speed.c +++ b/apps/speed.c @@ -268,7 +268,7 @@ static void print_result(int alg,int run_no,int count,double time_used); static int do_multi(int multi); #endif -#define ALGOR_NUM 19 +#define ALGOR_NUM 21 #define SIZE_NUM 5 #define RSA_NUM 4 #define DSA_NUM 3 @@ -280,7 +280,7 @@ static const char *names[ALGOR_NUM]={ "md2","mdc2","md4","md5","hmac(md5)","sha1","rmd160","rc4", "des cbc","des ede3","idea cbc", "rc2 cbc","rc5-32/12 cbc","blowfish cbc","cast cbc", - "aes-128 cbc","aes-192 cbc","aes-256 cbc"}; + "aes-128 cbc","aes-192 cbc","aes-256 cbc","evp","sha-256","sha-512"}; static double results[ALGOR_NUM][SIZE_NUM]; static int lengths[SIZE_NUM]={16,64,256,1024,8*1024}; static double rsa_results[RSA_NUM][2]; @@ -493,6 +493,8 @@ int MAIN(int argc, char **argv) #endif #ifndef OPENSSL_NO_SHA unsigned char sha[SHA_DIGEST_LENGTH]; + unsigned char sha256[SHA256_DIGEST_LENGTH]; + unsigned char sha512[SHA512_DIGEST_LENGTH]; #endif #ifndef OPENSSL_NO_RIPEMD unsigned char rmd160[RIPEMD160_DIGEST_LENGTH]; @@ -565,6 +567,8 @@ int MAIN(int argc, char **argv) #define D_CBC_192_AES 16 #define D_CBC_256_AES 17 #define D_EVP 18 +#define D_SHA256 19 +#define D_SHA512 20 double d=0.0; long c[ALGOR_NUM][SIZE_NUM]; #define R_DSA_512 0 @@ -867,7 +871,13 @@ int MAIN(int argc, char **argv) #ifndef OPENSSL_NO_SHA if (strcmp(*argv,"sha1") == 0) doit[D_SHA1]=1; else - if (strcmp(*argv,"sha") == 0) doit[D_SHA1]=1; + if (strcmp(*argv,"sha") == 0) doit[D_SHA1]=1, + doit[D_SHA256]=1, + doit[D_SHA512]=1; + else + if (strcmp(*argv,"sha-256") == 0) doit[D_SHA256]=1; + else + if (strcmp(*argv,"sha-512") == 0) doit[D_SHA512]=1; else #endif #ifndef OPENSSL_NO_RIPEMD @@ -1049,6 +1059,8 @@ int MAIN(int argc, char **argv) #endif #ifndef OPENSSL_NO_SHA1 BIO_printf(bio_err,"sha1 "); + BIO_printf(bio_err,"sha-256 "); + BIO_printf(bio_err,"sha-512 "); #endif #ifndef OPENSSL_NO_RIPEMD160 BIO_printf(bio_err,"rmd160"); @@ -1273,6 +1285,8 @@ int MAIN(int argc, char **argv) c[D_CBC_128_AES][0]=count; c[D_CBC_192_AES][0]=count; c[D_CBC_256_AES][0]=count; + c[D_SHA256][0]=count; + c[D_SHA512][0]=count; for (i=1; i<SIZE_NUM; i++) { @@ -1283,6 +1297,8 @@ int MAIN(int argc, char **argv) c[D_HMAC][i]=c[D_HMAC][0]*4*lengths[0]/lengths[i]; c[D_SHA1][i]=c[D_SHA1][0]*4*lengths[0]/lengths[i]; c[D_RMD160][i]=c[D_RMD160][0]*4*lengths[0]/lengths[i]; + c[D_SHA256][i]=c[D_SHA256][0]*4*lengths[0]/lengths[i]; + c[D_SHA512][i]=c[D_SHA512][0]*4*lengths[0]/lengths[i]; } for (i=1; i<SIZE_NUM; i++) { @@ -1559,6 +1575,32 @@ int MAIN(int argc, char **argv) print_result(D_SHA1,j,count,d); } } + + if (doit[D_SHA256]) + { + for (j=0; j<SIZE_NUM; j++) + { + print_message(names[D_SHA256],c[D_SHA256][j],lengths[j]); + Time_F(START); + for (count=0,run=1; COND(c[D_SHA256][j]); count++) + SHA256(buf,lengths[j],sha256); + d=Time_F(STOP); + print_result(D_SHA256,j,count,d); + } + } + + if (doit[D_SHA512]) + { + for (j=0; j<SIZE_NUM; j++) + { + print_message(names[D_SHA512],c[D_SHA512][j],lengths[j]); + Time_F(START); + for (count=0,run=1; COND(c[D_SHA512][j]); count++) + SHA512(buf,lengths[j],sha512); + d=Time_F(STOP); + print_result(D_SHA512,j,count,d); + } + } #endif #ifndef OPENSSL_NO_RIPEMD if (doit[D_RMD160]) diff --git a/test/Makefile.ssl b/test/Makefile.ssl index 256e4d33bf..de522ed72d 100644 --- a/test/Makefile.ssl +++ b/test/Makefile.ssl @@ -43,6 +43,8 @@ EXPTEST= exptest IDEATEST= ideatest SHATEST= shatest SHA1TEST= sha1test +SHA256TEST= sha256t +SHA512TEST= sha512t MDC2TEST= mdc2test RMDTEST= rmdtest MD2TEST= md2test @@ -69,7 +71,8 @@ TESTS= alltests EXE= $(BNTEST) $(ECTEST) $(ECDSATEST) $(ECDHTEST) $(IDEATEST) \ $(MD2TEST) $(MD4TEST) $(MD5TEST) $(HMACTEST) \ $(RC2TEST) $(RC4TEST) $(RC5TEST) \ - $(DESTEST) $(SHATEST) $(SHA1TEST) $(MDC2TEST) $(RMDTEST) \ + $(DESTEST) $(SHATEST) $(SHA1TEST) $(SHA256TEST) $(SHA512TEST) \ + $(MDC2TEST) $(RMDTEST) \ $(RANDTEST) $(DHTEST) $(ENGINETEST) \ $(BFTEST) $(CASTTEST) $(SSLTEST) $(EXPTEST) $(DSATEST) $(RSATEST) \ $(EVPTEST) @@ -80,7 +83,8 @@ OBJ= $(BNTEST).o $(ECTEST).o $(ECDSATEST).o $(ECDHTEST).o $(IDEATEST).o \ $(MD2TEST).o $(MD4TEST).o $(MD5TEST).o \ $(HMACTEST).o \ $(RC2TEST).o $(RC4TEST).o $(RC5TEST).o \ - $(DESTEST).o $(SHATEST).o $(SHA1TEST).o $(MDC2TEST).o $(RMDTEST).o \ + $(DESTEST).o $(SHATEST).o $(SHA1TEST).o $(SHA256TEST).o $(SHA512TEST).o \ + $(MDC2TEST).o $(RMDTEST).o \ $(RANDTEST).o $(DHTEST).o $(ENGINETEST).o $(CASTTEST).o \ $(BFTEST).o $(SSLTEST).o $(DSATEST).o $(EXPTEST).o $(RSATEST).o \ $(EVPTEST).o @@ -156,6 +160,8 @@ test_idea: test_sha: $(SET_SO_PATHS); ./$(SHATEST) $(SET_SO_PATHS); ./$(SHA1TEST) + $(SET_SO_PATHS); ./$(SHA256TEST) + $(SET_SO_PATHS); ./$(SHA512TEST) test_mdc2: $(SET_SO_PATHS); ./$(MDC2TEST) @@ -432,6 +438,38 @@ $(SHA1TEST): $(SHA1TEST).o $(DLIBCRYPTO) LIBRPATH=$(INSTALLTOP)/lib \ link_app.$${shlib_target} +$(SHA256TEST): $(SHA256TEST).o $(DLIBCRYPTO) + shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \ + shlib_target="$(SHLIB_TARGET)"; \ + fi; \ + if [ "$${shlib_target}" = "hpux-shared" -o "$${shlib_target}" = "darwin-shared" ] ; then \ + LIBRARIES="$(DLIBCRYPTO)"; \ + else \ + LIBRARIES="$(LIBCRYPTO)"; \ + fi; \ + $(NEWMAKE) -f $(TOP)/Makefile.shared \ + APPNAME=$(SHA256TEST) LDFLAGS="$(CFLAGS)" \ + OBJECTS="$(SHA256TEST).o" \ + LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \ + LIBRPATH=$(INSTALLTOP)/lib \ + link_app.$${shlib_target} + +$(SHA512TEST): $(SHA512TEST).o $(DLIBCRYPTO) + shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \ + shlib_target="$(SHLIB_TARGET)"; \ + fi; \ + if [ "$${shlib_target}" = "hpux-shared" -o "$${shlib_target}" = "darwin-shared" ] ; then \ + LIBRARIES="$(DLIBCRYPTO)"; \ + else \ + LIBRARIES="$(LIBCRYPTO)"; \ + fi; \ + $(NEWMAKE) -f $(TOP)/Makefile.shared \ + APPNAME=$(SHA512TEST) LDFLAGS="$(CFLAGS)" \ + OBJECTS="$(SHA512TEST).o" \ + LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \ + LIBRPATH=$(INSTALLTOP)/lib \ + link_app.$${shlib_target} + $(RMDTEST): $(RMDTEST).o $(DLIBCRYPTO) shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \ shlib_target="$(SHLIB_TARGET)"; \