#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/rsa2x509 [-e expireseconds] 'C=US ...CN=xxx' [key]"); | |
exits("usage"); | |
} | |
void | |
main(int argc, char **argv) | |
{ | |
int len; | |
uchar *cert; | |
ulong valid[2]; | |
RSApriv *key; | |
fmtinstall('B', mpfmt); | |
fmtinstall('H', encodefmt); | |
valid[0] = time(0); | |
valid[1] = valid[0] + 3*366*24*60*60; | |
ARGBEGIN{ | |
default: | |
usage(); | |
case 'e': | |
valid[1] = valid[0] + strtoul(ARGF(), 0, 10); | |
break; | |
}ARGEND | |
if(argc != 1 && argc != 2) | |
usage(); | |
if((key = getkey(argc-1, argv+1, 1, nil)) == nil) | |
sysfatal("%r"); | |
cert = X509gen(key, argv[0], valid, &len); | |
if(cert == nil) | |
sysfatal("X509gen: %r"); | |
write(1, cert, len); | |
exits(0); | |
} |