Blame


1 0fc65b37 2004-03-21 devnull #include "os.h"
2 0fc65b37 2004-03-21 devnull #include <mp.h>
3 0fc65b37 2004-03-21 devnull #include <libsec.h>
4 0fc65b37 2004-03-21 devnull
5 0fc65b37 2004-03-21 devnull EGpriv*
6 0fc65b37 2004-03-21 devnull eggen(int nlen, int rounds)
7 0fc65b37 2004-03-21 devnull {
8 0fc65b37 2004-03-21 devnull EGpub *pub;
9 0fc65b37 2004-03-21 devnull EGpriv *priv;
10 0fc65b37 2004-03-21 devnull
11 0fc65b37 2004-03-21 devnull priv = egprivalloc();
12 0fc65b37 2004-03-21 devnull pub = &priv->pub;
13 0fc65b37 2004-03-21 devnull pub->p = mpnew(0);
14 0fc65b37 2004-03-21 devnull pub->alpha = mpnew(0);
15 0fc65b37 2004-03-21 devnull pub->key = mpnew(0);
16 0fc65b37 2004-03-21 devnull priv->secret = mpnew(0);
17 0fc65b37 2004-03-21 devnull gensafeprime(pub->p, pub->alpha, nlen, rounds);
18 0fc65b37 2004-03-21 devnull mprand(nlen-1, genrandom, priv->secret);
19 0fc65b37 2004-03-21 devnull mpexp(pub->alpha, priv->secret, pub->p, pub->key);
20 0fc65b37 2004-03-21 devnull return priv;
21 0fc65b37 2004-03-21 devnull }