summaryrefslogtreecommitdiffstats
path: root/crypto/ec/curve448
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2021-04-19 17:31:28 +0100
committerMatt Caswell <matt@openssl.org>2021-04-22 08:31:26 +0100
commitcd28d129b6a5b84ac40b4a3f8060a6f764aa02b4 (patch)
tree3059bf5b12e8b654245d6b5729b0b536c2164e81 /crypto/ec/curve448
parentaf9fb19a476911bf7ceabcf3b21923dd5bbd9ac6 (diff)
Avoid the need for Configure time 128-bit int detection
We just detect this at compile time instead. This avoids cross-compilation problems where the host platform supports 128-bit ints, but the target platform does not (or vice versa). This was causing a problem on some platforms where, dependent on the CFLAGS, 128 bit ints were either supported or not. Fixes #14804 Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/14941)
Diffstat (limited to 'crypto/ec/curve448')
-rw-r--r--crypto/ec/curve448/arch_32/f_impl32.c (renamed from crypto/ec/curve448/arch_32/f_impl.c)11
-rw-r--r--crypto/ec/curve448/arch_64/f_impl64.c (renamed from crypto/ec/curve448/arch_64/f_impl.c)11
2 files changed, 20 insertions, 2 deletions
diff --git a/crypto/ec/curve448/arch_32/f_impl.c b/crypto/ec/curve448/arch_32/f_impl32.c
index 2e9419b66d..812c06d84a 100644
--- a/crypto/ec/curve448/arch_32/f_impl.c
+++ b/crypto/ec/curve448/arch_32/f_impl32.c
@@ -10,7 +10,15 @@
* Originally written by Mike Hamburg
*/
-#include "../field.h"
+#include "openssl/macros.h"
+#include "internal/numbers.h"
+
+#ifdef UINT128_MAX
+/* We have support for 128 bit ints, so do nothing here */
+NON_EMPTY_TRANSLATION_UNIT
+#else
+
+# include "../field.h"
void gf_mul(gf_s * RESTRICT cs, const gf as, const gf bs)
{
@@ -93,3 +101,4 @@ void gf_sqr(gf_s * RESTRICT cs, const gf as)
{
gf_mul(cs, as, as); /* Performs better with a dedicated square */
}
+#endif
diff --git a/crypto/ec/curve448/arch_64/f_impl.c b/crypto/ec/curve448/arch_64/f_impl64.c
index 035355cf04..bdafc0de92 100644
--- a/crypto/ec/curve448/arch_64/f_impl.c
+++ b/crypto/ec/curve448/arch_64/f_impl64.c
@@ -10,7 +10,15 @@
* Originally written by Mike Hamburg
*/
-#include "../field.h"
+#include "openssl/macros.h"
+#include "internal/numbers.h"
+
+#ifndef UINT128_MAX
+/* No support for 128 bit ints, so do nothing here */
+NON_EMPTY_TRANSLATION_UNIT
+#else
+
+# include "../field.h"
void gf_mul(gf_s * RESTRICT cs, const gf as, const gf bs)
{
@@ -198,3 +206,4 @@ void gf_sqr(gf_s * RESTRICT cs, const gf as)
c[4] += ((uint64_t)(accum0)) + ((uint64_t)(accum1));
c[0] += ((uint64_t)(accum1));
}
+#endif