From 7283ecea22c65d7a817c575b43f807b2c29b9dc2 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Fri, 26 Feb 1999 01:37:34 +0000 Subject: [PATCH] BN_RECURSION causes the stuff in bn_mont.c to fall over for large keys. For now change it to BN_RECURSION_MONT so it isn't compiled in. --- CHANGES | 4 ++++ crypto/bn/bn_mont.c | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/CHANGES b/CHANGES index 6b4b174435..6be84d728f 100644 --- a/CHANGES +++ b/CHANGES @@ -5,6 +5,10 @@ Changes between 0.9.1c and 0.9.2 + *) Changed BN_RECURSION in bn_mont.c to BN_RECURSION_MONT so it is not + compiled in by default: it has problems with large keys. + [Steve Henson] + *) Add a bunch of SSL_xxx() functions for configuring the temporary RSA and DH private keys and/or callback functions which directly correspond to their SSL_CTX_xxx() counterparts but work on a per-connection basis. This diff --git a/crypto/bn/bn_mont.c b/crypto/bn/bn_mont.c index e73b0cbb69..4ed433e05c 100644 --- a/crypto/bn/bn_mont.c +++ b/crypto/bn/bn_mont.c @@ -113,7 +113,7 @@ BIGNUM *a; BN_MONT_CTX *mont; BN_CTX *ctx; { -#ifdef BN_RECURSION +#ifdef BN_RECURSION_MONT if (mont->use_word) #endif { @@ -212,7 +212,7 @@ printf("word BN_from_montgomery %d * %d\n",nl,nl); err1: return(retn); } -#ifdef BN_RECURSION +#ifdef BN_RECURSION_MONT else /* bignum version */ { BIGNUM *t1,*t2,*t3; @@ -316,7 +316,7 @@ BN_CTX *ctx; R= &(mont->RR); /* grab RR as a temp */ BN_copy(&(mont->N),mod); /* Set N */ -#ifdef BN_RECURSION +#ifdef BN_RECURSION_MONT if (mont->N.top < BN_MONT_CTX_SET_SIZE_WORD) #endif { @@ -364,7 +364,7 @@ BN_CTX *ctx; BN_free(&Ri); /* mod->top=z; */ } -#ifdef BN_RECURSION +#ifdef BN_RECURSION_MONT else { mont->use_word=0; -- GitLab