From: Felix Laurie von Massenbach Date: Mon, 26 May 2014 20:57:25 +0000 (+0100) Subject: Add speed test for prime trial division. X-Git-Tag: master-post-reformat~758^2~16 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=b5419b81accb492dc0a34c1dce5e75d6e0493d6f;p=oweals%2Fopenssl.git Add speed test for prime trial division. --- diff --git a/apps/speed.c b/apps/speed.c index 92324186f4..83bec11ab0 100644 --- a/apps/speed.c +++ b/apps/speed.c @@ -191,6 +191,8 @@ #endif #include +#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 @@ -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); @@ -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 @@ -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 @@ -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 @@ -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 @@ -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"); @@ -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"); @@ -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; @@ -1995,6 +2015,33 @@ int MAIN(int argc, char **argv) print_result(D_EVP,j,count,d); } } + + for (j=0; j