Lines Matching refs:dsa
1 /* crypto/dsa/dsa_key.c */
64 # include <openssl/dsa.h>
71 static int dsa_builtin_keygen(DSA *dsa);
73 int DSA_generate_key(DSA *dsa)
76 if (FIPS_mode() && !(dsa->meth->flags & DSA_FLAG_FIPS_METHOD)
77 && !(dsa->flags & DSA_FLAG_NON_FIPS_ALLOW)) {
82 if (dsa->meth->dsa_keygen)
83 return dsa->meth->dsa_keygen(dsa);
86 return FIPS_dsa_generate_key(dsa);
88 return dsa_builtin_keygen(dsa);
91 static int dsa_builtin_keygen(DSA *dsa)
100 if (dsa->priv_key == NULL) {
104 priv_key = dsa->priv_key;
107 if (!BN_rand_range(priv_key, dsa->q))
111 if (dsa->pub_key == NULL) {
115 pub_key = dsa->pub_key;
121 if ((dsa->flags & DSA_FLAG_NO_EXP_CONSTTIME) == 0) {
128 if (!BN_mod_exp(pub_key, dsa->g, prk, dsa->p, ctx))
132 dsa->priv_key = priv_key;
133 dsa->pub_key = pub_key;
137 if ((pub_key != NULL) && (dsa->pub_key == NULL))
139 if ((priv_key != NULL) && (dsa->priv_key == NULL))