Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – planix.SVN – Blame – /os/branches/feature_fixcpp/sys/src/cmd/auth/rsagen.c – Rev 2

Subversion Repositories planix.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include <u.h>
2
#include <libc.h>
3
#include <mp.h>
4
#include <libsec.h>
5
 
6
void
7
usage(void)
8
{
9
	fprint(2, "usage: auth/rsagen [-b bits] [-t 'attr=value attr=value ...']\n");
10
	exits("usage");
11
}
12
 
13
void
14
main(int argc, char **argv)
15
{
16
	char *s;
17
	int bits;
18
	char *tag;
19
	RSApriv *key;
20
 
21
	bits = 1024;
22
	tag = nil;
23
	key = nil;
24
	fmtinstall('B', mpfmt);
25
 
26
	ARGBEGIN{
27
	case 'b':
28
		bits = atoi(EARGF(usage()));
29
		if(bits == 0)
30
			usage();
31
		break;
32
	case 't':
33
		tag = EARGF(usage());
34
		break;
35
	default:
36
		usage();
37
	}ARGEND
38
 
39
	if(argc != 0)
40
		usage();
41
 
42
	do{
43
		if(key)
44
			rsaprivfree(key);
45
		key = rsagen(bits, 6, 0);
46
	}while(mpsignif(key->pub.n) != bits);
47
 
48
	s = smprint("key proto=rsa %s%ssize=%d ek=%B !dk=%B n=%B !p=%B !q=%B !kp=%B !kq=%B !c2=%B\n",
49
		tag ? tag : "", tag ? " " : "",
50
		mpsignif(key->pub.n), key->pub.ek,
51
		key->dk, key->pub.n, key->p, key->q,
52
		key->kp, key->kq, key->c2);
53
	if(s == nil)
54
		sysfatal("smprint: %r");
55
 
56
	if(write(1, s, strlen(s)) != strlen(s))
57
		sysfatal("write: %r");
58
 
59
	exits(nil);
60
}