Blob
1 #include <u.h>2 #include <libc.h>3 #include <bio.h>4 #include <auth.h>5 #include <mp.h>6 #include <libsec.h>7 #include "rsa2any.h"9 void10 usage(void)11 {12 fprint(2, "usage: aux/rsa2x509 [-e expireseconds] 'C=US ...CN=xxx' [key]");13 exits("usage");14 }16 void17 main(int argc, char **argv)18 {19 int len;20 uchar *cert;21 ulong valid[2];22 RSApriv *key;24 fmtinstall('B', mpfmt);25 fmtinstall('H', encodefmt);27 valid[0] = time(0);28 valid[1] = valid[0] + 3*366*24*60*60;30 ARGBEGIN{31 default:32 usage();33 case 'e':34 valid[1] = valid[0] + strtoul(ARGF(), 0, 10);35 break;36 }ARGEND38 if(argc != 1 && argc != 2)39 usage();41 if((key = getkey(argc-1, argv+1, 1, nil)) == nil)42 sysfatal("%r");44 cert = X509gen(key, argv[0], valid, &len);45 if(cert == nil)46 sysfatal("X509gen: %r");48 write(1, cert, len);49 exits(0);50 }