Blame


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 <bio.h>
4 57fcfc2a 2005-02-13 devnull #include <mp.h>
5 57fcfc2a 2005-02-13 devnull #include <libsec.h>
6 57fcfc2a 2005-02-13 devnull
7 57fcfc2a 2005-02-13 devnull void
8 57fcfc2a 2005-02-13 devnull usage(void)
9 57fcfc2a 2005-02-13 devnull {
10 57fcfc2a 2005-02-13 devnull fprint(2, "auth/pemdecode section [file]\n");
11 57fcfc2a 2005-02-13 devnull exits("usage");
12 57fcfc2a 2005-02-13 devnull }
13 57fcfc2a 2005-02-13 devnull
14 57fcfc2a 2005-02-13 devnull void
15 57fcfc2a 2005-02-13 devnull main(int argc, char **argv)
16 57fcfc2a 2005-02-13 devnull {
17 57fcfc2a 2005-02-13 devnull char *buf, *cbuf;
18 57fcfc2a 2005-02-13 devnull int fd;
19 57fcfc2a 2005-02-13 devnull long n, tot;
20 57fcfc2a 2005-02-13 devnull int len;
21 57fcfc2a 2005-02-13 devnull char *tag, *file;
22 57fcfc2a 2005-02-13 devnull
23 57fcfc2a 2005-02-13 devnull ARGBEGIN{
24 57fcfc2a 2005-02-13 devnull default:
25 57fcfc2a 2005-02-13 devnull usage();
26 57fcfc2a 2005-02-13 devnull }ARGEND
27 57fcfc2a 2005-02-13 devnull
28 57fcfc2a 2005-02-13 devnull if(argc != 1 && argc != 2)
29 57fcfc2a 2005-02-13 devnull usage();
30 57fcfc2a 2005-02-13 devnull
31 57fcfc2a 2005-02-13 devnull tag = argv[0];
32 57fcfc2a 2005-02-13 devnull if(argc == 2)
33 57fcfc2a 2005-02-13 devnull file = argv[1];
34 57fcfc2a 2005-02-13 devnull else
35 57fcfc2a 2005-02-13 devnull file = "/dev/stdin";
36 57fcfc2a 2005-02-13 devnull
37 57fcfc2a 2005-02-13 devnull if((fd = open(file, OREAD)) < 0)
38 57fcfc2a 2005-02-13 devnull sysfatal("open %s: %r", file);
39 57fcfc2a 2005-02-13 devnull buf = nil;
40 57fcfc2a 2005-02-13 devnull tot = 0;
41 57fcfc2a 2005-02-13 devnull for(;;){
42 57fcfc2a 2005-02-13 devnull buf = realloc(buf, tot+8192);
43 57fcfc2a 2005-02-13 devnull if(buf == nil)
44 57fcfc2a 2005-02-13 devnull sysfatal("realloc: %r");
45 57fcfc2a 2005-02-13 devnull if((n = read(fd, buf+tot, 8192)) < 0)
46 57fcfc2a 2005-02-13 devnull sysfatal("read: %r");
47 57fcfc2a 2005-02-13 devnull if(n == 0)
48 57fcfc2a 2005-02-13 devnull break;
49 57fcfc2a 2005-02-13 devnull tot += n;
50 57fcfc2a 2005-02-13 devnull }
51 57fcfc2a 2005-02-13 devnull buf[tot] = 0;
52 57fcfc2a 2005-02-13 devnull cbuf = malloc(2*tot);
53 57fcfc2a 2005-02-13 devnull if(cbuf == nil)
54 57fcfc2a 2005-02-13 devnull sysfatal("malloc: %r");
55 57fcfc2a 2005-02-13 devnull len = enc64(cbuf, 2*tot, (uchar*)buf, tot);
56 57fcfc2a 2005-02-13 devnull print("-----BEGIN %s-----\n", tag);
57 57fcfc2a 2005-02-13 devnull while(len > 0){
58 57fcfc2a 2005-02-13 devnull print("%.64s\n", cbuf);
59 57fcfc2a 2005-02-13 devnull cbuf += 64;
60 57fcfc2a 2005-02-13 devnull len -= 64;
61 57fcfc2a 2005-02-13 devnull }
62 57fcfc2a 2005-02-13 devnull print("-----END %s-----\n", tag);
63 57fcfc2a 2005-02-13 devnull exits(0);
64 57fcfc2a 2005-02-13 devnull }