ECDSA signature computation involves a random number. Remove the test trying to
authormiod <miod@openbsd.org>
Fri, 18 Apr 2014 20:23:42 +0000 (20:23 +0000)
committermiod <miod@openbsd.org>
Fri, 18 Apr 2014 20:23:42 +0000 (20:23 +0000)
force what RAND_bytes() will return and comparing it against known values -
I can't let you do this, Dave.

regress/lib/libcrypto/ecdsa/ecdsatest.c

index 8dd04e0..232fb9b 100644 (file)
 #include <openssl/rand.h>
 
 /* declaration of the test functions */
-int x9_62_tests(BIO *);
 int x9_62_test_internal(BIO *out, int nid, const char *r, const char *s);
 int test_builtin(BIO *);
 
-/* functions to change the RAND_METHOD */
-int change_rand(void);
-int restore_rand(void);
-int fbytes(unsigned char *buf, int num);
-
-RAND_METHOD    fake_rand;
-const RAND_METHOD *old_rand;
-
-int change_rand(void)
-       {
-       /* save old rand method */
-       if ((old_rand = RAND_get_rand_method()) == NULL)
-               return 0;
-
-       fake_rand.seed    = old_rand->seed;
-       fake_rand.cleanup = old_rand->cleanup;
-       fake_rand.add     = old_rand->add;
-       fake_rand.status  = old_rand->status;
-       /* use own random function */
-       fake_rand.bytes      = fbytes;
-       fake_rand.pseudorand = old_rand->bytes;
-       /* set new RAND_METHOD */
-       if (!RAND_set_rand_method(&fake_rand))
-               return 0;
-       return 1;
-       }
-
-int restore_rand(void)
-       {
-       if (!RAND_set_rand_method(old_rand))
-               return 0;
-       else
-               return 1;
-       }
-
-static int fbytes_counter = 0;
-static const char *numbers[8] = {
-       "651056770906015076056810763456358567190100156695615665659",
-       "6140507067065001063065065565667405560006161556565665656654",
-       "8763001015071075675010661307616710783570106710677817767166"
-       "71676178726717",
-       "7000000175690566466555057817571571075705015757757057795755"
-       "55657156756655",
-       "1275552191113212300012030439187146164646146646466749494799",
-       "1542725565216523985789236956265265265235675811949404040041",
-       "1456427555219115346513212300075341203043918714616464614664"
-       "64667494947990",
-       "1712787255652165239672857892369562652652652356758119494040"
-       "40041670216363"};
-
-int fbytes(unsigned char *buf, int num)
-       {
-       int     ret;
-       BIGNUM  *tmp = NULL;
-
-       if (fbytes_counter >= 8)
-               return 0;
-       tmp = BN_new();
-       if (!tmp)
-               return 0;
-       if (!BN_dec2bn(&tmp, numbers[fbytes_counter]))
-               {
-               BN_free(tmp);
-               return 0;
-               }
-       fbytes_counter ++;
-       if (num != BN_num_bytes(tmp) || !BN_bn2bin(tmp, buf))
-               ret = 0;
-       else 
-               ret = 1;
-       if (tmp)
-               BN_free(tmp);
-       return ret;
-       }
-
 /* some tests from the X9.62 draft */
 int x9_62_test_internal(BIO *out, int nid, const char *r_in, const char *s_in)
        {
@@ -229,45 +153,6 @@ x962_int_err:
        return ret;
        }
 
-int x9_62_tests(BIO *out)
-       {
-       int ret = 0;
-
-       BIO_printf(out, "some tests from X9.62:\n");
-
-       /* set own rand method */
-       if (!change_rand())
-               goto x962_err;
-
-       if (!x9_62_test_internal(out, NID_X9_62_prime192v1,
-               "3342403536405981729393488334694600415596881826869351677613",
-               "5735822328888155254683894997897571951568553642892029982342"))
-               goto x962_err;
-       if (!x9_62_test_internal(out, NID_X9_62_prime239v1,
-               "3086361431751678114926225473006680188549593787585317781474"
-               "62058306432176",
-               "3238135532097973577080787768312505059318910517550078427819"
-               "78505179448783"))
-               goto x962_err;
-#ifndef OPENSSL_NO_EC2M
-       if (!x9_62_test_internal(out, NID_X9_62_c2tnb191v1,
-               "87194383164871543355722284926904419997237591535066528048",
-               "308992691965804947361541664549085895292153777025772063598"))
-               goto x962_err;
-       if (!x9_62_test_internal(out, NID_X9_62_c2tnb239v1,
-               "2159633321041961198501834003903461262881815148684178964245"
-               "5876922391552",
-               "1970303740007316867383349976549972270528498040721988191026"
-               "49413465737174"))
-               goto x962_err;
-#endif
-       ret = 1;
-x962_err:
-       if (!restore_rand())
-               ret = 0;
-       return ret;
-       }
-
 int test_builtin(BIO *out)
        {
        EC_builtin_curve *curves = NULL;
@@ -534,7 +419,6 @@ int main(void)
        ERR_load_crypto_strings();
 
        /* the tests */
-       if (!x9_62_tests(out))  goto err;
        if (!test_builtin(out)) goto err;
        
        ret = 0;