Lines Matching defs:dsa
1 /* crypto/dsa/dsa_key.c */
64 #include <openssl/dsa.h>
67 static int dsa_builtin_keygen(DSA *dsa);
69 int DSA_generate_key(DSA *dsa)
71 if(dsa->meth->dsa_keygen)
72 return dsa->meth->dsa_keygen(dsa);
73 return dsa_builtin_keygen(dsa);
76 static int dsa_builtin_keygen(DSA *dsa)
84 if (dsa->priv_key == NULL)
89 priv_key=dsa->priv_key;
92 if (!BN_rand_range(priv_key,dsa->q)) goto err;
95 if (dsa->pub_key == NULL)
100 pub_key=dsa->pub_key;
106 if ((dsa->flags & DSA_FLAG_NO_EXP_CONSTTIME) == 0)
115 if (!BN_mod_exp(pub_key,dsa->g,prk,dsa->p,ctx)) goto err;
118 dsa->priv_key=priv_key;
119 dsa->pub_key=pub_key;
123 if ((pub_key != NULL) && (dsa->pub_key == NULL)) BN_free(pub_key);
124 if ((priv_key != NULL) && (dsa->priv_key == NULL)) BN_free(priv_key);