Adjust various bignum functions to use BN_CTX for variables instead of
[openssl.git] / crypto / bn / bn_recp.c
index 05b845b2a19f0df8e9ded38189ecef49568f71db..a08489e04a5532b40a7967b23ded0b3126f25a43 100644 (file)
@@ -217,17 +217,18 @@ err:
 int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx)
        {
        int ret= -1;
-       BIGNUM t;
+       BIGNUM *t;
 
-       BN_init(&t);
+       BN_CTX_start(ctx);
+       if((t = BN_CTX_get(ctx)) == NULL) goto err;
 
-       if (!BN_set_bit(&t,len)) goto err;
+       if (!BN_set_bit(t,len)) goto err;
 
-       if (!BN_div(r,NULL,&t,m,ctx)) goto err;
+       if (!BN_div(r,NULL,t,m,ctx)) goto err;
 
        ret=len;
 err:
-       BN_free(&t);
        bn_check_top(r);
+       BN_CTX_end(ctx);
        return(ret);
        }