📄 speed.c
字号:
}#endif#ifndef NO_SHA if (doit[D_SHA1]) { for (j=0; j<SIZE_NUM; j++) { 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++) SHA1(buf,(unsigned long)lengths[j],&(sha[0])); d=Time_F(STOP,usertime); BIO_printf(bio_err,"%ld %s's in %.2fs\n", count,names[D_SHA1],d); results[D_SHA1][j]=((double)count)/d*lengths[j]; } }#endif#ifndef NO_RIPEMD if (doit[D_RMD160]) { for (j=0; j<SIZE_NUM; j++) { 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++) RIPEMD160(buf,(unsigned long)lengths[j],&(rmd160[0])); d=Time_F(STOP,usertime); BIO_printf(bio_err,"%ld %s's in %.2fs\n", count,names[D_RMD160],d); results[D_RMD160][j]=((double)count)/d*lengths[j]; } }#endif#ifndef NO_RC4 if (doit[D_RC4]) { for (j=0; j<SIZE_NUM; j++) { print_message(names[D_RC4],c[D_RC4][j],lengths[j]); Time_F(START,usertime); for (count=0,run=1; COND(c[D_RC4][j]); count++) RC4(&rc4_ks,(unsigned int)lengths[j], buf,buf); d=Time_F(STOP,usertime); BIO_printf(bio_err,"%ld %s's in %.2fs\n", count,names[D_RC4],d); results[D_RC4][j]=((double)count)/d*lengths[j]; } }#endif#ifndef NO_DES if (doit[D_CBC_DES]) { for (j=0; j<SIZE_NUM; j++) { 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, &iv,DES_ENCRYPT); d=Time_F(STOP,usertime); BIO_printf(bio_err,"%ld %s's in %.2fs\n", count,names[D_CBC_DES],d); results[D_CBC_DES][j]=((double)count)/d*lengths[j]; } } if (doit[D_EDE3_DES]) { for (j=0; j<SIZE_NUM; j++) { print_message(names[D_EDE3_DES],c[D_EDE3_DES][j],lengths[j]); 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, &iv,DES_ENCRYPT); d=Time_F(STOP,usertime); BIO_printf(bio_err,"%ld %s's in %.2fs\n", count,names[D_EDE3_DES],d); results[D_EDE3_DES][j]=((double)count)/d*lengths[j]; } }#endif#ifndef NO_IDEA if (doit[D_CBC_IDEA]) { for (j=0; j<SIZE_NUM; j++) { print_message(names[D_CBC_IDEA],c[D_CBC_IDEA][j],lengths[j]); Time_F(START,usertime); for (count=0,run=1; COND(c[D_CBC_IDEA][j]); count++) idea_cbc_encrypt(buf,buf, (unsigned long)lengths[j],&idea_ks, iv,IDEA_ENCRYPT); d=Time_F(STOP,usertime); BIO_printf(bio_err,"%ld %s's in %.2fs\n", count,names[D_CBC_IDEA],d); results[D_CBC_IDEA][j]=((double)count)/d*lengths[j]; } }#endif#ifndef NO_RC2 if (doit[D_CBC_RC2]) { for (j=0; j<SIZE_NUM; j++) { print_message(names[D_CBC_RC2],c[D_CBC_RC2][j],lengths[j]); Time_F(START,usertime); for (count=0,run=1; COND(c[D_CBC_RC2][j]); count++) RC2_cbc_encrypt(buf,buf, (unsigned long)lengths[j],&rc2_ks, iv,RC2_ENCRYPT); d=Time_F(STOP,usertime); BIO_printf(bio_err,"%ld %s's in %.2fs\n", count,names[D_CBC_RC2],d); results[D_CBC_RC2][j]=((double)count)/d*lengths[j]; } }#endif#ifndef NO_RC5 if (doit[D_CBC_RC5]) { for (j=0; j<SIZE_NUM; j++) { print_message(names[D_CBC_RC5],c[D_CBC_RC5][j],lengths[j]); Time_F(START,usertime); for (count=0,run=1; COND(c[D_CBC_RC5][j]); count++) RC5_32_cbc_encrypt(buf,buf, (unsigned long)lengths[j],&rc5_ks, iv,RC5_ENCRYPT); d=Time_F(STOP,usertime); BIO_printf(bio_err,"%ld %s's in %.2fs\n", count,names[D_CBC_RC5],d); results[D_CBC_RC5][j]=((double)count)/d*lengths[j]; } }#endif#ifndef NO_BF if (doit[D_CBC_BF]) { for (j=0; j<SIZE_NUM; j++) { print_message(names[D_CBC_BF],c[D_CBC_BF][j],lengths[j]); Time_F(START,usertime); for (count=0,run=1; COND(c[D_CBC_BF][j]); count++) BF_cbc_encrypt(buf,buf, (unsigned long)lengths[j],&bf_ks, iv,BF_ENCRYPT); d=Time_F(STOP,usertime); BIO_printf(bio_err,"%ld %s's in %.2fs\n", count,names[D_CBC_BF],d); results[D_CBC_BF][j]=((double)count)/d*lengths[j]; } }#endif#ifndef NO_CAST if (doit[D_CBC_CAST]) { for (j=0; j<SIZE_NUM; j++) { print_message(names[D_CBC_CAST],c[D_CBC_CAST][j],lengths[j]); Time_F(START,usertime); for (count=0,run=1; COND(c[D_CBC_CAST][j]); count++) CAST_cbc_encrypt(buf,buf, (unsigned long)lengths[j],&cast_ks, iv,CAST_ENCRYPT); d=Time_F(STOP,usertime); BIO_printf(bio_err,"%ld %s's in %.2fs\n", count,names[D_CBC_CAST],d); results[D_CBC_CAST][j]=((double)count)/d*lengths[j]; } }#endif RAND_pseudo_bytes(buf,36);#ifndef NO_RSA for (j=0; j<RSA_NUM; j++) { int ret; if (!rsa_doit[j]) continue; ret=RSA_sign(NID_md5_sha1, buf,36, buf2, &rsa_num, rsa_key[j]); if (ret == 0) { BIO_printf(bio_err,"RSA sign failure. No RSA sign will be done.\n"); ERR_print_errors(bio_err); rsa_count=1; } else { pkey_print_message("private","rsa", rsa_c[j][0],rsa_bits[j], RSA_SECONDS);/* RSA_blinding_on(rsa_key[j],NULL); */ Time_F(START,usertime); for (count=0,run=1; COND(rsa_c[j][0]); count++) { ret=RSA_sign(NID_md5_sha1, buf,36, buf2, &rsa_num, rsa_key[j]); if (ret == 0) { BIO_printf(bio_err, "RSA sign failure\n"); ERR_print_errors(bio_err); count=1; break; } } d=Time_F(STOP,usertime); BIO_printf(bio_err, "%ld %d bit private RSA's in %.2fs\n", count,rsa_bits[j],d); rsa_results[j][0]=d/(double)count; rsa_count=count; }#if 1 ret=RSA_verify(NID_md5_sha1, buf,36, buf2, rsa_num, rsa_key[j]); if (ret <= 0) { BIO_printf(bio_err,"RSA verify failure. No RSA verify will be done.\n"); ERR_print_errors(bio_err); dsa_doit[j] = 0; } else { pkey_print_message("public","rsa", rsa_c[j][1],rsa_bits[j], RSA_SECONDS); Time_F(START,usertime); for (count=0,run=1; COND(rsa_c[j][1]); count++) { ret=RSA_verify(NID_md5_sha1, buf,36, buf2, rsa_num, rsa_key[j]); if (ret == 0) { BIO_printf(bio_err, "RSA verify failure\n"); ERR_print_errors(bio_err); count=1; break; } } d=Time_F(STOP,usertime); BIO_printf(bio_err, "%ld %d bit public RSA's in %.2fs\n", count,rsa_bits[j],d); rsa_results[j][1]=d/(double)count; }#endif if (rsa_count <= 1) { /* if longer than 10s, don't do any more */ for (j++; j<RSA_NUM; j++) rsa_doit[j]=0; } }#endif RAND_pseudo_bytes(buf,20);#ifndef NO_DSA if (RAND_status() != 1) { RAND_seed(rnd_seed, sizeof rnd_seed); rnd_fake = 1; } for (j=0; j<DSA_NUM; j++) { unsigned int kk; int ret; if (!dsa_doit[j]) continue; 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]); if (ret == 0) { BIO_printf(bio_err,"DSA sign failure. No DSA sign will be done.\n"); ERR_print_errors(bio_err); rsa_count=1; } else { pkey_print_message("sign","dsa", dsa_c[j][0],dsa_bits[j], DSA_SECONDS); Time_F(START,usertime); for (count=0,run=1; COND(dsa_c[j][0]); count++) { ret=DSA_sign(EVP_PKEY_DSA,buf,20,buf2, &kk,dsa_key[j]); if (ret == 0) { BIO_printf(bio_err, "DSA sign failure\n"); ERR_print_errors(bio_err); count=1; break; } } d=Time_F(STOP,usertime); BIO_printf(bio_err,"%ld %d bit DSA signs in %.2fs\n", count,dsa_bits[j],d); dsa_results[j][0]=d/(double)count; rsa_count=count; } ret=DSA_verify(EVP_PKEY_DSA,buf,20,buf2, kk,dsa_key[j]); if (ret <= 0) { BIO_printf(bio_err,"DSA verify failure. No DSA verify will be done.\n"); ERR_print_errors(bio_err); dsa_doit[j] = 0; } else { pkey_print_message("verify","dsa", dsa_c[j][1],dsa_bits[j], DSA_SECONDS); Time_F(START,usertime); for (count=0,run=1; COND(dsa_c[j][1]); count++) { ret=DSA_verify(EVP_PKEY_DSA,buf,20,buf2, kk,dsa_key[j]); if (ret <= 0) { BIO_printf(bio_err, "DSA verify failure\n"); ERR_print_errors(bio_err); count=1; break; } } d=Time_F(STOP,usertime); BIO_printf(bio_err,"%ld %d bit DSA verify in %.2fs\n", count,dsa_bits[j],d); dsa_results[j][1]=d/(double)count; } if (rsa_count <= 1) { /* if longer than 10s, don't do any more */ for (j++; j<DSA_NUM; j++) dsa_doit[j]=0; } } if (rnd_fake) RAND_cleanup();#endif fprintf(stdout,"%s\n",SSLeay_version(SSLEAY_VERSION)); fprintf(stdout,"%s\n",SSLeay_version(SSLEAY_BUILT_ON)); printf("options:"); printf("%s ",BN_options());#ifndef NO_MD2 printf("%s ",MD2_options());#endif#ifndef NO_RC4 printf("%s ",RC4_options());#endif#ifndef NO_DES printf("%s ",des_options());#endif#ifndef NO_IDEA printf("%s ",idea_options());#endif#ifndef NO_BF printf("%s ",BF_options());#endif fprintf(stdout,"\n%s\n",SSLeay_version(SSLEAY_CFLAGS)); if (pr_header) { fprintf(stdout,"The 'numbers' are in 1000s of bytes per second processed.\n"); fprintf(stdout,"type "); for (j=0; j<SIZE_NUM; j++) fprintf(stdout,"%7d bytes",lengths[j]); fprintf(stdout,"\n"); } for (k=0; k<ALGOR_NUM; k++) { if (!doit[k]) continue; fprintf(stdout,"%-13s",names[k]); for (j=0; j<SIZE_NUM; j++) { if (results[k][j] > 10000) fprintf(stdout," %11.2fk",results[k][j]/1e3); else fprintf(stdout," %11.2f ",results[k][j]); } fprintf(stdout,"\n"); }#ifndef NO_RSA j=1; for (k=0; k<RSA_NUM; k++) { if (!rsa_doit[k]) continue; if (j) { printf("%18ssign verify sign/s verify/s\n"," "); j=0; } fprintf(stdout,"rsa %4u bits %8.4fs %8.4fs %8.1f %8.1f", rsa_bits[k],rsa_results[k][0],rsa_results[k][1], 1.0/rsa_results[k][0],1.0/rsa_results[k][1]); fprintf(stdout,"\n"); }#endif#ifndef NO_DSA j=1; for (k=0; k<DSA_NUM; k++) { if (!dsa_doit[k]) continue; if (j) { printf("%18ssign verify sign/s verify/s\n"," "); j=0; } fprintf(stdout,"dsa %4u bits %8.4fs %8.4fs %8.1f %8.1f", dsa_bits[k],dsa_results[k][0],dsa_results[k][1], 1.0/dsa_results[k][0],1.0/dsa_results[k][1]); fprintf(stdout,"\n"); }#endif mret=0;end: if (buf != NULL) OPENSSL_free(buf); if (buf2 != NULL) OPENSSL_free(buf2);#ifndef NO_RSA for (i=0; i<RSA_NUM; i++) if (rsa_key[i] != NULL) RSA_free(rsa_key[i]);#endif#ifndef NO_DSA for (i=0; i<DSA_NUM; i++) if (dsa_key[i] != NULL) DSA_free(dsa_key[i]);#endif EXIT(mret); }static void print_message(char *s, long num, int length) {#ifdef SIGALRM BIO_printf(bio_err,"Doing %s for %ds on %d size blocks: ",s,SECONDS,length); (void)BIO_flush(bio_err); alarm(SECONDS);#else BIO_printf(bio_err,"Doing %s %ld times on %d size blocks: ",s,num,length); (void)BIO_flush(bio_err);#endif#ifdef LINT num=num;#endif }static void pkey_print_message(char *str, char *str2, long num, int bits, int tm) {#ifdef SIGALRM BIO_printf(bio_err,"Doing %d bit %s %s's for %ds: ",bits,str,str2,tm); (void)BIO_flush(bio_err); alarm(RSA_SECONDS);#else BIO_printf(bio_err,"Doing %ld %d bit %s %s's: ",num,bits,str,str2); (void)BIO_flush(bio_err);#endif#ifdef LINT num=num;#endif }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -