]> mj.ucw.cz Git - moe.git/blob - submit/privkey.c
Added a simple utility for key generation.
[moe.git] / submit / privkey.c
1 /*
2  *  This is a trivial private key generator using a less secure
3  *  random generator (/dev/urandom). This should be safe enough
4  *  for the short-lived contest keys and it helps us to avoid
5  *  spending hours by generating super-safe random numbers.
6  *
7  *  (c) 2007 Martin Mares <mj@ucw.cz>
8  */
9
10 #include "lib/lib.h"
11
12 #include <stdio.h>
13 #include <sys/types.h>
14 #include <gnutls/gnutls.h>
15 #include <gnutls/x509.h>
16 #include <gcrypt.h>
17
18 int main(void)
19 {
20   gnutls_x509_privkey key;
21   int err;
22
23   gnutls_global_init();
24   gcry_control(GCRYCTL_ENABLE_QUICK_RANDOM);
25   err = gnutls_x509_privkey_init(&key);
26   if (err < 0)
27     die("privkey_init: %s", gnutls_strerror(err));
28   err = gnutls_x509_privkey_generate(key, GNUTLS_PK_RSA, 1024, 0);
29   if (err < 0)
30     die("privkey_generate: %s", gnutls_strerror(err));
31
32   byte buf[32768];
33   size_t size = sizeof(buf);
34   err = gnutls_x509_privkey_export(key, GNUTLS_X509_FMT_PEM, buf, &size);
35   if (err < 0)
36     die("privkey_export: %s", gnutls_strerror(err));
37   puts(buf);
38
39   return 0;
40 }