summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/bn/bn_prime.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lib/libcrypto/bn/bn_prime.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/lib/libcrypto/bn/bn_prime.c b/src/lib/libcrypto/bn/bn_prime.c
index c2fd0fc2e9..b8f0eb69ce 100644
--- a/src/lib/libcrypto/bn/bn_prime.c
+++ b/src/lib/libcrypto/bn/bn_prime.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: bn_prime.c,v 1.31 2023/04/25 19:57:59 tb Exp $ */ 1/* $OpenBSD: bn_prime.c,v 1.32 2023/05/10 12:21:55 tb Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -195,12 +195,12 @@ BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add,
195 goto err; 195 goto err;
196 196
197 if (!safe) { 197 if (!safe) {
198 if (!bn_is_prime_bpsw(&is_prime, ret, ctx)) 198 if (!bn_is_prime_bpsw(&is_prime, ret, ctx, 1))
199 goto err; 199 goto err;
200 if (!is_prime) 200 if (!is_prime)
201 goto loop; 201 goto loop;
202 } else { 202 } else {
203 if (!bn_is_prime_bpsw(&is_prime, ret, ctx)) 203 if (!bn_is_prime_bpsw(&is_prime, ret, ctx, 1))
204 goto err; 204 goto err;
205 if (!is_prime) 205 if (!is_prime)
206 goto loop; 206 goto loop;
@@ -213,7 +213,7 @@ BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add,
213 if (!BN_rshift1(p, ret)) 213 if (!BN_rshift1(p, ret))
214 goto err; 214 goto err;
215 215
216 if (!bn_is_prime_bpsw(&is_prime, p, ctx)) 216 if (!bn_is_prime_bpsw(&is_prime, p, ctx, 1))
217 goto err; 217 goto err;
218 if (!is_prime) 218 if (!is_prime)
219 goto loop; 219 goto loop;
@@ -243,8 +243,14 @@ BN_is_prime_fasttest_ex(const BIGNUM *a, int checks, BN_CTX *ctx_passed,
243{ 243{
244 int is_prime; 244 int is_prime;
245 245
246 if (checks < 0)
247 return -1;
248
249 if (checks == BN_prime_checks)
250 checks = BN_prime_checks_for_size(BN_num_bits(a));
251
246 /* XXX - tickle BN_GENCB in bn_is_prime_bpsw(). */ 252 /* XXX - tickle BN_GENCB in bn_is_prime_bpsw(). */
247 if (!bn_is_prime_bpsw(&is_prime, a, ctx_passed)) 253 if (!bn_is_prime_bpsw(&is_prime, a, ctx_passed, checks))
248 return -1; 254 return -1;
249 255
250 return is_prime; 256 return is_prime;