Dammit, my 0.9.8 backport was too hasty -- and should have been tested
under Windows, not just Linux. This fixes a couple of typos in it.
--
dwmw2
Index: apps/speed.c
===================================================================
RCS file: /home/dwmw2/openssl-cvs/openssl/apps/speed.c,v
retrieving revision 1.126.2.13
diff -u -p -r1.126.2.13 speed.c
--- apps/speed.c 10 Aug 2009 15:52:33 -0000 1.126.2.13
+++ apps/speed.c 9 Nov 2009 15:00:25 -0000
@@ -274,7 +274,7 @@ static double Time_F(int s);
static void print_message(const char *s,long num,int length);
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);
+static void print_result(int alg,int run_no,unsigned long count,double time_used);
#ifndef NO_FORK
static int do_multi(int multi);
#endif
@@ -495,7 +495,7 @@ int MAIN(int argc, char **argv)
#endif
unsigned char *buf=NULL,*buf2=NULL;
int mret=1;
- long count=0,save_count=0;
+ unsigned long count=0,save_count=0;
int i,j,k;
#if !defined(OPENSSL_NO_RSA) || !defined(OPENSSL_NO_DSA)
long rsa_count;
@@ -626,7 +626,7 @@ int MAIN(int argc, char **argv)
#define D_IGE_192_AES 26
#define D_IGE_256_AES 27
double d=0.0;
- long c[ALGOR_NUM][SIZE_NUM];
+ unsigned long c[ALGOR_NUM][SIZE_NUM];
#define R_DSA_512 0
#define R_DSA_1024 1
#define R_DSA_2048 2
@@ -654,7 +654,7 @@ int MAIN(int argc, char **argv)
#ifndef OPENSSL_NO_RSA
RSA *rsa_key[RSA_NUM];
- long rsa_c[RSA_NUM][2];
+ unsigned long rsa_c[RSA_NUM][2];
static unsigned int rsa_bits[RSA_NUM]={512,1024,2048,4096};
static unsigned char *rsa_data[RSA_NUM]=
{test512,test1024,test2048,test4096};
@@ -664,7 +664,7 @@ int MAIN(int argc, char **argv)
#endif
#ifndef OPENSSL_NO_DSA
DSA *dsa_key[DSA_NUM];
- long dsa_c[DSA_NUM][2];
+ unsigned long dsa_c[DSA_NUM][2];
static unsigned int dsa_bits[DSA_NUM]={512,1024,2048};
#endif
#ifndef OPENSSL_NO_EC
@@ -728,7 +728,7 @@ int MAIN(int argc, char **argv)
unsigned char ecdsasig[256];
unsigned int ecdsasiglen;
EC_KEY *ecdsa[EC_NUM];
- long ecdsa_c[EC_NUM][2];
+ unsigned long ecdsa_c[EC_NUM][2];
#endif
#ifndef OPENSSL_NO_ECDH
@@ -737,7 +737,7 @@ int MAIN(int argc, char **argv)
int secret_size_a, secret_size_b;
int ecdh_checks = 0;
int secret_idx = 0;
- long ecdh_c[EC_NUM][2];
+ unsigned long ecdh_c[EC_NUM][2];
#endif
int rsa_doit[RSA_NUM];
@@ -1413,40 +1413,38 @@ int MAIN(int argc, char **argv)
for (i=1; i<SIZE_NUM; i++)
{
- c[D_MD2][i]=c[D_MD2][0]*4*lengths[0]/lengths[i];
- c[D_MDC2][i]=c[D_MDC2][0]*4*lengths[0]/lengths[i];
- c[D_MD4][i]=c[D_MD4][0]*4*lengths[0]/lengths[i];
- c[D_MD5][i]=c[D_MD5][0]*4*lengths[0]/lengths[i];
- 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];
+ c[D_MD2][i]=c[D_MD2][0]*4/(lengths[i]/lengths[0]);
+ c[D_MDC2][i]=c[D_MDC2][0]*4/(lengths[i]/lengths[0]);
+ c[D_MD4][i]=c[D_MD4][0]*4/(lengths[i]/lengths[0]);
+ c[D_MD5][i]=c[D_MD5][0]*4/(lengths[i]/lengths[0]);
+ c[D_HMAC][i]=c[D_HMAC][0]*4/(lengths[i]/lengths[0]);
+ c[D_SHA1][i]=c[D_SHA1][0]*4/(lengths[i]/lengths[0]);
+ c[D_RMD160][i]=c[D_RMD160][0]*4/(lengths[i]/lengths[0]);
+ c[D_SHA256][i]=c[D_SHA256][0]*4/(lengths[i]/lengths[0]);
+ c[D_SHA512][i]=c[D_SHA512][0]*4/(lengths[i]/lengths[0]);
}
for (i=1; i<SIZE_NUM; i++)
{
- long l0,l1;
+ long div = lengths[i] / lengths[i-1];
- l0=(long)lengths[i-1];
- l1=(long)lengths[i];
- c[D_RC4][i]=c[D_RC4][i-1]*l0/l1;
- c[D_CBC_DES][i]=c[D_CBC_DES][i-1]*l0/l1;
- c[D_EDE3_DES][i]=c[D_EDE3_DES][i-1]*l0/l1;
- c[D_CBC_IDEA][i]=c[D_CBC_IDEA][i-1]*l0/l1;
- c[D_CBC_SEED][i]=c[D_CBC_SEED][i-1]*l0/l1;
- c[D_CBC_RC2][i]=c[D_CBC_RC2][i-1]*l0/l1;
- c[D_CBC_RC5][i]=c[D_CBC_RC5][i-1]*l0/l1;
- c[D_CBC_BF][i]=c[D_CBC_BF][i-1]*l0/l1;
- c[D_CBC_CAST][i]=c[D_CBC_CAST][i-1]*l0/l1;
- c[D_CBC_128_AES][i]=c[D_CBC_128_AES][i-1]*l0/l1;
- c[D_CBC_192_AES][i]=c[D_CBC_192_AES][i-1]*l0/l1;
- c[D_CBC_256_AES][i]=c[D_CBC_256_AES][i-1]*l0/l1;
- c[D_CBC_128_CML][i]=c[D_CBC_128_CML][i-1]*l0/l1;
- c[D_CBC_192_CML][i]=c[D_CBC_192_CML][i-1]*l0/l1;
- c[D_CBC_256_CML][i]=c[D_CBC_256_CML][i-1]*l0/l1;
- c[D_IGE_128_AES][i]=c[D_IGE_128_AES][i-1]*l0/l1;
- 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;
+ c[D_RC4][i]=c[D_RC4][i-1]/div;
+ c[D_CBC_DES][i]=c[D_CBC_DES][i-1]/div;
+ c[D_EDE3_DES][i]=c[D_EDE3_DES][i-1]/div;
+ c[D_CBC_IDEA][i]=c[D_CBC_IDEA][i-1]/div;
+ c[D_CBC_SEED][i]=c[D_CBC_SEED][i-1]/div;
+ c[D_CBC_RC2][i]=c[D_CBC_RC2][i-1]/div;
+ c[D_CBC_RC5][i]=c[D_CBC_RC5][i-1]/div;
+ c[D_CBC_BF][i]=c[D_CBC_BF][i-1]/div;
+ c[D_CBC_CAST][i]=c[D_CBC_CAST][i-1]/div;
+ c[D_CBC_128_AES][i]=c[D_CBC_128_AES][i-1]/div;
+ c[D_CBC_192_AES][i]=c[D_CBC_192_AES][i-1]/div;
+ c[D_CBC_256_AES][i]=c[D_CBC_256_AES][i-1]/div;
+ c[D_CBC_128_CML][i]=c[D_CBC_128_CML][i-1]/div;
+ c[D_CBC_192_CML][i]=c[D_CBC_192_CML][i-1]/div;
+ c[D_CBC_256_CML][i]=c[D_CBC_256_CML][i-1]/div;
+ c[D_IGE_128_AES][i]=c[D_IGE_128_AES][i-1]/div;
+ c[D_IGE_192_AES][i]=c[D_IGE_192_AES][i-1]/div;
+ c[D_IGE_256_AES][i]=c[D_IGE_256_AES][i-1]/div;
}
#ifndef OPENSSL_NO_RSA
rsa_c[R_RSA_512][0]=count/2000;
@@ -2714,10 +2712,10 @@ static void pkey_print_message(const cha
#endif
}
-static void print_result(int alg,int run_no,int count,double time_used)
+static void print_result(int alg,int run_no,unsigned long count,double time_used)
{
- BIO_printf(bio_err,mr ? "+R:%d:%s:%f\n"
- : "%d %s's in %.2fs\n",count,names[alg],time_used);
+ BIO_printf(bio_err,mr ? "+R:%lu:%s:%f\n"
+ : "%lu %s's in %.2fs\n",count,names[alg],time_used);
results[alg][run_no]=((double)count)/time_used*lengths[run_no];
}