give EC_GROUP_new_by_nid a more meanigful name:
[openssl.git] / apps / speed.c
index a3b0833b69006071d0b6ef87007400f80a266c43..bd5b217b57799835710024dbb403ee93ca015105 100644 (file)
@@ -262,7 +262,8 @@ static int usertime=1;
 
 static double Time_F(int s);
 static void print_message(const char *s,long num,int length);
-static void pkey_print_message(char *str,char *str2,long num,int bits,int sec);
+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);
 #ifdef HAVE_FORK
 static int do_multi(int multi);
@@ -448,11 +449,13 @@ static double Time_F(int s)
 
 
 static const int KDF1_SHA1_len = 20;
-static void *KDF1_SHA1(void *in, size_t inlen, void *out, size_t outlen)
+static void *KDF1_SHA1(const void *in, size_t inlen, void *out, size_t *outlen)
        {
 #ifndef OPENSSL_NO_SHA
-       if (outlen != SHA_DIGEST_LENGTH)
+       if (*outlen < SHA_DIGEST_LENGTH)
                return NULL;
+       else
+               *outlen = SHA_DIGEST_LENGTH;
        return SHA1(in, inlen, out);
 #else
        return NULL;
@@ -638,7 +641,7 @@ int MAIN(int argc, char **argv)
        NID_sect409r1,
        NID_sect571r1
        }; 
-       static char * test_curves_names[EC_NUM] = 
+       static const char * test_curves_names[EC_NUM] = 
        {
        /* Prime Curves */
        "secp160r1",
@@ -669,19 +672,19 @@ int MAIN(int argc, char **argv)
 #endif
 
 #ifndef OPENSSL_NO_ECDSA
-        unsigned char ecdsasig[256];
-        unsigned int ecdsasiglen;
-        EC_KEY *ecdsa[EC_NUM];
-        long ecdsa_c[EC_NUM][2];
+       unsigned char ecdsasig[256];
+       unsigned int ecdsasiglen;
+       EC_KEY *ecdsa[EC_NUM];
+       long ecdsa_c[EC_NUM][2];
 #endif
 
 #ifndef OPENSSL_NO_ECDH
-        EC_KEY *ecdh_a[EC_NUM], *ecdh_b[EC_NUM];
-        unsigned char secret_a[MAX_ECDH_SIZE], secret_b[MAX_ECDH_SIZE];
-        int secret_size_a, secret_size_b;
-        int ecdh_checks = 0;
-        int secret_idx = 0;
-        long ecdh_c[EC_NUM][2];
+       EC_KEY *ecdh_a[EC_NUM], *ecdh_b[EC_NUM];
+       unsigned char secret_a[MAX_ECDH_SIZE], secret_b[MAX_ECDH_SIZE];
+       int secret_size_a, secret_size_b;
+       int ecdh_checks = 0;
+       int secret_idx = 0;
+       long ecdh_c[EC_NUM][2];
 #endif
 
        int rsa_doit[RSA_NUM];
@@ -994,6 +997,7 @@ int MAIN(int argc, char **argv)
 #endif
 #ifndef OPENSSL_NO_ECDSA
                     if (strcmp(*argv,"ecdsap160") == 0) ecdsa_doit[R_EC_P160]=2;
+               else if (strcmp(*argv,"ecdsap192") == 0) ecdsa_doit[R_EC_P192]=2;
                else if (strcmp(*argv,"ecdsap224") == 0) ecdsa_doit[R_EC_P224]=2;
                else if (strcmp(*argv,"ecdsap256") == 0) ecdsa_doit[R_EC_P256]=2;
                else if (strcmp(*argv,"ecdsap384") == 0) ecdsa_doit[R_EC_P384]=2;
@@ -1017,6 +1021,7 @@ int MAIN(int argc, char **argv)
 #endif
 #ifndef OPENSSL_NO_ECDH
                     if (strcmp(*argv,"ecdhp160") == 0) ecdh_doit[R_EC_P160]=2;
+               else if (strcmp(*argv,"ecdhp192") == 0) ecdh_doit[R_EC_P192]=2;
                else if (strcmp(*argv,"ecdhp224") == 0) ecdh_doit[R_EC_P224]=2;
                else if (strcmp(*argv,"ecdhp256") == 0) ecdh_doit[R_EC_P256]=2;
                else if (strcmp(*argv,"ecdhp384") == 0) ecdh_doit[R_EC_P384]=2;
@@ -1106,13 +1111,13 @@ int MAIN(int argc, char **argv)
                        BIO_printf(bio_err,"dsa512   dsa1024  dsa2048\n");
 #endif
 #ifndef OPENSSL_NO_ECDSA
-                       BIO_printf(bio_err,"ecdsap160 ecdsap224 ecdsap256 ecdsap384 ecdsap521\n");
+                       BIO_printf(bio_err,"ecdsap160 ecdsap192 ecdsap224 ecdsap256 ecdsap384 ecdsap521\n");
                        BIO_printf(bio_err,"ecdsak163 ecdsak233 ecdsak283 ecdsak409 ecdsak571\n");
                        BIO_printf(bio_err,"ecdsab163 ecdsab233 ecdsab283 ecdsab409 ecdsab571\n");
                        BIO_printf(bio_err,"ecdsa\n");
 #endif
 #ifndef OPENSSL_NO_ECDH
-                       BIO_printf(bio_err,"ecdhp160  ecdhp224  ecdhp256  ecdhp384  ecdhp521\n");
+                       BIO_printf(bio_err,"ecdhp160  ecdhp192  ecdhp224  ecdhp256  ecdhp384  ecdhp521\n");
                        BIO_printf(bio_err,"ecdhk163  ecdhk233  ecdhk283  ecdhk409  ecdhk571\n");
                        BIO_printf(bio_err,"ecdhb163  ecdhb233  ecdhb283  ecdhb409  ecdhb571\n");
                        BIO_printf(bio_err,"ecdh\n");
@@ -1258,10 +1263,10 @@ int MAIN(int argc, char **argv)
        BIO_printf(bio_err,"First we calculate the approximate speed ...\n");
        count=10;
        do      {
-               long i;
+               long it;
                count*=2;
                Time_F(START);
-               for (i=count; i; i--)
+               for (it=count; it; it--)
                        DES_ecb_encrypt(buf_as_des_cblock,buf_as_des_cblock,
                                &sch,DES_ENCRYPT);
                d=Time_F(STOP);
@@ -1361,7 +1366,7 @@ int MAIN(int argc, char **argv)
 #ifndef OPENSSL_NO_ECDSA
        ecdsa_c[R_EC_P160][0]=count/1000;
        ecdsa_c[R_EC_P160][1]=count/1000/2;
-       for (i=R_EC_P224; i<=R_EC_P521; i++)
+       for (i=R_EC_P192; i<=R_EC_P521; i++)
                {
                ecdsa_c[i][0]=ecdsa_c[i-1][0]/2;
                ecdsa_c[i][1]=ecdsa_c[i-1][1]/2;
@@ -1415,7 +1420,7 @@ int MAIN(int argc, char **argv)
 #ifndef OPENSSL_NO_ECDH
        ecdh_c[R_EC_P160][0]=count/1000;
        ecdh_c[R_EC_P160][1]=count/1000;
-       for (i=R_EC_P224; i<=R_EC_P521; i++)
+       for (i=R_EC_P192; i<=R_EC_P521; i++)
                {
                ecdh_c[i][0]=ecdh_c[i-1][0]/2;
                ecdh_c[i][1]=ecdh_c[i-1][1]/2;
@@ -1576,6 +1581,7 @@ int MAIN(int argc, char **argv)
                        }
                }
 
+#ifndef OPENSSL_NO_SHA256
        if (doit[D_SHA256])
                {
                for (j=0; j<SIZE_NUM; j++)
@@ -1588,7 +1594,9 @@ int MAIN(int argc, char **argv)
                        print_result(D_SHA256,j,count,d);
                        }
                }
+#endif
 
+#ifndef OPENSSL_NO_SHA512
        if (doit[D_SHA512])
                {
                for (j=0; j<SIZE_NUM; j++)
@@ -1602,6 +1610,8 @@ int MAIN(int argc, char **argv)
                        }
                }
 #endif
