[openssl-commits] [openssl] master update

Dr. Stephen Henson steve at openssl.org
Tue Jan 13 15:40:17 UTC 2015


The branch master has been updated
       via  a5a412350daa8f49b90323ec2a99fee499fc5b6d (commit)
       via  98b3b116ab678532eb288f79cf73c1e8f8d3db6d (commit)
      from  2d2671790ee12dedd92c97f35b6feb755b8d4374 (commit)


- Log -----------------------------------------------------------------
commit a5a412350daa8f49b90323ec2a99fee499fc5b6d
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Jan 13 15:21:28 2015 +0000

    Remove use of BN_init, BN_RECP_CTX_init from bntest
    
    BN_init and BN_RECP_CTX_init are deprecated and are not exported
    from shared libraries on some platforms (e.g. Windows) convert
    bntest to use BN_new and BN_RECP_CTX_new instead.
    Reviewed-by: Matt Caswell <matt at openssl.org>

commit 98b3b116ab678532eb288f79cf73c1e8f8d3db6d
Author: Dr. Stephen Henson <steve at openssl.org>
Date:   Tue Jan 13 15:20:34 2015 +0000

    For master windows build dsa.h is now needed.
    
    Reviewed-by: Matt Caswell <matt at openssl.org>

-----------------------------------------------------------------------

Summary of changes:
 crypto/bn/bntest.c |  424 ++++++++++++++++++++++++++--------------------------
 engines/e_capi.c   |    1 +
 2 files changed, 213 insertions(+), 212 deletions(-)

