summaryrefslogtreecommitdiff
path: root/sys/src/cmd/auth/pemencode.c
diff options
context:
space:
mode:
authorTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
committerTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
commite5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch)
treed8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/cmd/auth/pemencode.c
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/cmd/auth/pemencode.c')
-rwxr-xr-xsys/src/cmd/auth/pemencode.c64
1 files changed, 64 insertions, 0 deletions
diff --git a/sys/src/cmd/auth/pemencode.c b/sys/src/cmd/auth/pemencode.c
new file mode 100755
index 000000000..b6e886fa5
--- /dev/null
+++ b/sys/src/cmd/auth/pemencode.c
@@ -0,0 +1,64 @@
+#include <u.h>
+#include <libc.h>
+#include <bio.h>
+#include <mp.h>
+#include <libsec.h>
+
+void
+usage(void)
+{
+ fprint(2, "auth/pemdecode section [file]\n");
+ exits("usage");
+}
+
+void
+main(int argc, char **argv)
+{
+ char *buf, *cbuf;
+ int fd;
+ long n, tot;
+ int len;
+ char *tag, *file;
+
+ ARGBEGIN{
+ default:
+ usage();
+ }ARGEND
+
+ if(argc != 1 && argc != 2)
+ usage();
+
+ tag = argv[0];
+ if(argc == 2)
+ file = argv[1];
+ else
+ file = "#d/0";
+
+ if((fd = open(file, OREAD)) < 0)
+ sysfatal("open %s: %r", file);
+ buf = nil;
+ tot = 0;
+ for(;;){
+ buf = realloc(buf, tot+8192);
+ if(buf == nil)
+ sysfatal("realloc: %r");
+ if((n = read(fd, buf+tot, 8192)) < 0)
+ sysfatal("read: %r");
+ if(n == 0)
+ break;
+ tot += n;
+ }
+ buf[tot] = 0;
+ cbuf = malloc(2*tot);
+ if(cbuf == nil)
+ sysfatal("malloc: %r");
+ len = enc64(cbuf, 2*tot, (uchar*)buf, tot);
+ print("-----BEGIN %s-----\n", tag);
+ while(len > 0){
+ print("%.64s\n", cbuf);
+ cbuf += 64;
+ len -= 64;
+ }
+ print("-----END %s-----\n", tag);
+ exits(0);
+}