Lines Matching refs:dsa
31 static int dsa_keygen(DSA *dsa, int pairwise_test);
32 static int dsa_keygen_pairwise_test(DSA *dsa, OSSL_CALLBACK *cb, void *cbarg);
34 int DSA_generate_key(DSA *dsa) in DSA_generate_key() argument
37 if (dsa->meth->dsa_keygen != NULL) in DSA_generate_key()
38 return dsa->meth->dsa_keygen(dsa); in DSA_generate_key()
40 return dsa_keygen(dsa, 0); in DSA_generate_key()
43 int ossl_dsa_generate_public_key(BN_CTX *ctx, const DSA *dsa, in ossl_dsa_generate_public_key() argument
54 if (!BN_mod_exp(pub_key, dsa->params.g, prk, dsa->params.p, ctx)) in ossl_dsa_generate_public_key()
62 static int dsa_keygen(DSA *dsa, int pairwise_test) in dsa_keygen() argument
68 if ((ctx = BN_CTX_new_ex(dsa->libctx)) == NULL) in dsa_keygen()
71 if (dsa->priv_key == NULL) { in dsa_keygen()
75 priv_key = dsa->priv_key; in dsa_keygen()
79 if (!ossl_ffc_params_simple_validate(dsa->libctx, &dsa->params, in dsa_keygen()
88 if (!ossl_ffc_generate_private_key(ctx, &dsa->params, in dsa_keygen()
89 BN_num_bits(dsa->params.q), in dsa_keygen()
93 if (dsa->pub_key == NULL) { in dsa_keygen()
97 pub_key = dsa->pub_key; in dsa_keygen()
100 if (!ossl_dsa_generate_public_key(ctx, dsa, priv_key, pub_key)) in dsa_keygen()
103 dsa->priv_key = priv_key; in dsa_keygen()
104 dsa->pub_key = pub_key; in dsa_keygen()
115 OSSL_SELF_TEST_get_callback(dsa->libctx, &cb, &cbarg); in dsa_keygen()
116 ok = dsa_keygen_pairwise_test(dsa, cb, cbarg); in dsa_keygen()
119 BN_free(dsa->pub_key); in dsa_keygen()
120 BN_clear_free(dsa->priv_key); in dsa_keygen()
121 dsa->pub_key = NULL; in dsa_keygen()
122 dsa->priv_key = NULL; in dsa_keygen()
127 dsa->dirty_cnt++; in dsa_keygen()
130 if (pub_key != dsa->pub_key) in dsa_keygen()
132 if (priv_key != dsa->priv_key) in dsa_keygen()
143 static int dsa_keygen_pairwise_test(DSA *dsa, OSSL_CALLBACK *cb, void *cbarg) in dsa_keygen_pairwise_test() argument
158 sig = DSA_do_sign(dgst, (int)dgst_len, dsa); in dsa_keygen_pairwise_test()
164 if (DSA_do_verify(dgst, dgst_len, sig, dsa) != 1) in dsa_keygen_pairwise_test()