summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>1999-02-26 01:37:34 +0000
committerDr. Stephen Henson <steve@openssl.org>1999-02-26 01:37:34 +0000
commit7283ecea22c65d7a817c575b43f807b2c29b9dc2 (patch)
tree9b0de4a1712bf72d0d9d10888134f88ef3183949
parent754048577b747d288ddf0479c5611a2ff257e27d (diff)
downloadopenssl-new-7283ecea22c65d7a817c575b43f807b2c29b9dc2.tar.gz
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.
-rw-r--r--CHANGES4
-rw-r--r--crypto/bn/bn_mont.c8
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;