diff options
author | tb <> | 2023-03-29 06:50:51 +0000 |
---|---|---|
committer | tb <> | 2023-03-29 06:50:51 +0000 |
commit | f926f76764e9ce8a5fd4c1f488b4fb531649ad56 (patch) | |
tree | 66d4846bfe209add5310d0961eb91cde7111ddf9 /src | |
parent | 5861f0b4f81ef55b54c057d68bc0c3e4f6446b9c (diff) | |
download | openbsd-f926f76764e9ce8a5fd4c1f488b4fb531649ad56.tar.gz openbsd-f926f76764e9ce8a5fd4c1f488b4fb531649ad56.tar.bz2 openbsd-f926f76764e9ce8a5fd4c1f488b4fb531649ad56.zip |
Remove one of those ugly function tables
The only reason there were two of them was to avoid some pointless
comparisons. The gain is not worth the price.
Diffstat (limited to 'src')
-rw-r--r-- | src/regress/lib/libcrypto/bn/bn_mod_exp.c | 43 |
1 files changed, 9 insertions, 34 deletions
diff --git a/src/regress/lib/libcrypto/bn/bn_mod_exp.c b/src/regress/lib/libcrypto/bn/bn_mod_exp.c index 38e77f3ad9..0d3767b07e 100644 --- a/src/regress/lib/libcrypto/bn/bn_mod_exp.c +++ b/src/regress/lib/libcrypto/bn/bn_mod_exp.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_mod_exp.c,v 1.28 2023/03/29 06:32:53 tb Exp $ */ | 1 | /* $OpenBSD: bn_mod_exp.c,v 1.29 2023/03/29 06:50:51 tb Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2022,2023 Theo Buehler <tb@openbsd.org> | 4 | * Copyright (c) 2022,2023 Theo Buehler <tb@openbsd.org> |
@@ -48,13 +48,13 @@ bn_mod_exp2_mont_second(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, | |||
48 | return BN_mod_exp2_mont(r, one, one, a, p, m, ctx, mctx); | 48 | return BN_mod_exp2_mont(r, one, one, a, p, m, ctx, mctx); |
49 | } | 49 | } |
50 | 50 | ||
51 | static const struct mod_exp_zero_test { | 51 | static const struct mod_exp_test { |
52 | const char *name; | 52 | const char *name; |
53 | int (*mod_exp_fn)(BIGNUM *, const BIGNUM *, const BIGNUM *, | 53 | int (*mod_exp_fn)(BIGNUM *, const BIGNUM *, const BIGNUM *, |
54 | const BIGNUM *, BN_CTX *); | 54 | const BIGNUM *, BN_CTX *); |
55 | int (*mod_exp_mont_fn)(BIGNUM *, const BIGNUM *, const BIGNUM *, | 55 | int (*mod_exp_mont_fn)(BIGNUM *, const BIGNUM *, const BIGNUM *, |
56 | const BIGNUM *, BN_CTX *, BN_MONT_CTX *); | 56 | const BIGNUM *, BN_CTX *, BN_MONT_CTX *); |
57 | } mod_exp_zero_test_data[] = { | 57 | } mod_exp_fn[] = { |
58 | INIT_MOD_EXP_FN(BN_mod_exp), | 58 | INIT_MOD_EXP_FN(BN_mod_exp), |
59 | INIT_MOD_EXP_FN(BN_mod_exp_ct), | 59 | INIT_MOD_EXP_FN(BN_mod_exp_ct), |
60 | INIT_MOD_EXP_FN(BN_mod_exp_nonct), | 60 | INIT_MOD_EXP_FN(BN_mod_exp_nonct), |
@@ -68,8 +68,7 @@ static const struct mod_exp_zero_test { | |||
68 | INIT_MOD_EXP_MONT_FN(bn_mod_exp2_mont_second), | 68 | INIT_MOD_EXP_MONT_FN(bn_mod_exp2_mont_second), |
69 | }; | 69 | }; |
70 | 70 | ||
71 | #define N_MOD_EXP_ZERO_TESTS \ | 71 | #define N_MOD_EXP_FN (sizeof(mod_exp_fn) / sizeof(mod_exp_fn[0])) |
72 | (sizeof(mod_exp_zero_test_data) / sizeof(mod_exp_zero_test_data[0])) | ||
73 | 72 | ||
74 | static void | 73 | static void |
75 | print_failure(const BIGNUM *got, const BIGNUM *a, const char *name) | 74 | print_failure(const BIGNUM *got, const BIGNUM *a, const char *name) |
@@ -82,8 +81,7 @@ print_failure(const BIGNUM *got, const BIGNUM *a, const char *name) | |||
82 | } | 81 | } |
83 | 82 | ||
84 | static int | 83 | static int |
85 | bn_mod_exp_zero_test(const struct mod_exp_zero_test *test, BN_CTX *ctx, | 84 | bn_mod_exp_zero_test(const struct mod_exp_test *test, BN_CTX *ctx, int use_random) |
86 | int use_random) | ||
87 | { | 85 | { |
88 | const BIGNUM *one; | 86 | const BIGNUM *one; |
89 | BIGNUM *a, *p, *got; | 87 | BIGNUM *a, *p, *got; |
@@ -182,14 +180,12 @@ run_bn_mod_exp_zero_tests(void) | |||
182 | errx(1, "BN_CTX_new"); | 180 | errx(1, "BN_CTX_new"); |
183 | 181 | ||
184 | use_random = 1; | 182 | use_random = 1; |
185 | for (i = 0; i < N_MOD_EXP_ZERO_TESTS; i++) | 183 | for (i = 0; i < N_MOD_EXP_FN; i++) |
186 | failed |= bn_mod_exp_zero_test(&mod_exp_zero_test_data[i], ctx, | 184 | failed |= bn_mod_exp_zero_test(&mod_exp_fn[i], ctx, use_random); |
187 | use_random); | ||
188 | 185 | ||
189 | use_random = 0; | 186 | use_random = 0; |
190 | for (i = 0; i < N_MOD_EXP_ZERO_TESTS; i++) | 187 | for (i = 0; i < N_MOD_EXP_FN; i++) |
191 | failed |= bn_mod_exp_zero_test(&mod_exp_zero_test_data[i], ctx, | 188 | failed |= bn_mod_exp_zero_test(&mod_exp_fn[i], ctx, use_random); |
192 | use_random); | ||
193 | 189 | ||
194 | failed |= bn_mod_exp_zero_word_test(ctx); | 190 | failed |= bn_mod_exp_zero_word_test(ctx); |
195 | 191 | ||
@@ -198,27 +194,6 @@ run_bn_mod_exp_zero_tests(void) | |||
198 | return failed; | 194 | return failed; |
199 | } | 195 | } |
200 | 196 | ||
201 | static const struct mod_exp_test { | ||
202 | const char *name; | ||
203 | int (*mod_exp_fn)(BIGNUM *, const BIGNUM *, const BIGNUM *, | ||
204 | const BIGNUM *, BN_CTX *); | ||
205 | int (*mod_exp_mont_fn)(BIGNUM *, const BIGNUM *, const BIGNUM *, | ||
206 | const BIGNUM *, BN_CTX *, BN_MONT_CTX *); | ||
207 | } mod_exp_fn[] = { | ||
208 | INIT_MOD_EXP_FN(BN_mod_exp), | ||
209 | INIT_MOD_EXP_FN(BN_mod_exp_ct), | ||
210 | INIT_MOD_EXP_FN(BN_mod_exp_nonct), | ||
211 | INIT_MOD_EXP_FN(BN_mod_exp_recp), | ||
212 | INIT_MOD_EXP_MONT_FN(BN_mod_exp_mont), | ||
213 | INIT_MOD_EXP_MONT_FN(BN_mod_exp_mont_ct), | ||
214 | INIT_MOD_EXP_MONT_FN(BN_mod_exp_mont_consttime), | ||
215 | INIT_MOD_EXP_MONT_FN(BN_mod_exp_mont_nonct), | ||
216 | INIT_MOD_EXP_MONT_FN(bn_mod_exp2_mont_first), | ||
217 | INIT_MOD_EXP_MONT_FN(bn_mod_exp2_mont_second), | ||
218 | }; | ||
219 | |||
220 | #define N_MOD_EXP_FN (sizeof(mod_exp_fn) / sizeof(mod_exp_fn[0])) | ||
221 | |||
222 | static int | 197 | static int |
223 | generate_bn(BIGNUM *bn, int avg_bits, int deviate, int force_odd) | 198 | generate_bn(BIGNUM *bn, int avg_bits, int deviate, int force_odd) |
224 | { | 199 | { |