📄 speed.c
字号:
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); } }#endif#ifndef OPENSSL_NO_SHA512 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#endif#ifndef OPENSSL_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); for (count=0,run=1; COND(c[D_RMD160][j]); count++) EVP_Digest(buf,(unsigned long)lengths[j],&(rmd160[0]),NULL,EVP_ripemd160(),NULL); d=Time_F(STOP); print_result(D_RMD160,j,count,d); } }#endif#ifndef OPENSSL_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); for (count=0,run=1; COND(c[D_RC4][j]); count++) RC4(&rc4_ks,(unsigned int)lengths[j], buf,buf); d=Time_F(STOP); print_result(D_RC4,j,count,d); } }#endif#ifndef OPENSSL_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); for (count=0,run=1; COND(c[D_CBC_DES][j]); count++) DES_ncbc_encrypt(buf,buf,lengths[j],&sch, &DES_iv,DES_ENCRYPT); d=Time_F(STOP); print_result(D_CBC_DES,j,count,d); } } 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); for (count=0,run=1; COND(c[D_EDE3_DES][j]); count++) DES_ede3_cbc_encrypt(buf,buf,lengths[j], &sch,&sch2,&sch3, &DES_iv,DES_ENCRYPT); d=Time_F(STOP); print_result(D_EDE3_DES,j,count,d); } }#endif#ifndef OPENSSL_NO_AES if (doit[D_CBC_128_AES]) { for (j=0; j<SIZE_NUM; j++) { print_message(names[D_CBC_128_AES],c[D_CBC_128_AES][j],lengths[j]); Time_F(START); for (count=0,run=1; COND(c[D_CBC_128_AES][j]); count++) AES_cbc_encrypt(buf,buf, (unsigned long)lengths[j],&aes_ks1, iv,AES_ENCRYPT); d=Time_F(STOP); print_result(D_CBC_128_AES,j,count,d); } } if (doit[D_CBC_192_AES]) { for (j=0; j<SIZE_NUM; j++) { print_message(names[D_CBC_192_AES],c[D_CBC_192_AES][j],lengths[j]); Time_F(START); for (count=0,run=1; COND(c[D_CBC_192_AES][j]); count++) AES_cbc_encrypt(buf,buf, (unsigned long)lengths[j],&aes_ks2, iv,AES_ENCRYPT); d=Time_F(STOP); print_result(D_CBC_192_AES,j,count,d); } } if (doit[D_CBC_256_AES]) { for (j=0; j<SIZE_NUM; j++) { print_message(names[D_CBC_256_AES],c[D_CBC_256_AES][j],lengths[j]); Time_F(START); for (count=0,run=1; COND(c[D_CBC_256_AES][j]); count++) AES_cbc_encrypt(buf,buf, (unsigned long)lengths[j],&aes_ks3, iv,AES_ENCRYPT); d=Time_F(STOP); print_result(D_CBC_256_AES,j,count,d); } }#endif#ifndef OPENSSL_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); 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); print_result(D_CBC_IDEA,j,count,d); } }#endif#ifndef OPENSSL_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); 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); print_result(D_CBC_RC2,j,count,d); } }#endif#ifndef OPENSSL_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); 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); print_result(D_CBC_RC5,j,count,d); } }#endif#ifndef OPENSSL_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); 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); print_result(D_CBC_BF,j,count,d); } }#endif#ifndef OPENSSL_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); 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); print_result(D_CBC_CAST,j,count,d); } }#endif if (doit[D_EVP]) { for (j=0; j<SIZE_NUM; j++) { if (evp_cipher) { EVP_CIPHER_CTX ctx; int outl; names[D_EVP]=OBJ_nid2ln(evp_cipher->nid); /* -O3 -fschedule-insns messes up an * optimization here! names[D_EVP] * somehow becomes NULL */ print_message(names[D_EVP],save_count, lengths[j]); EVP_CIPHER_CTX_init(&ctx); if(decrypt) EVP_DecryptInit_ex(&ctx,evp_cipher,NULL,key16,iv); else EVP_EncryptInit_ex(&ctx,evp_cipher,NULL,key16,iv); EVP_CIPHER_CTX_set_padding(&ctx, 0); Time_F(START); 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_ex(&ctx,buf,&outl); else EVP_EncryptFinal_ex(&ctx,buf,&outl); d=Time_F(STOP); EVP_CIPHER_CTX_cleanup(&ctx); } if (evp_md) { names[D_EVP]=OBJ_nid2ln(evp_md->type); print_message(names[D_EVP],save_count, lengths[j]); Time_F(START); for (count=0,run=1; COND(save_count*4*lengths[0]/lengths[j]); count++) EVP_Digest(buf,lengths[j],&(md[0]),NULL,evp_md,NULL); d=Time_F(STOP); } print_result(D_EVP,j,count,d); } } RAND_pseudo_bytes(buf,36);#ifndef OPENSSL_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); 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); BIO_printf(bio_err,mr ? "+R1:%ld:%d:%.2f\n" : "%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); rsa_doit[j] = 0; } else { pkey_print_message("public","rsa", rsa_c[j][1],rsa_bits[j], RSA_SECONDS); Time_F(START); 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); BIO_printf(bio_err,mr ? "+R2:%ld:%d:%.2f\n" : "%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 OPENSSL_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); 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); BIO_printf(bio_err,mr ? "+R3:%ld:%d:%.2f\n" : "%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); 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); BIO_printf(bio_err,mr ? "+R4:%ld:%d:%.2f\n" : "%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#ifndef OPENSSL_NO_ECDSA if (RAND_status() != 1) { RAND_seed(rnd_seed, sizeof rnd_seed); rnd_fake = 1; } for (j=0; j<EC_NUM; j++) { int ret; if (!ecdsa_doit[j]) continue; /* Ignore Curve */ ecdsa[j] = EC_KEY_new_by_curve_name(test_curves[j]); if (ecdsa[j] == NULL) { BIO_printf(bio_err,"ECDSA failure.\n"); ERR_print_errors(bio_err); rsa_count=1; } else {#if 1 EC_KEY_precompute_mult(ecdsa[j], NULL);#endif /* Perform ECDSA signature test */ EC_KEY_generate_key(ecdsa[j]); ret = ECDSA_sign(0, buf, 20, ecdsasig, &ecdsasiglen, ecdsa[j]); if (ret == 0) { BIO_printf(bio_err,"ECDSA sign failure. No ECDSA sign will be done.\n"); ERR_print_errors(bio_err); rsa_count=1; } else { pkey_print_message("sign","ecdsa", ecdsa_c[j][0], test_curves_bits[j], ECDSA_SECONDS); Time_F(START); for (count=0,run=1; COND(ecdsa_c[j][0]); count++) { ret=ECDSA_sign(0, buf, 20, ecdsasig, &ecdsasiglen, ecdsa[j]); if (ret == 0) { BIO_printf(bio_err, "ECDSA sign failure\n"); ERR_print_errors(bio_err); count=1; break; } } d=Time_F(STOP); BIO_printf(bio_err, mr ? "+R5:%ld:%d:%.2f\n" : "%ld %d bit ECDSA signs in %.2fs \n", count, test_curves_bits[j], d); ecdsa_results[j][0]=d/(double)count; rsa_count=count; } /* Perform ECDSA verification test */ ret=ECDSA_verify(0, buf, 20, ecdsasig, ecdsasiglen, ecdsa[j]); if (ret != 1) { BIO_printf(bio_err,"ECDSA verify failure. No ECDSA verify will be done.\n"); ERR_print_errors(bio_err); ecdsa_doit[j] = 0; } else { pkey_print_message("verify","ecdsa", ecdsa_c[j][1], test_curves_bits[j], ECDSA_SECONDS); Time_F(START); for (count=0,run=1; COND(ecdsa_c[j][1]); count++) { ret=ECDSA_verify(0, buf, 20, ecdsasig, ecdsasiglen, ecdsa[j]); if (ret != 1) { BIO_printf(bio_err, "ECDSA verify failure\n"); ERR_print_errors(bio_err); count=1; break; } } d=Time_F(STOP); BIO_printf(bio_err, mr? "+R6:%ld:%d:%.2f\n" : "%ld %d bit ECDSA verify in %.2fs\n", count, test_curves_bits[j], d); ecdsa_results[j][1]=d/(double)count; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -