diff options
| author | beck <> | 2002-05-15 02:29:21 +0000 |
|---|---|---|
| committer | beck <> | 2002-05-15 02:29:21 +0000 |
| commit | b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9 (patch) | |
| tree | fa27cf82a1250b64ed3bf5f4a18c7354d470bbcc /src/lib/libcrypto/dsa/dsa_ossl.c | |
| parent | e471e1ea98d673597b182ea85f29e30c97cd08b5 (diff) | |
| download | openbsd-b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9.tar.gz openbsd-b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9.tar.bz2 openbsd-b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9.zip | |
OpenSSL 0.9.7 stable 2002 05 08 merge
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 */ |
