summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto')
-rw-r--r--src/lib/libcrypto/bn/bn_mont.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/lib/libcrypto/bn/bn_mont.c b/src/lib/libcrypto/bn/bn_mont.c
index e92ceae5f4..314d683782 100644
--- a/src/lib/libcrypto/bn/bn_mont.c
+++ b/src/lib/libcrypto/bn/bn_mont.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: bn_mont.c,v 1.50 2023/03/07 06:19:44 jsing Exp $ */ 1/* $OpenBSD: bn_mont.c,v 1.51 2023/03/07 06:28:36 jsing 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 *
@@ -435,6 +435,14 @@ bn_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,
435 if (mctx->N.top <= 1 || a->top != mctx->N.top || b->top != mctx->N.top) 435 if (mctx->N.top <= 1 || a->top != mctx->N.top || b->top != mctx->N.top)
436 return bn_mod_mul_montgomery_simple(r, a, b, mctx, ctx); 436 return bn_mod_mul_montgomery_simple(r, a, b, mctx, ctx);
437 437
438 /*
439 * Legacy bn_mul_mont() performs stack based allocation, without
440 * size limitation. Allowing a large size results in the stack
441 * being blown.
442 */
443 if (mctx->N.top > (8 * 1024 / sizeof(BN_ULONG)))
444 return bn_montgomery_multiply(r, a, b, mctx, ctx);
445
438 if (!bn_wexpand(r, mctx->N.top)) 446 if (!bn_wexpand(r, mctx->N.top))
439 return 0; 447 return 0;
440 448