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.c11
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,
94NULL 94NULL
95}; 95};
96 96
97DSA_METHOD *DSA_OpenSSL(void) 97const 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 */