1 57fcfc2a 2005-02-13 devnull #include <u.h>
2 57fcfc2a 2005-02-13 devnull #include <libc.h>
3 57fcfc2a 2005-02-13 devnull #include <mp.h>
4 57fcfc2a 2005-02-13 devnull #include <libsec.h>
7 57fcfc2a 2005-02-13 devnull usage(void)
9 57fcfc2a 2005-02-13 devnull fprint(2, "usage: auth/dsagen [-t 'attr=value attr=value ...']\n");
10 57fcfc2a 2005-02-13 devnull exits("usage");
14 57fcfc2a 2005-02-13 devnull main(int argc, char **argv)
17 57fcfc2a 2005-02-13 devnull int bits;
18 57fcfc2a 2005-02-13 devnull char *tag;
19 57fcfc2a 2005-02-13 devnull DSApriv *key;
21 57fcfc2a 2005-02-13 devnull bits = 1024;
22 57fcfc2a 2005-02-13 devnull tag = nil;
23 57fcfc2a 2005-02-13 devnull key = nil;
24 57fcfc2a 2005-02-13 devnull fmtinstall('B', mpfmt);
26 57fcfc2a 2005-02-13 devnull ARGBEGIN{
27 57fcfc2a 2005-02-13 devnull case 't':
28 57fcfc2a 2005-02-13 devnull tag = EARGF(usage());
34 57fcfc2a 2005-02-13 devnull if(argc != 0)
37 57fcfc2a 2005-02-13 devnull key = dsagen(nil);
39 6acff93f 2005-02-13 devnull s = smprint("key proto=dsa %s%sp=%lB q=%lB alpha=%lB key=%lB !secret=%lB\n",
40 57fcfc2a 2005-02-13 devnull tag ? tag : "", tag ? " " : "",
41 57fcfc2a 2005-02-13 devnull key->pub.p, key->pub.q, key->pub.alpha, key->pub.key,
42 57fcfc2a 2005-02-13 devnull key->secret);
43 57fcfc2a 2005-02-13 devnull if(s == nil)
44 57fcfc2a 2005-02-13 devnull sysfatal("smprint: %r");
46 57fcfc2a 2005-02-13 devnull if(write(1, s, strlen(s)) != strlen(s))
47 57fcfc2a 2005-02-13 devnull sysfatal("write: %r");
49 57fcfc2a 2005-02-13 devnull exits(nil);