ref: 069230cd621ae5b3b9ab6e1a31eb6250fc86e30b
parent: 05f721e9987791aae8e07dd4435f04df6ce33c77
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Sun Jan 7 00:17:34 EST 2018
forgot to commit asn1dump.c...
--- /dev/null
+++ b/sys/src/cmd/auth/asn1dump.c
@@ -1,0 +1,58 @@
+#include <u.h>
+#include <libc.h>
+#include <mp.h>
+#include <libsec.h>
+
+void
+usage(void)
+{
+ fprint(2, "auth/asn1dump [file]\n");
+ exits("usage");
+}
+
+void
+main(int argc, char *argv[])
+{
+ int fd, n, tot;
+ uchar *buf;
+ char *file;
+
+ fmtinstall('B', mpfmt);
+ fmtinstall('H', encodefmt);
+ fmtinstall('[', encodefmt);
+
+ ARGBEGIN{
+ default:
+ usage();
+ }ARGEND
+
+ if(argc != 0 && argc != 1)
+ usage();
+
+ if(argc == 1)
+ file = argv[0];
+ 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;
+ }
+
+ asn1dump(buf, tot);
+
+ X509dump(buf, tot);
+
+ exits(nil);
+}