plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

rsa2csr.c (621B)


      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"
      8 
      9 void
     10 usage(void)
     11 {
     12 	fprint(2, "usage: aux/rsa2csr 'C=US ...CN=xxx' [key]");
     13 	exits("usage");
     14 }
     15 
     16 void
     17 main(int argc, char **argv)
     18 {
     19 	int len;
     20 	uchar *cert;
     21 	RSApriv *key;
     22 
     23 	fmtinstall('B', mpfmt);
     24 	fmtinstall('H', encodefmt);
     25 
     26 	ARGBEGIN{
     27 	default:
     28 		usage();
     29 	}ARGEND
     30 
     31 	if(argc != 1 && argc != 2)
     32 		usage();
     33 
     34 	if((key = getkey(argc-1, argv+1, 1, nil)) == nil)
     35 		sysfatal("%r");
     36 
     37 	cert = X509req(key, argv[0], &len);
     38 	if(cert == nil)
     39 		sysfatal("X509req: %r");
     40 
     41 	write(1, cert, len);
     42 	exits(0);
     43 }