summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/dsa/dsa_ossl.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/dsa/dsa_ossl.c')
-rw-r--r--src/lib/libcrypto/dsa/dsa_ossl.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lib/libcrypto/dsa/dsa_ossl.c b/src/lib/libcrypto/dsa/dsa_ossl.c
index b51cf6ad8d..96295dc24f 100644
--- a/src/lib/libcrypto/dsa/dsa_ossl.c
+++ b/src/lib/libcrypto/dsa/dsa_ossl.c
@@ -64,6 +64,7 @@
64#include <openssl/dsa.h> 64#include <openssl/dsa.h>
65#include <openssl/rand.h> 65#include <openssl/rand.h>
66#include <openssl/asn1.h> 66#include <openssl/asn1.h>
67#include <openssl/engine.h>
67 68
68static DSA_SIG *dsa_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); 69static DSA_SIG *dsa_do_sign(const unsigned char *dgst, int dlen, DSA *dsa);
69static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp); 70static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp);
@@ -181,7 +182,7 @@ static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)
181 /* Get random k */ 182 /* Get random k */
182 for (;;) 183 for (;;)
183 { 184 {
184 if (!BN_rand(&k, BN_num_bits(dsa->q), 1, 0)) goto err; 185 if (!BN_rand(&k, BN_num_bits(dsa->q), 0, 0)) goto err;
185 if (BN_cmp(&k,dsa->q) >= 0) 186 if (BN_cmp(&k,dsa->q) >= 0)
186 BN_sub(&k,&k,dsa->q); 187 BN_sub(&k,&k,dsa->q);
187 if (!BN_is_zero(&k)) break; 188 if (!BN_is_zero(&k)) break;
@@ -195,7 +196,7 @@ static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)
195 } 196 }
196 197
197 /* Compute r = (g^k mod p) mod q */ 198 /* Compute r = (g^k mod p) mod q */
198 if (!dsa->meth->bn_mod_exp(dsa, r,dsa->g,&k,dsa->p,ctx, 199 if (!ENGINE_get_DSA(dsa->engine)->bn_mod_exp(dsa, r,dsa->g,&k,dsa->p,ctx,
199 (BN_MONT_CTX *)dsa->method_mont_p)) goto err; 200 (BN_MONT_CTX *)dsa->method_mont_p)) goto err;
200 if (!BN_mod(r,r,dsa->q,ctx)) goto err; 201 if (!BN_mod(r,r,dsa->q,ctx)) goto err;
201 202
@@ -273,7 +274,7 @@ static int dsa_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig,
273 if (!BN_mod(&u1,&u1,dsa->q,ctx)) goto err; 274 if (!BN_mod(&u1,&u1,dsa->q,ctx)) goto err;
274#else 275#else
275 { 276 {
276 if (!dsa->meth->dsa_mod_exp(dsa, &t1,dsa->g,&u1,dsa->pub_key,&u2, 277 if (!ENGINE_get_DSA(dsa->engine)->dsa_mod_exp(dsa, &t1,dsa->g,&u1,dsa->pub_key,&u2,
277 dsa->p,ctx,mont)) goto err; 278 dsa->p,ctx,mont)) goto err;
278 /* BN_copy(&u1,&t1); */ 279 /* BN_copy(&u1,&t1); */
279 /* let u1 = u1 mod q */ 280 /* let u1 = u1 mod q */