+
+#endif
 #ifndef OPENSSL_NO_RIPEMD
        if (doit[D_RMD160])
                {
@@ -2039,7 +2049,7 @@ int MAIN(int argc, char **argv)
                        } 
                else 
                        {
-                       ecdsa[j]->group = EC_GROUP_new_by_nid(test_curves[j]);
+                       ecdsa[j]->group = EC_GROUP_new_by_curve_name(test_curves[j]);
                        /* Could not obtain group information */
                        if (ecdsa[j]->group == NULL) 
                                {
@@ -2084,13 +2094,13 @@ int MAIN(int argc, char **argv)
                                                        break;
                                                        }
                                                }
-                                               d=Time_F(STOP);
+                                       d=Time_F(STOP);
 
-                                               BIO_printf(bio_err, mr ? "+R5:%ld:%d:%.2f\n" :
+                                       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;
+                                       ecdsa_results[j][0]=d/(double)count;
+                                       rsa_count=count;
                                        }
 
                                /* Perform ECDSA verification test */
@@ -2120,11 +2130,11 @@ int MAIN(int argc, char **argv)
                                                        break;
                                                        }
                                                }
-                                               d=Time_F(STOP);
-                                               BIO_printf(bio_err, mr? "+R6:%ld:%d:%.2f\n"
+                                       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;
+                                       count, test_curves_bits[j], d);
+                                       ecdsa_results[j][1]=d/(double)count;
                                        }
 
                                if (rsa_count <= 1) 
@@ -2158,7 +2168,7 @@ int MAIN(int argc, char **argv)
                        }
                else
                        {
-                       ecdh_a[j]->group = EC_GROUP_new_by_nid(test_curves[j]);
+                       ecdh_a[j]->group = EC_GROUP_new_by_curve_name(test_curves[j]);
                        if (ecdh_a[j]->group == NULL)
                                {
                                BIO_printf(bio_err,"ECDH failure.\n");
@@ -2183,7 +2193,7 @@ int MAIN(int argc, char **argv)
                                         * otherwise, use result (see section 4.8 of draft-ietf-tls-ecc-03.txt).
                                         */
                                        int field_size, outlen;
-                                       void *(*kdf)(void *in, size_t inlen, void *out, size_t xoutlen);
+                                       void *(*kdf)(const void *in, size_t inlen, void *out, size_t *xoutlen);
                                        field_size = EC_GROUP_get_degree(ecdh_a[j]->group);
                                        if (field_size <= 24 * 8)
                                                {
@@ -2481,8 +2491,8 @@ static void print_message(const char *s, long num, int length)
 #endif
        }
 
-static void pkey_print_message(char *str, char *str2, long num, int bits,
-            int tm)
+static void pkey_print_message(const char *str, const char *str2, long num,
+       int bits, int tm)
        {
 #ifdef SIGALRM
        BIO_printf(bio_err,mr ? "+DTP:%d:%s:%s:%d\n"