diff --git a/crypto/bn/bntest.c b/crypto/bn/bntest.c
index 869ae05..9bb1429 100644
--- a/crypto/bn/bntest.c
+++ b/crypto/bn/bntest.c
@@ -329,160 +329,160 @@ err:
 
 int test_add(BIO *bp)
 	{
-	BIGNUM a,b,c;
+	BIGNUM *a,*b,*c;
 	int i;
 
-	BN_init(&a);
-	BN_init(&b);
-	BN_init(&c);
+	a = BN_new();
+	b = BN_new();
+	c = BN_new();
 
-	BN_bntest_rand(&a,512,0,0);
+	BN_bntest_rand(a,512,0,0);
 	for (i=0; i<num0; i++)
 		{
-		BN_bntest_rand(&b,450+i,0,0);
-		a.neg=rand_neg();
-		b.neg=rand_neg();
-		BN_add(&c,&a,&b);
+		BN_bntest_rand(b,450+i,0,0);
+		a->neg=rand_neg();
+		b->neg=rand_neg();
+		BN_add(c,a,b);
 		if (bp != NULL)
 			{
 			if (!results)
 				{
-				BN_print(bp,&a);
+				BN_print(bp,a);
 				BIO_puts(bp," + ");
-				BN_print(bp,&b);
+				BN_print(bp,b);
 				BIO_puts(bp," - ");
 				}
-			BN_print(bp,&c);
+			BN_print(bp,c);
 			BIO_puts(bp,"\n");
 			}
-		a.neg=!a.neg;
-		b.neg=!b.neg;
-		BN_add(&c,&c,&b);
-		BN_add(&c,&c,&a);
-		if(!BN_is_zero(&c))
+		a->neg=!a->neg;
+		b->neg=!b->neg;
+		BN_add(c,c,b);
+		BN_add(c,c,a);
+		if(!BN_is_zero(c))
 		    {
 		    fprintf(stderr,"Add test failed!\n");
 		    return 0;
 		    }
 		}
-	BN_free(&a);
-	BN_free(&b);
-	BN_free(&c);
+	BN_free(a);
+	BN_free(b);
+	BN_free(c);
 	return(1);
 	}
 
 int test_sub(BIO *bp)
 	{
-	BIGNUM a,b,c;
+	BIGNUM *a,*b,*c;
 	int i;
 
-	BN_init(&a);
-	BN_init(&b);
-	BN_init(&c);
+	a = BN_new();
+	b = BN_new();
+	c = BN_new();
 
 	for (i=0; i<num0+num1; i++)
 		{
 		if (i < num1)
 			{
-			BN_bntest_rand(&a,512,0,0);
-			BN_copy(&b,&a);
-			if (BN_set_bit(&a,i)==0) return(0);
-			BN_add_word(&b,i);
+			BN_bntest_rand(a,512,0,0);
+			BN_copy(b,a);
+			if (BN_set_bit(a,i)==0) return(0);
+			BN_add_word(b,i);
 			}
 		else
 			{
-			BN_bntest_rand(&b,400+i-num1,0,0);
-			a.neg=rand_neg();
-			b.neg=rand_neg();
+			BN_bntest_rand(b,400+i-num1,0,0);
+			a->neg=rand_neg();
+			b->neg=rand_neg();
 			}
-		BN_sub(&c,&a,&b);
+		BN_sub(c,a,b);
 		if (bp != NULL)
 			{
 			if (!results)
 				{
-				BN_print(bp,&a);
+				BN_print(bp,a);
 				BIO_puts(bp," - ");
-				BN_print(bp,&b);
+				BN_print(bp,b);
 				BIO_puts(bp," - ");
 				}
-			BN_print(bp,&c);
+			BN_print(bp,c);
 			BIO_puts(bp,"\n");
 			}
-		BN_add(&c,&c,&b);
-		BN_sub(&c,&c,&a);
-		if(!BN_is_zero(&c))
+		BN_add(c,c,b);
+		BN_sub(c,c,a);
+		if(!BN_is_zero(c))
 		    {
 		    fprintf(stderr,"Subtract test failed!\n");
 		    return 0;
 		    }
 		}
-	BN_free(&a);
-	BN_free(&b);
-	BN_free(&c);
+	BN_free(a);
+	BN_free(b);
+	BN_free(c);
 	return(1);
 	}
 
 int test_div(BIO *bp, BN_CTX *ctx)
 	{
-	BIGNUM a,b,c,d,e;
+	BIGNUM *a,*b,*c,*d,*e;
 	int i;
 
-	BN_init(&a);
-	BN_init(&b);
-	BN_init(&c);
-	BN_init(&d);
-	BN_init(&e);
+	a = BN_new();
+	b = BN_new();
+	c = BN_new();
+	d = BN_new();
+	e = BN_new();
 
 	for (i=0; i<num0+num1; i++)
 		{
 		if (i < num1)
 			{
-			BN_bntest_rand(&a,400,0,0);
-			BN_copy(&b,&a);
-			BN_lshift(&a,&a,i);
-			BN_add_word(&a,i);
+			BN_bntest_rand(a,400,0,0);
+			BN_copy(b,a);
+			BN_lshift(a,a,i);
+			BN_add_word(a,i);
 			}
 		else
-			BN_bntest_rand(&b,50+3*(i-num1),0,0);
-		a.neg=rand_neg();
-		b.neg=rand_neg();
-		BN_div(&d,&c,&a,&b,ctx);
+			BN_bntest_rand(b,50+3*(i-num1),0,0);
+		a->neg=rand_neg();
+		b->neg=rand_neg();
+		BN_div(d,c,a,b,ctx);
 		if (bp != NULL)
 			{
 			if (!results)
 				{
-				BN_print(bp,&a);
+				BN_print(bp,a);
 				BIO_puts(bp," / ");
-				BN_print(bp,&b);
+				BN_print(bp,b);
 				BIO_puts(bp," - ");
 				}
-			BN_print(bp,&d);
+			BN_print(bp,d);
 			BIO_puts(bp,"\n");
 
 			if (!results)
 				{
-				BN_print(bp,&a);
+				BN_print(bp,a);
 				BIO_puts(bp," % ");
-				BN_print(bp,&b);
+				BN_print(bp,b);
 				BIO_puts(bp," - ");
 				}
-			BN_print(bp,&c);
+			BN_print(bp,c);
 			BIO_puts(bp,"\n");
 			}
-		BN_mul(&e,&d,&b,ctx);
-		BN_add(&d,&e,&c);
-		BN_sub(&d,&d,&a);
-		if(!BN_is_zero(&d))
+		BN_mul(e,d,b,ctx);
+		BN_add(d,e,c);
+		BN_sub(d,d,a);
+		if(!BN_is_zero(d))
 		    {
 		    fprintf(stderr,"Division test failed!\n");
 		    return 0;
 		    }
 		}
-	BN_free(&a);
-	BN_free(&b);
-	BN_free(&c);
-	BN_free(&d);
-	BN_free(&e);
+	BN_free(a);
+	BN_free(b);
+	BN_free(c);
+	BN_free(d);
+	BN_free(e);
 	return(1);
 	}
 
