Commit 7283ecea authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

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.
parent 75404857
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -5,6 +5,10 @@


 Changes between 0.9.1c and 0.9.2
 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
  *) Add a bunch of SSL_xxx() functions for configuring the temporary RSA and
     DH private keys and/or callback functions which directly correspond to
     DH private keys and/or callback functions which directly correspond to
     their SSL_CTX_xxx() counterparts but work on a per-connection basis. This
     their SSL_CTX_xxx() counterparts but work on a per-connection basis. This
+4 −4
Original line number Original line Diff line number Diff line
@@ -113,7 +113,7 @@ BIGNUM *a;
BN_MONT_CTX *mont;
BN_MONT_CTX *mont;
BN_CTX *ctx;
BN_CTX *ctx;
	{
	{
#ifdef BN_RECURSION
#ifdef BN_RECURSION_MONT
	if (mont->use_word)
	if (mont->use_word)
#endif
#endif
		{
		{
@@ -212,7 +212,7 @@ printf("word BN_from_montgomery %d * %d\n",nl,nl);
err1:
err1:
		return(retn);
		return(retn);
		}
		}
#ifdef BN_RECURSION
#ifdef BN_RECURSION_MONT
	else /* bignum version */ 
	else /* bignum version */ 
		{
		{
		BIGNUM *t1,*t2,*t3;
		BIGNUM *t1,*t2,*t3;
@@ -316,7 +316,7 @@ BN_CTX *ctx;
	R= &(mont->RR);					/* grab RR as a temp */
	R= &(mont->RR);					/* grab RR as a temp */
	BN_copy(&(mont->N),mod);			/* Set N */
	BN_copy(&(mont->N),mod);			/* Set N */


#ifdef BN_RECURSION
#ifdef BN_RECURSION_MONT
	if (mont->N.top < BN_MONT_CTX_SET_SIZE_WORD)
	if (mont->N.top < BN_MONT_CTX_SET_SIZE_WORD)
#endif
#endif
		{
		{
@@ -364,7 +364,7 @@ BN_CTX *ctx;
		BN_free(&Ri);
		BN_free(&Ri);
		/* mod->top=z; */
		/* mod->top=z; */
		}
		}
#ifdef BN_RECURSION
#ifdef BN_RECURSION_MONT
	else
	else
		{
		{
		mont->use_word=0;
		mont->use_word=0;