Loading apps/speed.c +64 −0 Original line number Diff line number Diff line Loading @@ -191,6 +191,8 @@ #endif #include <openssl/modes.h> #include "../crypto/bn/bn_lcl.h" #ifndef HAVE_FORK # if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MACINTOSH_CLASSIC) || defined(OPENSSL_SYS_OS2) || defined(OPENSSL_SYS_NETWARE) # define HAVE_FORK 0 Loading @@ -214,6 +216,7 @@ static int usertime=1; static double Time_F(int s); static void print_message(const char *s,long num,int length); static void prime_print_message(const char *s, long num); static void pkey_print_message(const char *str, const char *str2, long num, int bits, int sec); static void print_result(int alg,int run_no,int count,double time_used); Loading @@ -223,6 +226,7 @@ static int do_multi(int multi); #define ALGOR_NUM 30 #define SIZE_NUM 5 #define PRIME_NUM 2 #define RSA_NUM 4 #define DSA_NUM 3 Loading @@ -239,6 +243,8 @@ static const char *names[ALGOR_NUM]={ "aes-128 ige","aes-192 ige","aes-256 ige","ghash" }; static double results[ALGOR_NUM][SIZE_NUM]; static int lengths[SIZE_NUM]={16,64,256,1024,8*1024}; static const char *prime_names[PRIME_NUM]={ "prime trial division", "prime coprime" }; #ifndef OPENSSL_NO_RSA static double rsa_results[RSA_NUM][2]; #endif Loading Loading @@ -492,6 +498,11 @@ int MAIN(int argc, char **argv) #define D_GHASH 29 double d=0.0; long c[ALGOR_NUM][SIZE_NUM]; #define D_PRIME_TRIAL_DIVISION 0 #define D_PRIME_COPRIME 1 long prime_c[PRIME_NUM]; #define R_DSA_512 0 #define R_DSA_1024 1 #define R_DSA_2048 2 Loading Loading @@ -605,6 +616,7 @@ int MAIN(int argc, char **argv) long ecdh_c[EC_NUM][2]; #endif int prime_doit[PRIME_NUM]; int rsa_doit[RSA_NUM]; int dsa_doit[DSA_NUM]; #ifndef OPENSSL_NO_ECDSA Loading Loading @@ -997,6 +1009,9 @@ int MAIN(int argc, char **argv) } else #endif if (strcmp(*argv,"prime-trial-division") == 0) prime_doit[D_PRIME_TRIAL_DIVISION]=1; else if (strcmp(*argv,"prime-coprime") == 0) prime_doit[D_PRIME_COPRIME]=1; else { BIO_printf(bio_err,"Error: bad option or value\n"); BIO_printf(bio_err,"\n"); Loading Loading @@ -1123,6 +1138,7 @@ int MAIN(int argc, char **argv) !defined(OPENSSL_NO_AES) || !defined(OPENSSL_NO_CAMELLIA) BIO_printf(bio_err,"\n"); #endif BIO_printf(bio_err,"prime-trial-division prime-coprime\n"); BIO_printf(bio_err,"\n"); BIO_printf(bio_err,"Available options:\n"); Loading Loading @@ -1329,6 +1345,10 @@ int MAIN(int argc, char **argv) c[D_IGE_192_AES][i]=c[D_IGE_192_AES][i-1]*l0/l1; c[D_IGE_256_AES][i]=c[D_IGE_256_AES][i-1]*l0/l1; } prime_c[D_PRIME_TRIAL_DIVISION]=count; prime_c[D_PRIME_COPRIME]=count; #ifndef OPENSSL_NO_RSA rsa_c[R_RSA_512][0]=count/2000; rsa_c[R_RSA_512][1]=count/400; Loading Loading @@ -1996,6 +2016,33 @@ int MAIN(int argc, char **argv) } } for (j=0; j<PRIME_NUM; j++) { BIGNUM *rnd = BN_new(); BIGNUM *add = BN_new(); BN_CTX *ctx = BN_CTX_new(); if(prime_doit[j]) { BN_set_word(add, 2); prime_print_message(prime_names[j], prime_c[j]); Time_F(START); for (count=0, run=1; COND(prime_c[j]); count++) bn_probable_prime_dh(rnd,1024,add,NULL,ctx); d=Time_F(STOP); BIO_printf(bio_err, mr ? "+R:%ld:%s:%f\n" : "%ld %s's in %.2fs\n", count, prime_names[j], d); } BN_CTX_free(ctx); BN_free(add); BN_free(rnd); } RAND_pseudo_bytes(buf,36); #ifndef OPENSSL_NO_RSA for (j=0; j<RSA_NUM; j++) Loading Loading @@ -2586,6 +2633,23 @@ static void print_message(const char *s, long num, int length) #endif } static void prime_print_message(const char *s, long num) { #ifdef SIGALRM BIO_printf(bio_err,mr ? "+DT:%s:%d\n" : "Doing %s for %ds: ", s, SECONDS); (void)BIO_flush(bio_err); alarm(SECONDS); #else BIO_printf(bio_err,mr ? "+DN:%s:%ld\n" : "Doing %s %ld times: ", s, num); (void)BIO_flush(bio_err); #endif #ifdef LINT num=num; #endif } static void pkey_print_message(const char *str, const char *str2, long num, int bits, int tm) { Loading Loading
apps/speed.c +64 −0 Original line number Diff line number Diff line Loading @@ -191,6 +191,8 @@ #endif #include <openssl/modes.h> #include "../crypto/bn/bn_lcl.h" #ifndef HAVE_FORK # if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MACINTOSH_CLASSIC) || defined(OPENSSL_SYS_OS2) || defined(OPENSSL_SYS_NETWARE) # define HAVE_FORK 0 Loading @@ -214,6 +216,7 @@ static int usertime=1; static double Time_F(int s); static void print_message(const char *s,long num,int length); static void prime_print_message(const char *s, long num); static void pkey_print_message(const char *str, const char *str2, long num, int bits, int sec); static void print_result(int alg,int run_no,int count,double time_used); Loading @@ -223,6 +226,7 @@ static int do_multi(int multi); #define ALGOR_NUM 30 #define SIZE_NUM 5 #define PRIME_NUM 2 #define RSA_NUM 4 #define DSA_NUM 3 Loading @@ -239,6 +243,8 @@ static const char *names[ALGOR_NUM]={ "aes-128 ige","aes-192 ige","aes-256 ige","ghash" }; static double results[ALGOR_NUM][SIZE_NUM]; static int lengths[SIZE_NUM]={16,64,256,1024,8*1024}; static const char *prime_names[PRIME_NUM]={ "prime trial division", "prime coprime" }; #ifndef OPENSSL_NO_RSA static double rsa_results[RSA_NUM][2]; #endif Loading Loading @@ -492,6 +498,11 @@ int MAIN(int argc, char **argv) #define D_GHASH 29 double d=0.0; long c[ALGOR_NUM][SIZE_NUM]; #define D_PRIME_TRIAL_DIVISION 0 #define D_PRIME_COPRIME 1 long prime_c[PRIME_NUM]; #define R_DSA_512 0 #define R_DSA_1024 1 #define R_DSA_2048 2 Loading Loading @@ -605,6 +616,7 @@ int MAIN(int argc, char **argv) long ecdh_c[EC_NUM][2]; #endif int prime_doit[PRIME_NUM]; int rsa_doit[RSA_NUM]; int dsa_doit[DSA_NUM]; #ifndef OPENSSL_NO_ECDSA Loading Loading @@ -997,6 +1009,9 @@ int MAIN(int argc, char **argv) } else #endif if (strcmp(*argv,"prime-trial-division") == 0) prime_doit[D_PRIME_TRIAL_DIVISION]=1; else if (strcmp(*argv,"prime-coprime") == 0) prime_doit[D_PRIME_COPRIME]=1; else { BIO_printf(bio_err,"Error: bad option or value\n"); BIO_printf(bio_err,"\n"); Loading Loading @@ -1123,6 +1138,7 @@ int MAIN(int argc, char **argv) !defined(OPENSSL_NO_AES) || !defined(OPENSSL_NO_CAMELLIA) BIO_printf(bio_err,"\n"); #endif BIO_printf(bio_err,"prime-trial-division prime-coprime\n"); BIO_printf(bio_err,"\n"); BIO_printf(bio_err,"Available options:\n"); Loading Loading @@ -1329,6 +1345,10 @@ int MAIN(int argc, char **argv) c[D_IGE_192_AES][i]=c[D_IGE_192_AES][i-1]*l0/l1; c[D_IGE_256_AES][i]=c[D_IGE_256_AES][i-1]*l0/l1; } prime_c[D_PRIME_TRIAL_DIVISION]=count; prime_c[D_PRIME_COPRIME]=count; #ifndef OPENSSL_NO_RSA rsa_c[R_RSA_512][0]=count/2000; rsa_c[R_RSA_512][1]=count/400; Loading Loading @@ -1996,6 +2016,33 @@ int MAIN(int argc, char **argv) } } for (j=0; j<PRIME_NUM; j++) { BIGNUM *rnd = BN_new(); BIGNUM *add = BN_new(); BN_CTX *ctx = BN_CTX_new(); if(prime_doit[j]) { BN_set_word(add, 2); prime_print_message(prime_names[j], prime_c[j]); Time_F(START); for (count=0, run=1; COND(prime_c[j]); count++) bn_probable_prime_dh(rnd,1024,add,NULL,ctx); d=Time_F(STOP); BIO_printf(bio_err, mr ? "+R:%ld:%s:%f\n" : "%ld %s's in %.2fs\n", count, prime_names[j], d); } BN_CTX_free(ctx); BN_free(add); BN_free(rnd); } RAND_pseudo_bytes(buf,36); #ifndef OPENSSL_NO_RSA for (j=0; j<RSA_NUM; j++) Loading Loading @@ -2586,6 +2633,23 @@ static void print_message(const char *s, long num, int length) #endif } static void prime_print_message(const char *s, long num) { #ifdef SIGALRM BIO_printf(bio_err,mr ? "+DT:%s:%d\n" : "Doing %s for %ds: ", s, SECONDS); (void)BIO_flush(bio_err); alarm(SECONDS); #else BIO_printf(bio_err,mr ? "+DN:%s:%ld\n" : "Doing %s %ld times: ", s, num); (void)BIO_flush(bio_err); #endif #ifdef LINT num=num; #endif } static void pkey_print_message(const char *str, const char *str2, long num, int bits, int tm) { Loading