summaryrefslogtreecommitdiff
path: root/sys/src/cmd/auth/rsa2asn1.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2017-10-06 20:55:57 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2017-10-06 20:55:57 +0200
commit0a3695ba844972e332dc28efa1ecb232a8eff9ba (patch)
treeac607a411d232179f077fabae3065f74f27e7903 /sys/src/cmd/auth/rsa2asn1.c
parent8a67560183b3b726c827bcac02632b2b8e3ba59d (diff)
rsa: add auth/rsa2asn1, check write error in auth/rsa2x509 and auth/rsa2pub, document in rsa(8)
Diffstat (limited to 'sys/src/cmd/auth/rsa2asn1.c')
-rw-r--r--sys/src/cmd/auth/rsa2asn1.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/sys/src/cmd/auth/rsa2asn1.c b/sys/src/cmd/auth/rsa2asn1.c
new file mode 100644
index 000000000..51f82282e
--- /dev/null
+++ b/sys/src/cmd/auth/rsa2asn1.c
@@ -0,0 +1,37 @@
+#include <u.h>
+#include <libc.h>
+#include <auth.h>
+#include <mp.h>
+#include <libsec.h>
+#include "rsa2any.h"
+
+void
+usage(void)
+{
+ fprint(2, "usage: auth/rsa2asn1 [file]\n");
+ exits("usage");
+}
+
+void
+main(int argc, char **argv)
+{
+ uchar buf[16*1024];
+ RSApriv *k;
+ int n;
+
+ ARGBEGIN{
+ default:
+ usage();
+ }ARGEND
+
+ if(argc > 1)
+ usage();
+
+ if((k = getrsakey(argc, argv, 0, nil)) == nil)
+ sysfatal("%r");
+ if((n = asn1encodeRSApub(&k->pub, buf, sizeof(buf))) < 0)
+ sysfatal("asn1encodeRSApub: %r");
+ if(write(1, buf, n) != n)
+ sysfatal("write: %r");
+ exits(nil);
+}