• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/timemachine/openssl-0.9.8e/crypto/dsa/

Lines Matching defs:dsa

1 /* crypto/dsa/dsa_ossl.c */
64 #include <openssl/dsa.h>
68 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);
71 DSA *dsa);
72 static int dsa_init(DSA *dsa);
73 static int dsa_finish(DSA *dsa);
94 * if (!dsa->meth->bn_mod_exp(dsa, r,dsa->g,&k,dsa->p,ctx,
95 * dsa->method_mont_p)) goto err;
99 * DSA_BN_MOD_EXP(goto err, dsa, r, dsa->g, &k, dsa->p, ctx,
100 * dsa->method_mont_p);
103 #define DSA_MOD_EXP(err_instr,dsa,rr,a1,p1,a2,p2,m,ctx,in_mont) \
106 if((dsa)->meth->dsa_mod_exp) \
107 _tmp_res53 = (dsa)->meth->dsa_mod_exp((dsa), (rr), (a1), (p1), \
114 #define DSA_BN_MOD_EXP(err_instr,dsa,r,a,p,m,ctx,m_ctx) \
117 if((dsa)->meth->bn_mod_exp) \
118 _tmp_res53 = (dsa)->meth->bn_mod_exp((dsa), (r), (a), (p), \
130 static DSA_SIG *dsa_do_sign(const unsigned char *dgst, int dlen, DSA *dsa)
142 if (!dsa->p || !dsa->q || !dsa->g)
151 i=BN_num_bytes(dsa->q); /* should be 20 */
161 if ((dsa->kinv == NULL) || (dsa->r == NULL))
163 if (!DSA_sign_setup(dsa,ctx,&kinv,&r)) goto err;
167 kinv=dsa->kinv;
168 dsa->kinv=NULL;
169 r=dsa->r;
170 dsa->r=NULL;
176 if (!BN_mod_mul(&xr,dsa->priv_key,r,dsa->q,ctx)) goto err;/* s = xr */
178 if (BN_cmp(s,dsa->q) > 0)
179 BN_sub(s,s,dsa->q);
180 if (!BN_mod_mul(s,s,kinv,dsa->q,ctx)) goto err;
197 if (kinv != NULL) /* dsa->kinv is NULL now if we used it */
202 static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)
208 if (!dsa->p || !dsa->q || !dsa->g)
228 if (!BN_rand_range(&k, dsa->q)) goto err;
230 if ((dsa->flags & DSA_FLAG_NO_EXP_CONSTTIME) == 0)
235 if (dsa->flags & DSA_FLAG_CACHE_MONT_P)
237 if (!BN_MONT_CTX_set_locked(&dsa->method_mont_p,
239 dsa->p, ctx))
245 if ((dsa->flags & DSA_FLAG_NO_EXP_CONSTTIME) == 0)
255 if (!BN_add(&kq, &kq, dsa->q)) goto err;
256 if (BN_num_bits(&kq) <= BN_num_bits(dsa->q))
258 if (!BN_add(&kq, &kq, dsa->q)) goto err;
267 DSA_BN_MOD_EXP(goto err, dsa, r, dsa->g, K, dsa->p, ctx,
268 dsa->method_mont_p);
269 if (!BN_mod(r,r,dsa->q,ctx)) goto err;
272 if ((kinv=BN_mod_inverse(NULL,&k,dsa->q,ctx)) == NULL) goto err;
295 DSA *dsa)
301 if (!dsa->p || !dsa->q || !dsa->g)
307 if (BN_num_bits(dsa->q) != 160)
313 if (BN_num_bits(dsa->p) > OPENSSL_DSA_MAX_MODULUS_BITS)
326 BN_ucmp(sig->r, dsa->q) >= 0)
332 BN_ucmp(sig->s, dsa->q) >= 0)
340 if ((BN_mod_inverse(&u2,sig->s,dsa->q,ctx)) == NULL) goto err;
346 if (!BN_mod_mul(&u1,&u1,&u2,dsa->q,ctx)) goto err;
349 if (!BN_mod_mul(&u2,sig->r,&u2,dsa->q,ctx)) goto err;
352 if (dsa->flags & DSA_FLAG_CACHE_MONT_P)
354 mont = BN_MONT_CTX_set_locked(&dsa->method_mont_p,
355 CRYPTO_LOCK_DSA, dsa->p, ctx);
361 DSA_MOD_EXP(goto err, dsa, &t1, dsa->g, &u1, dsa->pub_key, &u2, dsa->p, ctx, mont);
364 if (!BN_mod(&u1,&t1,dsa->q,ctx)) goto err;
381 static int dsa_init(DSA *dsa)
383 dsa->flags|=DSA_FLAG_CACHE_MONT_P;
387 static int dsa_finish(DSA *dsa)
389 if(dsa->method_mont_p)
390 BN_MONT_CTX_free(dsa->method_mont_p);