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