]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Always Use EVP_aes_*_ctr() with openssl 1.1
authorNick Mathewson <nickm@torproject.org>
Mon, 7 Nov 2016 02:01:25 +0000 (21:01 -0500)
committerNick Mathewson <nickm@torproject.org>
Mon, 7 Nov 2016 02:01:25 +0000 (21:01 -0500)
(OpenSSL 1.1 makes EVP_CIPHER_CTX opaque, _and_ adds acceleration
for counter mode on more architectures.  So it won't work if we try
the older approach, and it might help if we try the newer one.)

Fixes bug 20588.

changes/bug20588 [new file with mode: 0644]
src/common/aes.c

diff --git a/changes/bug20588 b/changes/bug20588
new file mode 100644 (file)
index 0000000..be199b2
--- /dev/null
@@ -0,0 +1,3 @@
+  o Minor bugfixes (portability):
+    - Fix compilation with OpenSSL 1.1 and less commonly-used
+      CPU architectures. Closes ticket 20588.
index ef94d8a75c999c6bf03b7f407156750cbe473968..35c2d1e3a5c856e8623f40a4826a74d8693a12d7 100644 (file)
@@ -56,7 +56,14 @@ ENABLE_GCC_WARNING(redundant-decls)
  * gives us, and the best possible counter-mode implementation, and combine
  * them.
  */
-#if OPENSSL_VERSION_NUMBER >= OPENSSL_V_NOPATCH(1,0,1) &&               \
+#if OPENSSL_VERSION_NUMBER >= OPENSSL_V_NOPATCH(1,1,0)
+
+/* With newer OpenSSL versions, the older fallback modes don't compile.  So
+ * don't use them, even if we lack specific acceleration. */
+
+#define USE_EVP_AES_CTR
+
+#elif OPENSSL_VERSION_NUMBER >= OPENSSL_V_NOPATCH(1,0,1) &&               \
   (defined(__i386) || defined(__i386__) || defined(_M_IX86) ||          \
    defined(__x86_64) || defined(__x86_64__) ||                          \
    defined(_M_AMD64) || defined(_M_X64) || defined(__INTEL__))          \