diff options
Diffstat (limited to 'src/lib/libcrypto/dsa/dsa_ossl.c')
-rw-r--r-- | src/lib/libcrypto/dsa/dsa_ossl.c | 7 |
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 | ||
68 | static DSA_SIG *dsa_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); | 69 | static DSA_SIG *dsa_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); |
69 | static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp); | 70 | static 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 */ |