Update all header guards.
[tinc] / src / openssl / rsagen.c
index 4a47619..78a22d9 100644 (file)
 #include <openssl/pem.h>
 #include <openssl/err.h>
 
-#define __TINC_RSA_INTERNAL__
+#define TINC_RSA_INTERNAL
 typedef RSA rsa_t;
 
 #include "../logger.h"
 #include "../rsagen.h"
+#include "../xalloc.h"
 
 /* This function prettyprints the key generation process */
 
@@ -89,11 +90,17 @@ rsa_t *rsa_generate(size_t bits, unsigned long exponent) {
        BN_set_word(bn_e, exponent);
        BN_GENCB_set(cb, indicator, NULL);
 
-       RSA_generate_key_ex(rsa, bits, bn_e, cb);
+       int result = RSA_generate_key_ex(rsa, bits, bn_e, cb);
 
        BN_GENCB_free(cb);
        BN_free(bn_e);
 
+       if(!result) {
+               fprintf(stderr, "Error during key generation!\n");
+               RSA_free(rsa);
+               return NULL;
+       }
+
        return rsa;
 }