diff options
Diffstat (limited to 'src/lib/libcrypto/dsa/dsa_ossl.c')
-rw-r--r-- | src/lib/libcrypto/dsa/dsa_ossl.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/lib/libcrypto/dsa/dsa_ossl.c b/src/lib/libcrypto/dsa/dsa_ossl.c index 34c6e9a141..07addc94d9 100644 --- a/src/lib/libcrypto/dsa/dsa_ossl.c +++ b/src/lib/libcrypto/dsa/dsa_ossl.c | |||
@@ -94,7 +94,7 @@ dsa_finish, | |||
94 | NULL | 94 | NULL |
95 | }; | 95 | }; |
96 | 96 | ||
97 | DSA_METHOD *DSA_OpenSSL(void) | 97 | const DSA_METHOD *DSA_OpenSSL(void) |
98 | { | 98 | { |
99 | return &openssl_dsa_meth; | 99 | return &openssl_dsa_meth; |
100 | } | 100 | } |
@@ -204,7 +204,7 @@ static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp) | |||
204 | } | 204 | } |
205 | 205 | ||
206 | /* Compute r = (g^k mod p) mod q */ | 206 | /* Compute r = (g^k mod p) mod q */ |
207 | if (!ENGINE_get_DSA(dsa->engine)->bn_mod_exp(dsa, r,dsa->g,&k,dsa->p,ctx, | 207 | if (!dsa->meth->bn_mod_exp(dsa, r,dsa->g,&k,dsa->p,ctx, |
208 | (BN_MONT_CTX *)dsa->method_mont_p)) goto err; | 208 | (BN_MONT_CTX *)dsa->method_mont_p)) goto err; |
209 | if (!BN_mod(r,r,dsa->q,ctx)) goto err; | 209 | if (!BN_mod(r,r,dsa->q,ctx)) goto err; |
210 | 210 | ||
@@ -237,6 +237,11 @@ static int dsa_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig, | |||
237 | BIGNUM u1,u2,t1; | 237 | BIGNUM u1,u2,t1; |
238 | BN_MONT_CTX *mont=NULL; | 238 | BN_MONT_CTX *mont=NULL; |
239 | int ret = -1; | 239 | int ret = -1; |
240 | if (!dsa->p || !dsa->q || !dsa->g) | ||
241 | { | ||
242 | DSAerr(DSA_F_DSA_DO_VERIFY,DSA_R_MISSING_PARAMETERS); | ||
243 | return -1; | ||
244 | } | ||
240 | 245 | ||
241 | if ((ctx=BN_CTX_new()) == NULL) goto err; | 246 | if ((ctx=BN_CTX_new()) == NULL) goto err; |
242 | BN_init(&u1); | 247 | BN_init(&u1); |
@@ -293,7 +298,7 @@ static int dsa_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig, | |||
293 | if (!BN_mod(&u1,&u1,dsa->q,ctx)) goto err; | 298 | if (!BN_mod(&u1,&u1,dsa->q,ctx)) goto err; |
294 | #else | 299 | #else |
295 | { | 300 | { |
296 | if (!ENGINE_get_DSA(dsa->engine)->dsa_mod_exp(dsa, &t1,dsa->g,&u1,dsa->pub_key,&u2, | 301 | if (!dsa->meth->dsa_mod_exp(dsa, &t1,dsa->g,&u1,dsa->pub_key,&u2, |
297 | dsa->p,ctx,mont)) goto err; | 302 | dsa->p,ctx,mont)) goto err; |
298 | /* BN_copy(&u1,&t1); */ | 303 | /* BN_copy(&u1,&t1); */ |
299 | /* let u1 = u1 mod q */ | 304 | /* let u1 = u1 mod q */ |