]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
aes: make the no-asm constant time code path not the default
authorPauli <pauli@openssl.org>
Thu, 27 Jan 2022 04:05:48 +0000 (15:05 +1100)
committerPauli <pauli@openssl.org>
Mon, 31 Jan 2022 00:39:00 +0000 (11:39 +1100)
After OMC and OTC discussions, the 95% performance loss resulting from
the constant time code was deemed excessive for something outside of
our security policy.

The option to use the constant time code exists as it was in OpenSSL 1.1.1.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/17600)

CHANGES.md
crypto/aes/aes_core.c

index a542e253749a107a1fb799a475721b49a3230d46..3799c28c97fa4a7d7dd2b213979996b35b712191 100644 (file)
@@ -90,6 +90,15 @@ breaking changes, and mappings for the large list of deprecated functions.
 
 [Migration guide]: https://github.com/openssl/openssl/tree/master/doc/man7/migration_guide.pod
 
+### Changes between 3.0.1 and 3.0.2 [xx XXX xxxx]
+
+ * Made the AES constant time code for no-asm configurations
+   optional due to the resulting 95% performance degradation.
+   The AES constant time code can be enabled, for no assembly
+   builds, with: ./config no-asm -DOPENSSL_AES_CONST_TIME
+
+   *Paul Dale*
+
 ### Changes between 3.0.0 and 3.0.1 [14 dec 2021]
 
  * Fixed invalid handling of X509_verify_cert() internal errors in libssl
index 7b9989fd470aa49dc2294de84d6bdc477f4869d2..d3eaab349f46f966fd1d1eb65268a9cc366e26a5 100644 (file)
@@ -50,7 +50,7 @@
 #include <openssl/aes.h>
 #include "aes_local.h"
 
-#if !defined(OPENSSL_NO_AES_CONST_TIME) && !defined(AES_ASM)
+#if defined(OPENSSL_AES_CONST_TIME) && !defined(AES_ASM)
 
 # if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__)
 #  define U64(C) C##UI64