aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/auth/rsa2csr.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2005-02-13 18:04:20 +0000
committerrsc <devnull@localhost>2005-02-13 18:04:20 +0000
commit57fcfc2a0b8ecd266ce130dab9a29b7ceb558d64 (patch)
tree2d7dc505e9bda2e49efdc13ed459d7e2fad5f579 /src/cmd/auth/rsa2csr.c
parentce94dbe662155bd60d6839b5e8c82ad708667bcd (diff)
downloadplan9port-57fcfc2a0b8ecd266ce130dab9a29b7ceb558d64.tar.gz
plan9port-57fcfc2a0b8ecd266ce130dab9a29b7ceb558d64.tar.bz2
plan9port-57fcfc2a0b8ecd266ce130dab9a29b7ceb558d64.zip
add others
Diffstat (limited to 'src/cmd/auth/rsa2csr.c')
-rw-r--r--src/cmd/auth/rsa2csr.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/cmd/auth/rsa2csr.c b/src/cmd/auth/rsa2csr.c
new file mode 100644
index 00000000..cba3f2d3
--- /dev/null
+++ b/src/cmd/auth/rsa2csr.c
@@ -0,0 +1,43 @@
+#include <u.h>
+#include <libc.h>
+#include <bio.h>
+#include <auth.h>
+#include <mp.h>
+#include <libsec.h>
+#include "rsa2any.h"
+
+void
+usage(void)
+{
+ fprint(2, "usage: aux/rsa2csr 'C=US ...CN=xxx' [key]");
+ exits("usage");
+}
+
+void
+main(int argc, char **argv)
+{
+ int len;
+ uchar *cert;
+ RSApriv *key;
+
+ fmtinstall('B', mpfmt);
+ fmtinstall('H', encodefmt);
+
+ ARGBEGIN{
+ default:
+ usage();
+ }ARGEND
+
+ if(argc != 1 && argc != 2)
+ usage();
+
+ if((key = getkey(argc-1, argv+1, 1, nil)) == nil)
+ sysfatal("%r");
+
+ cert = X509req(key, argv[0], &len);
+ if(cert == nil)
+ sysfatal("X509req: %r");
+
+ write(1, cert, len);
+ exits(0);
+}