@@ -504,39 +504,39 @@ static void print_word(BIO *bp,BN_ULONG w)
 
 int test_div_word(BIO *bp)
 	{
-	BIGNUM   a,b;
+	BIGNUM   *a,*b;
 	BN_ULONG r,s;
 	int i;
 
-	BN_init(&a);
-	BN_init(&b);
+	a = BN_new();
+	b = BN_new();
 
 	for (i=0; i<num0; i++)
 		{
 		do {
-			BN_bntest_rand(&a,512,-1,0);
-			BN_bntest_rand(&b,BN_BITS2,-1,0);
-			s = b.d[0];
+			BN_bntest_rand(a,512,-1,0);
+			BN_bntest_rand(b,BN_BITS2,-1,0);
+			s = b->d[0];
 		} while (!s);
 
-		BN_copy(&b, &a);
-		r = BN_div_word(&b, s);
+		BN_copy(b, a);
+		r = BN_div_word(b, s);
 
 		if (bp != NULL)
 			{
 			if (!results)
 				{
-				BN_print(bp,&a);
+				BN_print(bp,a);
 				BIO_puts(bp," / ");
 				print_word(bp,s);
 				BIO_puts(bp," - ");
 				}
-			BN_print(bp,&b);
+			BN_print(bp,b);
 			BIO_puts(bp,"\n");
 
 			if (!results)
 				{
-				BN_print(bp,&a);
+				BN_print(bp,a);
 				BIO_puts(bp," % ");
 				print_word(bp,s);
 				BIO_puts(bp," - ");
@@ -544,145 +544,145 @@ int test_div_word(BIO *bp)
 			print_word(bp,r);
 			BIO_puts(bp,"\n");
 			}
-		BN_mul_word(&b,s);
-		BN_add_word(&b,r);
-		BN_sub(&b,&a,&b);
-		if(!BN_is_zero(&b))
+		BN_mul_word(b,s);
+		BN_add_word(b,r);
+		BN_sub(b,a,b);
+		if(!BN_is_zero(b))
 		    {
 		    fprintf(stderr,"Division (word) test failed!\n");
 		    return 0;
 		    }
 		}
-	BN_free(&a);
-	BN_free(&b);
+	BN_free(a);
+	BN_free(b);
 	return(1);
 	}
 
 int test_div_recp(BIO *bp, BN_CTX *ctx)
 	{
-	BIGNUM a,b,c,d,e;
-	BN_RECP_CTX recp;
+	BIGNUM *a,*b,*c,*d,*e;
+	BN_RECP_CTX *recp;
 	int i;
 
-	BN_RECP_CTX_init(&recp);
-	BN_init(&a);
-	BN_init(&b);
-	BN_init(&c);
-	BN_init(&d);
-	BN_init(&e);
+	recp = BN_RECP_CTX_new();
+	a = BN_new();
+	b = BN_new();
+	c = BN_new();
+	d = BN_new();
+	e = BN_new();
 
 	for (i=0; i<num0+num1; i++)
 		{
 		if (i < num1)
 			{
-			BN_bntest_rand(&a,400,0,0);
-			BN_copy(&b,&a);
-			BN_lshift(&a,&a,i);
-			BN_add_word(&a,i);
+			BN_bntest_rand(a,400,0,0);
+			BN_copy(b,a);
+			BN_lshift(a,a,i);
+			BN_add_word(a,i);
 			}
 		else
-			BN_bntest_rand(&b,50+3*(i-num1),0,0);
-		a.neg=rand_neg();
-		b.neg=rand_neg();
-		BN_RECP_CTX_set(&recp,&b,ctx);
-		BN_div_recp(&d,&c,&a,&recp,ctx);
+			BN_bntest_rand(b,50+3*(i-num1),0,0);
+		a->neg=rand_neg();
+		b->neg=rand_neg();
+		BN_RECP_CTX_set(recp,b,ctx);
+		BN_div_recp(d,c,a,recp,ctx);
 		if (bp != NULL)
 			{
 			if (!results)
 				{
-				BN_print(bp,&a);
+				BN_print(bp,a);
 				BIO_puts(bp," / ");
-				BN_print(bp,&b);
+				BN_print(bp,b);
 				BIO_puts(bp," - ");
 				}
-			BN_print(bp,&d);
+			BN_print(bp,d);
 			BIO_puts(bp,"\n");
 
 			if (!results)
 				{
-				BN_print(bp,&a);
+				BN_print(bp,a);
 				BIO_puts(bp," % ");
-				BN_print(bp,&b);
+				BN_print(bp,b);
 				BIO_puts(bp," - ");
 				}
-			BN_print(bp,&c);
+			BN_print(bp,c);
 			BIO_puts(bp,"\n");
 			}
-		BN_mul(&e,&d,&b,ctx);
-		BN_add(&d,&e,&c);
-		BN_sub(&d,&d,&a);
-		if(!BN_is_zero(&d))
+		BN_mul(e,d,b,ctx);
+		BN_add(d,e,c);
+		BN_sub(d,d,a);
+		if(!BN_is_zero(d))
 		    {
 		    fprintf(stderr,"Reciprocal division test failed!\n");
 		    fprintf(stderr,"a=");
-		    BN_print_fp(stderr,&a);
+		    BN_print_fp(stderr,a);
 		    fprintf(stderr,"\nb=");
-		    BN_print_fp(stderr,&b);
+		    BN_print_fp(stderr,b);
 		    fprintf(stderr,"\n");
 		    return 0;
 		    }
 		}
-	BN_free(&a);
-	BN_free(&b);
-	BN_free(&c);
-	BN_free(&d);
-	BN_free(&e);
-	BN_RECP_CTX_free(&recp);
+	BN_free(a);
+	BN_free(b);
+	BN_free(c);
+	BN_free(d);
+	BN_free(e);
+	BN_RECP_CTX_free(recp);
 	return(1);
 	}
 
 int test_mul(BIO *bp)
 	{
-	BIGNUM a,b,c,d,e;
+	BIGNUM *a,*b,*c,*d,*e;
 	int i;
 	BN_CTX *ctx;
 
 	ctx = BN_CTX_new();
 	if (ctx == NULL) EXIT(1);
-	
-	BN_init(&a);
-	BN_init(&b);
-	BN_init(&c);
-	BN_init(&d);
-	BN_init(&e);
+
+	a = BN_new();
+	b = BN_new();
+	c = BN_new();
+	d = BN_new();
+	e = BN_new();
 
 	for (i=0; i<num0+num1; i++)
 		{
 		if (i <= num1)
 			{
-			BN_bntest_rand(&a,100,0,0);
-			BN_bntest_rand(&b,100,0,0);
+			BN_bntest_rand(a,100,0,0);
+			BN_bntest_rand(b,100,0,0);
 			}
 		else
-			BN_bntest_rand(&b,i-num1,0,0);
-		a.neg=rand_neg();
-		b.neg=rand_neg();
-		BN_mul(&c,&a,&b,ctx);
+			BN_bntest_rand(b,i-num1,0,0);
+		a->neg=rand_neg();
+		b->neg=rand_neg();
+		BN_mul(c,a,b,ctx);
 		if (bp != NULL)
 			{
 			if (!results)
 				{
-				BN_print(bp,&a);
+				BN_print(bp,a);
 				BIO_puts(bp," * ");
-				BN_print(bp,&b);
+				BN_print(bp,b);
 				BIO_puts(bp," - ");
 				}
-			BN_print(bp,&c);
+			BN_print(bp,c);
 			BIO_puts(bp,"\n");
 			}
-		BN_div(&d,&e,&c,&a,ctx);
-		BN_sub(&d,&d,&b);
-		if(!BN_is_zero(&d) || !BN_is_zero(&e))
+		BN_div(d,e,c,a,ctx);
+		BN_sub(d,d,b);
+		if(!BN_is_zero(d) || !BN_is_zero(e))
 		    {
 		    fprintf(stderr,"Multiplication test failed!\n");
 		    return 0;
 		    }
 		}
-	BN_free(&a);
-	BN_free(&b);
-	BN_free(&c);
-	BN_free(&d);
-	BN_free(&e);
+	BN_free(a);
+	BN_free(b);
+	BN_free(c);
+	BN_free(d);
+	BN_free(e);
 	BN_CTX_free(ctx);
 	return(1);
 	}
@@ -785,78 +785,78 @@ err:
 
 int test_mont(BIO *bp, BN_CTX *ctx)
 	{
-	BIGNUM a,b,c,d,A,B;
-	BIGNUM n;
+	BIGNUM *a,*b,*c,*d,*A,*B;
+	BIGNUM *n;
 	int i;
 	BN_MONT_CTX *mont;
 
-	BN_init(&a);
-	BN_init(&b);
-	BN_init(&c);
-	BN_init(&d);
-	BN_init(&A);
-	BN_init(&B);
-	BN_init(&n);
+	a = BN_new();
+	b = BN_new();
+	c = BN_new();
+	d = BN_new();
+	A = BN_new();
+	B = BN_new();
+	n = BN_new();
 
 	mont=BN_MONT_CTX_new();
 	if (mont == NULL)
 		return 0;
 
-	BN_bntest_rand(&a,100,0,0); /**/
-	BN_bntest_rand(&b,100,0,0); /**/
+	BN_bntest_rand(a,100,0,0); /**/
+	BN_bntest_rand(b,100,0,0); /**/
 	for (i=0; i<num2; i++)
 		{
 		int bits = (200*(i+1))/num2;
 
 		if (bits == 0)
 			continue;
-		BN_bntest_rand(&n,bits,0,1);
-		BN_MONT_CTX_set(mont,&n,ctx);
+		BN_bntest_rand(n,bits,0,1);
+		BN_MONT_CTX_set(mont,n,ctx);
 
-		BN_nnmod(&a,&a,&n,ctx);
-		BN_nnmod(&b,&b,&n,ctx);
+		BN_nnmod(a,a,n,ctx);
+		BN_nnmod(b,b,n,ctx);
 
-		BN_to_montgomery(&A,&a,mont,ctx);
-		BN_to_montgomery(&B,&b,mont,ctx);
+		BN_to_montgomery(A,a,mont,ctx);
+		BN_to_montgomery(B,b,mont,ctx);
 
-		BN_mod_mul_montgomery(&c,&A,&B,mont,ctx);/**/
-		BN_from_montgomery(&A,&c,mont,ctx);/**/
+		BN_mod_mul_montgomery(c,A,B,mont,ctx);/**/
+		BN_from_montgomery(A,c,mont,ctx);/**/
 		if (bp != NULL)
 			{
 			if (!results)
 				{
 #ifdef undef
 fprintf(stderr,"%d * %d %% %d\n",
-BN_num_bits(&a),
-BN_num_bits(&b),
-BN_num_bits(mont->N));
+BN_num_bits(a),
+BN_num_bits(b),
+BN_num_bits(&mont->N);
 #endif
-				BN_print(bp,&a);
+				BN_print(bp,a);
 				BIO_puts(bp," * ");
-				BN_print(bp,&b);
+				BN_print(bp,b);
 				BIO_puts(bp," % ");
-				BN_print(bp,&(mont->N));
+				BN_print(bp,&mont->N);
 				BIO_puts(bp," - ");
 				}
-			BN_print(bp,&A);
+			BN_print(bp,A);
 			BIO_puts(bp,"\n");
 			}
-		BN_mod_mul(&d,&a,&b,&n,ctx);
-		BN_sub(&d,&d,&A);
-		if(!BN_is_zero(&d))
+		BN_mod_mul(d,a,b,n,ctx);
+		BN_sub(d,d,A);
+		if(!BN_is_zero(d))
 		    {
 		    fprintf(stderr,"Montgomery multiplication test failed!\n");
 		    return 0;
 		    }
 		}
 	BN_MONT_CTX_free(mont);
-	BN_free(&a);
-	BN_free(&b);
-	BN_free(&c);
-	BN_free(&d);
-	BN_free(&A);
-	BN_free(&B);
-	BN_free(&n);
+	BN_free(a);
+	BN_free(b);
+	BN_free(c);
+	BN_free(d);
+	BN_free(A);
+	BN_free(B);
+	BN_free(n);
 	return(1);
 	}
 
@@ -1205,43 +1205,43 @@ int test_exp(BIO *bp, BN_CTX *ctx)
 #ifndef OPENSSL_NO_EC2M
 int test_gf2m_add(BIO *bp)
 	{
-	BIGNUM a,b,c;
+	BIGNUM *a,*b,*c;
 	int i, ret = 0;
 
-	BN_init(&a);
-	BN_init(&b);
-	BN_init(&c);
+	a = BN_new();
+	b = BN_new();
+	c = BN_new();
 
 	for (i=0; i<num0; i++)
 		{
-		BN_rand(&a,512,0,0);
-		BN_copy(&b, BN_value_one());
-		a.neg=rand_neg();
-		b.neg=rand_neg();
-		BN_GF2m_add(&c,&a,&b);
+		BN_rand(a,512,0,0);
+		BN_copy(b, BN_value_one());
+		a->neg=rand_neg();
+		b->neg=rand_neg();
+		BN_GF2m_add(c,a,b);
 #if 0 /* make test uses ouput in bc but bc can't handle GF(2^m) arithmetic */
 		if (bp != NULL)
 			{
 			if (!results)
 				{
-				BN_print(bp,&a);
+				BN_print(bp,a);
 				BIO_puts(bp," ^ ");
-				BN_print(bp,&b);
+				BN_print(bp,b);
 				BIO_puts(bp," = ");
 				}
-			BN_print(bp,&c);
+			BN_print(bp,c);
 			BIO_puts(bp,"\n");
 			}
 #endif
 		/* Test that two added values have the correct parity. */
-		if((BN_is_odd(&a) && BN_is_odd(&c)) || (!BN_is_odd(&a) && !BN_is_odd(&c)))
+		if((BN_is_odd(a) && BN_is_odd(c)) || (!BN_is_odd(a) && !BN_is_odd(c)))
 			{
 		    fprintf(stderr,"GF(2^m) addition test (a) failed!\n");
 			goto err;
 			}
-		BN_GF2m_add(&c,&c,&c);
+		BN_GF2m_add(c,c,c);
 		/* Test that c + c = 0. */
-		if(!BN_is_zero(&c))
+		if(!BN_is_zero(c))
 		    {
 		    fprintf(stderr,"GF(2^m) addition test (b) failed!\n");
 			goto err;
@@ -1249,9 +1249,9 @@ int test_gf2m_add(BIO *bp)
 		}
 	ret = 1;
   err:
-	BN_free(&a);
-	BN_free(&b);
-	BN_free(&c);
+	BN_free(a);
+	BN_free(b);
+	BN_free(c);
 	return ret;
 	}
 
@@ -1964,42 +1964,42 @@ int test_small_prime(BIO *bp,BN_CTX *ctx)
 	{
 	static const int bits = 10;
 	int ret = 0;
-	BIGNUM r;
+	BIGNUM *r;
 
-	BN_init(&r);
-	if (!BN_generate_prime_ex(&r, bits, 0, NULL, NULL, NULL))
+	r = BN_new();
+	if (!BN_generate_prime_ex(r, bits, 0, NULL, NULL, NULL))
 		goto err;
-	if (BN_num_bits(&r) != bits)
+	if (BN_num_bits(r) != bits)
 		{
-		BIO_printf(bp, "Expected %d bit prime, got %d bit number\n", bits, BN_num_bits(&r));
+		BIO_printf(bp, "Expected %d bit prime, got %d bit number\n", bits, BN_num_bits(r));
 		goto err;
 		}
 
 	ret = 1;
 
 err:
-	BN_clear(&r);
+	BN_clear_free(r);
 	return ret;
 	}
 #ifndef OPENSSL_SYS_WIN32
 int test_probable_prime_coprime(BIO *bp, BN_CTX *ctx)
 	{
 	int i, j, ret = 0;
-	BIGNUM r;
+	BIGNUM *r;
 	BN_ULONG primes[5] = { 2, 3, 5, 7, 11 };
 
-	BN_init(&r);
+	r = BN_new();
 	
 	for (i = 0; i < 1000; i++)
 		{
-		if (!bn_probable_prime_dh_coprime(&r, 1024, ctx)) goto err;
+		if (!bn_probable_prime_dh_coprime(r, 1024, ctx)) goto err;
 		
 		for (j = 0; j < 5; j++)
 			{
-			if (BN_mod_word(&r, primes[j]) == 0)
+			if (BN_mod_word(r, primes[j]) == 0)
 				{
 				BIO_printf(bp, "Number generated is not coprime to %ld:\n", primes[j]);
-				BN_print_fp(stdout, &r);
+				BN_print_fp(stdout, r);
 				BIO_printf(bp, "\n");
 				goto err;
 				}
@@ -2009,7 +2009,7 @@ int test_probable_prime_coprime(BIO *bp, BN_CTX *ctx)
 	ret = 1;
 
 err:
-	BN_clear(&r);
+	BN_clear_free(r);
 	return ret;
 	}
 #endif
diff --git a/engines/e_capi.c b/engines/e_capi.c
index 8a19ed0..41257ad 100644
--- a/engines/e_capi.c
+++ b/engines/e_capi.c
@@ -64,6 +64,7 @@
 #include <openssl/buffer.h>
 #include <openssl/bn.h>
 #include <openssl/rsa.h>
+#include <openssl/dsa.h>
 
 #ifndef _WIN32_WINNT
 #define _WIN32_WINNT 0x0400


More information about the openssl-commits mailing list