diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/regress/lib/libcrypto/ecdsa/ecdsatest.c | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/src/regress/lib/libcrypto/ecdsa/ecdsatest.c b/src/regress/lib/libcrypto/ecdsa/ecdsatest.c index 8dd04e0fd3..232fb9b4d1 100644 --- a/src/regress/lib/libcrypto/ecdsa/ecdsatest.c +++ b/src/regress/lib/libcrypto/ecdsa/ecdsatest.c | |||
| @@ -85,85 +85,9 @@ | |||
| 85 | #include <openssl/rand.h> | 85 | #include <openssl/rand.h> |
| 86 | 86 | ||
| 87 | /* declaration of the test functions */ | 87 | /* declaration of the test functions */ |
| 88 | int x9_62_tests(BIO *); | ||
| 89 | int x9_62_test_internal(BIO *out, int nid, const char *r, const char *s); | 88 | int x9_62_test_internal(BIO *out, int nid, const char *r, const char *s); |
| 90 | int test_builtin(BIO *); | 89 | int test_builtin(BIO *); |
| 91 | 90 | ||
| 92 | /* functions to change the RAND_METHOD */ | ||
| 93 | int change_rand(void); | ||
| 94 | int restore_rand(void); | ||
| 95 | int fbytes(unsigned char *buf, int num); | ||
| 96 | |||
| 97 | RAND_METHOD fake_rand; | ||
| 98 | const RAND_METHOD *old_rand; | ||
| 99 | |||
| 100 | int change_rand(void) | ||
| 101 | { | ||
| 102 | /* save old rand method */ | ||
| 103 | if ((old_rand = RAND_get_rand_method()) == NULL) | ||
| 104 | return 0; | ||
| 105 | |||
| 106 | fake_rand.seed = old_rand->seed; | ||
| 107 | fake_rand.cleanup = old_rand->cleanup; | ||
| 108 | fake_rand.add = old_rand->add; | ||
| 109 | fake_rand.status = old_rand->status; | ||
| 110 | /* use own random function */ | ||
| 111 | fake_rand.bytes = fbytes; | ||
| 112 | fake_rand.pseudorand = old_rand->bytes; | ||
| 113 | /* set new RAND_METHOD */ | ||
| 114 | if (!RAND_set_rand_method(&fake_rand)) | ||
| 115 | return 0; | ||
| 116 | return 1; | ||
| 117 | } | ||
| 118 | |||
| 119 | int restore_rand(void) | ||
| 120 | { | ||
| 121 | if (!RAND_set_rand_method(old_rand)) | ||
| 122 | return 0; | ||
| 123 | else | ||
| 124 | return 1; | ||
| 125 | } | ||
| 126 | |||
| 127 | static int fbytes_counter = 0; | ||
| 128 | static const char *numbers[8] = { | ||
| 129 | "651056770906015076056810763456358567190100156695615665659", | ||
| 130 | "6140507067065001063065065565667405560006161556565665656654", | ||
| 131 | "8763001015071075675010661307616710783570106710677817767166" | ||
| 132 | "71676178726717", | ||
| 133 | "7000000175690566466555057817571571075705015757757057795755" | ||
| 134 | "55657156756655", | ||
| 135 | "1275552191113212300012030439187146164646146646466749494799", | ||
| 136 | "1542725565216523985789236956265265265235675811949404040041", | ||
| 137 | "1456427555219115346513212300075341203043918714616464614664" | ||
| 138 | "64667494947990", | ||
| 139 | "1712787255652165239672857892369562652652652356758119494040" | ||
| 140 | "40041670216363"}; | ||
| 141 | |||
| 142 | int fbytes(unsigned char *buf, int num) | ||
| 143 | { | ||
| 144 | int ret; | ||
| 145 | BIGNUM *tmp = NULL; | ||
| 146 | |||
| 147 | if (fbytes_counter >= 8) | ||
| 148 | return 0; | ||
| 149 | tmp = BN_new(); | ||
| 150 | if (!tmp) | ||
| 151 | return 0; | ||
| 152 | if (!BN_dec2bn(&tmp, numbers[fbytes_counter])) | ||
| 153 | { | ||
| 154 | BN_free(tmp); | ||
| 155 | return 0; | ||
| 156 | } | ||
| 157 | fbytes_counter ++; | ||
| 158 | if (num != BN_num_bytes(tmp) || !BN_bn2bin(tmp, buf)) | ||
| 159 | ret = 0; | ||
| 160 | else | ||
| 161 | ret = 1; | ||
| 162 | if (tmp) | ||
| 163 | BN_free(tmp); | ||
| 164 | return ret; | ||
| 165 | } | ||
| 166 | |||
| 167 | /* some tests from the X9.62 draft */ | 91 | /* some tests from the X9.62 draft */ |
| 168 | int x9_62_test_internal(BIO *out, int nid, const char *r_in, const char *s_in) | 92 | int x9_62_test_internal(BIO *out, int nid, const char *r_in, const char *s_in) |
| 169 | { | 93 | { |
| @@ -229,45 +153,6 @@ x962_int_err: | |||
| 229 | return ret; | 153 | return ret; |
| 230 | } | 154 | } |
| 231 | 155 | ||
| 232 | int x9_62_tests(BIO *out) | ||
| 233 | { | ||
| 234 | int ret = 0; | ||
| 235 | |||
| 236 | BIO_printf(out, "some tests from X9.62:\n"); | ||
| 237 | |||
| 238 | /* set own rand method */ | ||
| 239 | if (!change_rand()) | ||
| 240 | goto x962_err; | ||
| 241 | |||
| 242 | if (!x9_62_test_internal(out, NID_X9_62_prime192v1, | ||
| 243 | "3342403536405981729393488334694600415596881826869351677613", | ||
| 244 | "5735822328888155254683894997897571951568553642892029982342")) | ||
| 245 | goto x962_err; | ||
| 246 | if (!x9_62_test_internal(out, NID_X9_62_prime239v1, | ||
| 247 | "3086361431751678114926225473006680188549593787585317781474" | ||
| 248 | "62058306432176", | ||
| 249 | "3238135532097973577080787768312505059318910517550078427819" | ||
| 250 | "78505179448783")) | ||
| 251 | goto x962_err; | ||
| 252 | #ifndef OPENSSL_NO_EC2M | ||
| 253 | if (!x9_62_test_internal(out, NID_X9_62_c2tnb191v1, | ||
| 254 | "87194383164871543355722284926904419997237591535066528048", | ||
| 255 | "308992691965804947361541664549085895292153777025772063598")) | ||
| 256 | goto x962_err; | ||
| 257 | if (!x9_62_test_internal(out, NID_X9_62_c2tnb239v1, | ||
| 258 | "2159633321041961198501834003903461262881815148684178964245" | ||
| 259 | "5876922391552", | ||
| 260 | "1970303740007316867383349976549972270528498040721988191026" | ||
| 261 | "49413465737174")) | ||
| 262 | goto x962_err; | ||
| 263 | #endif | ||
| 264 | ret = 1; | ||
| 265 | x962_err: | ||
| 266 | if (!restore_rand()) | ||
| 267 | ret = 0; | ||
| 268 | return ret; | ||
| 269 | } | ||
| 270 | |||
| 271 | int test_builtin(BIO *out) | 156 | int test_builtin(BIO *out) |
| 272 | { | 157 | { |
| 273 | EC_builtin_curve *curves = NULL; | 158 | EC_builtin_curve *curves = NULL; |
| @@ -534,7 +419,6 @@ int main(void) | |||
| 534 | ERR_load_crypto_strings(); | 419 | ERR_load_crypto_strings(); |
| 535 | 420 | ||
| 536 | /* the tests */ | 421 | /* the tests */ |
| 537 | if (!x9_62_tests(out)) goto err; | ||
| 538 | if (!test_builtin(out)) goto err; | 422 | if (!test_builtin(out)) goto err; |
| 539 | 423 | ||
| 540 | ret = 0; | 424 | ret = 0; |
