]> source.dussan.org Git - rspamd.git/commitdiff
Check openssl version for using EVP.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 24 Sep 2013 14:49:07 +0000 (15:49 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 24 Sep 2013 14:49:07 +0000 (15:49 +0100)
src/main.c
src/rcl/rcl_util.c

index c2447454e68dfa614ca3f4032ac7a7921dff6d9d..4b78b417334c353256b37d689c9ac791995f653d 100644 (file)
@@ -891,6 +891,10 @@ perform_configs_sign (void)
        msg_err ("cannot sign files without openssl support");
        return EXIT_FAILURE;
 #else
+# if (OPENSSL_VERSION_NUMBER < 0x10000000L)
+       msg_err ("must have openssl at least 1.0.0 to perform this action");
+       return EXIT_FAILURE;
+# else
        gint                            i, tests_num, res = EXIT_SUCCESS, fd;
        guint                           diglen;
        gchar                          *cur_file, in_file[PATH_MAX],
@@ -1007,6 +1011,7 @@ perform_configs_sign (void)
        BIO_free (fbio);
 
        return res;
+# endif
 #endif
 }
 
index b1729fd279eba128337c1e9cdf71af0d3f569634..b5aabaf897516bbe9e114fcfcc7a3a0b7b17e451 100644 (file)
@@ -217,6 +217,10 @@ rspamd_cl_pubkey_add (struct rspamd_cl_parser *parser, const guchar *key, gsize
        g_set_error (err, RCL_ERROR, RSPAMD_CL_EINTERNAL, "cannot check signatures without openssl");
        return FALSE;
 #else
+# if (OPENSSL_VERSION_NUMBER < 0x10000000L)
+       g_set_error (err, RCL_ERROR, RSPAMD_CL_EINTERNAL, "cannot check signatures, openssl version is unsupported");
+       return EXIT_FAILURE;
+# else
        BIO *mem;
 
        mem = BIO_new_mem_buf ((void *)key, len);
@@ -230,6 +234,7 @@ rspamd_cl_pubkey_add (struct rspamd_cl_parser *parser, const guchar *key, gsize
                return FALSE;
        }
        LL_PREPEND (parser->keys, nkey);
+# endif
 #endif
        return TRUE;
 }
@@ -387,7 +392,7 @@ rspamd_cl_fetch_file (const guchar *filename, guchar **buf, gsize *buflen, GErro
 }
 
 
-#ifdef HAVE_OPENSSL
+#if (defined(HAVE_OPENSSL) && OPENSSL_VERSION_NUMBER >= 0x10000000L)
 static inline gboolean
 rspamd_cl_sig_check (const guchar *data, gsize datalen,
                const guchar *sig, gsize siglen, struct rspamd_cl_parser *parser)
@@ -461,7 +466,7 @@ rspamd_cl_include_url (const guchar *data, gsize len,
        }
 
        if (check_signature) {
-#ifdef HAVE_OPENSSL
+#if (defined(HAVE_OPENSSL) && OPENSSL_VERSION_NUMBER >= 0x10000000L)
                /* We need to check signature first */
                rspamd_snprintf (urlbuf, sizeof (urlbuf), "%*s.sig", len, data);
                if (!rspamd_cl_fetch_file (urlbuf, &sigbuf, &siglen, err)) {
@@ -523,7 +528,7 @@ rspamd_cl_include_file (const guchar *data, gsize len,
        }
 
        if (check_signature) {
-#ifdef HAVE_OPENSSL
+#if (defined(HAVE_OPENSSL) && OPENSSL_VERSION_NUMBER >= 0x10000000L)
                /* We need to check signature first */
                rspamd_snprintf (filebuf, sizeof (filebuf), "%s.sig", realbuf);
                if (!rspamd_cl_fetch_file (filebuf, &sigbuf, &siglen, err)) {