This commit was manufactured by cvs2svn to create branch
[oweals/openssl.git] / crypto / dsa / dsa_ossl.c
index 06575bdc98c31f24ccbba7db03eaacd33615a4e3..094356518f2e74419fbeed3a741f79c473625dd3 100644 (file)
@@ -66,7 +66,7 @@
 #include <openssl/asn1.h>
 
 static DSA_SIG *dsa_do_sign(const unsigned char *dgst, int dlen, DSA *dsa);
-int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp);
+static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp);
 static int dsa_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig,
                  DSA *dsa);
 static int dsa_init(DSA *dsa);
@@ -161,7 +161,7 @@ err:
        return(ret);
        }
 
-int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)
+static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)
        {
        BN_CTX *ctx;
        BIGNUM k,*kinv=NULL,*r=NULL;
@@ -181,7 +181,7 @@ int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)
        /* Get random k */
        for (;;)
                {
-               if (!BN_rand(&k, BN_num_bits(dsa->q), 1, 0)) goto err;
+               if (!BN_rand(&k, BN_num_bits(dsa->q), 0, 0)) goto err;
                if (BN_cmp(&k,dsa->q) >= 0)
                        BN_sub(&k,&k,dsa->q);
                if (!BN_is_zero(&k)) break;
@@ -295,12 +295,14 @@ static int dsa_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig,
 
 static int dsa_init(DSA *dsa)
 {
-       dsa->flags=DSA_FLAG_CACHE_MONT_P;
+       dsa->flags|=DSA_FLAG_CACHE_MONT_P;
        return(1);
 }
 
 static int dsa_finish(DSA *dsa)
 {
+       if(dsa->method_mont_p)
+               BN_MONT_CTX_free((BN_MONT_CTX *)dsa->method_mont_p);
        return(1);
 }