mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-02 12:14:38 +02:00
implement full support for --enable-intelasm --enable-linuxkm. also add --enable-curve25519=noasm to allow use of the existing NO_CURVED25519_X64 code path by the linuxkm build (fe_x25519_asm.S is not kernel-compatible).
This commit is contained in:
20
configure.ac
20
configure.ac
@@ -3852,6 +3852,17 @@ then
|
|||||||
ENABLED_CURVE25519=yes
|
ENABLED_CURVE25519=yes
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test "$ENABLED_CURVE25519" = "noasm"
|
||||||
|
then
|
||||||
|
AM_CFLAGS="$AM_CFLAGS -DNO_CURVED25519_X64"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$ENABLED_CURVE25519" = "yes" && test "$ENABLED_LINUXKM_DEFAULTS" = "yes"
|
||||||
|
then
|
||||||
|
ENABLED_CURVE25519=noasm
|
||||||
|
AM_CFLAGS="$AM_CFLAGS -DNO_CURVED25519_X64"
|
||||||
|
fi
|
||||||
|
|
||||||
AM_CFLAGS="$AM_CFLAGS -DHAVE_CURVE25519"
|
AM_CFLAGS="$AM_CFLAGS -DHAVE_CURVE25519"
|
||||||
AM_CCASFLAGS="$AM_CCASFLAGS -DHAVE_CURVE25519"
|
AM_CCASFLAGS="$AM_CCASFLAGS -DHAVE_CURVE25519"
|
||||||
ENABLED_FEMATH=yes
|
ENABLED_FEMATH=yes
|
||||||
@@ -5008,7 +5019,7 @@ AS_CASE([$FIPS_VERSION],
|
|||||||
|
|
||||||
AS_IF([test "x$ENABLED_ED25519" != "xyes"],
|
AS_IF([test "x$ENABLED_ED25519" != "xyes"],
|
||||||
[ENABLED_ED25519="yes"; AM_CFLAGS="$AM_CFLAGS -DHAVE_ED25519 -DHAVE_ED25519_KEY_IMPORT"])
|
[ENABLED_ED25519="yes"; AM_CFLAGS="$AM_CFLAGS -DHAVE_ED25519 -DHAVE_ED25519_KEY_IMPORT"])
|
||||||
AS_IF([test "x$ENABLED_CURVE25519" != "xyes"],
|
AS_IF([test "$ENABLED_CURVE25519" = "no"],
|
||||||
[ENABLED_CURVE25519="yes"; AM_CFLAGS="$AM_CFLAGS -DHAVE_CURVE25519"])
|
[ENABLED_CURVE25519="yes"; AM_CFLAGS="$AM_CFLAGS -DHAVE_CURVE25519"])
|
||||||
|
|
||||||
AS_IF([test "x$ENABLED_ED448" != "xyes"],
|
AS_IF([test "x$ENABLED_ED448" != "xyes"],
|
||||||
@@ -6047,7 +6058,7 @@ then
|
|||||||
ENABLED_ENCRYPT_THEN_MAC=yes
|
ENABLED_ENCRYPT_THEN_MAC=yes
|
||||||
AM_CFLAGS="$AM_CFLAGS -DHAVE_TLS_EXTENSIONS -DHAVE_SNI -DHAVE_MAX_FRAGMENT -DHAVE_TRUNCATED_HMAC -DHAVE_ALPN -DHAVE_TRUSTED_CA"
|
AM_CFLAGS="$AM_CFLAGS -DHAVE_TLS_EXTENSIONS -DHAVE_SNI -DHAVE_MAX_FRAGMENT -DHAVE_TRUNCATED_HMAC -DHAVE_ALPN -DHAVE_TRUSTED_CA"
|
||||||
# Check the ECC supported curves prereq
|
# Check the ECC supported curves prereq
|
||||||
AS_IF([test "x$ENABLED_ECC" != "xno" || test "x$ENABLED_CURVE25519" = "xyes" || test "x$ENABLED_CURVE448" = "xyes" || test "x$ENABLED_TLS13" = "xyes"],
|
AS_IF([test "x$ENABLED_ECC" != "xno" || test "$ENABLED_CURVE25519" != "no" || test "x$ENABLED_CURVE448" = "xyes" || test "x$ENABLED_TLS13" = "xyes"],
|
||||||
[ENABLED_SUPPORTED_CURVES=yes
|
[ENABLED_SUPPORTED_CURVES=yes
|
||||||
AM_CFLAGS="$AM_CFLAGS -DHAVE_SUPPORTED_CURVES"])
|
AM_CFLAGS="$AM_CFLAGS -DHAVE_SUPPORTED_CURVES"])
|
||||||
fi
|
fi
|
||||||
@@ -6880,7 +6891,7 @@ then
|
|||||||
AM_CFLAGS="$AM_CFLAGS -DHAVE_TLS_EXTENSIONS -DHAVE_SNI -DHAVE_MAX_FRAGMENT -DHAVE_TRUNCATED_HMAC"
|
AM_CFLAGS="$AM_CFLAGS -DHAVE_TLS_EXTENSIONS -DHAVE_SNI -DHAVE_MAX_FRAGMENT -DHAVE_TRUNCATED_HMAC"
|
||||||
|
|
||||||
# Check the ECC supported curves prereq
|
# Check the ECC supported curves prereq
|
||||||
AS_IF([test "x$ENABLED_ECC" != "xno" || test "x$ENABLED_CURVE25519" = "xyes"],
|
AS_IF([test "x$ENABLED_ECC" != "xno" || test "$ENABLED_CURVE25519" != "no"],
|
||||||
[ENABLED_SUPPORTED_CURVES=yes
|
[ENABLED_SUPPORTED_CURVES=yes
|
||||||
AM_CFLAGS="$AM_CFLAGS -DHAVE_SUPPORTED_CURVES"])
|
AM_CFLAGS="$AM_CFLAGS -DHAVE_SUPPORTED_CURVES"])
|
||||||
fi
|
fi
|
||||||
@@ -9337,7 +9348,8 @@ AM_CONDITIONAL([BUILD_ED25519],[test "x$ENABLED_ED25519" = "xyes" || test "x$ENA
|
|||||||
AM_CONDITIONAL([BUILD_ED25519_SMALL],[test "x$ENABLED_ED25519_SMALL" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
|
AM_CONDITIONAL([BUILD_ED25519_SMALL],[test "x$ENABLED_ED25519_SMALL" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
|
||||||
AM_CONDITIONAL([BUILD_FEMATH], [test "x$ENABLED_FEMATH" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
|
AM_CONDITIONAL([BUILD_FEMATH], [test "x$ENABLED_FEMATH" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
|
||||||
AM_CONDITIONAL([BUILD_GEMATH], [test "x$ENABLED_GEMATH" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
|
AM_CONDITIONAL([BUILD_GEMATH], [test "x$ENABLED_GEMATH" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
|
||||||
AM_CONDITIONAL([BUILD_CURVE25519],[test "x$ENABLED_CURVE25519" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
|
AM_CONDITIONAL([BUILD_CURVE25519],[test "$ENABLED_CURVE25519" != "no" || test "x$ENABLED_USERSETTINGS" = "xyes"])
|
||||||
|
AM_CONDITIONAL([BUILD_CURVE25519_INTELASM],[test "$ENABLED_CURVE25519" != "noasm" && test "$ENABLED_INTELASM" = "yes"])
|
||||||
AM_CONDITIONAL([BUILD_CURVE25519_SMALL],[test "x$ENABLED_CURVE25519_SMALL" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
|
AM_CONDITIONAL([BUILD_CURVE25519_SMALL],[test "x$ENABLED_CURVE25519_SMALL" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
|
||||||
AM_CONDITIONAL([BUILD_ED448],[test "x$ENABLED_ED448" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
|
AM_CONDITIONAL([BUILD_ED448],[test "x$ENABLED_ED448" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
|
||||||
AM_CONDITIONAL([BUILD_ED448_SMALL],[test "x$ENABLED_ED448_SMALL" = "xyes"])
|
AM_CONDITIONAL([BUILD_ED448_SMALL],[test "x$ENABLED_ED448_SMALL" = "xyes"])
|
||||||
|
@@ -338,6 +338,13 @@
|
|||||||
#else
|
#else
|
||||||
#include <asm/simd.h>
|
#include <asm/simd.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef CAN_SAVE_VECTOR_REGISTERS
|
||||||
|
#ifdef DEBUG_VECTOR_REGISTER_ACCESS_FUZZING
|
||||||
|
#define CAN_SAVE_VECTOR_REGISTERS() (can_save_vector_registers_x86() && (SAVE_VECTOR_REGISTERS2_fuzzer() == 0))
|
||||||
|
#else
|
||||||
|
#define CAN_SAVE_VECTOR_REGISTERS() can_save_vector_registers_x86()
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
#ifndef SAVE_VECTOR_REGISTERS
|
#ifndef SAVE_VECTOR_REGISTERS
|
||||||
#define SAVE_VECTOR_REGISTERS(fail_clause) { \
|
#define SAVE_VECTOR_REGISTERS(fail_clause) { \
|
||||||
int _svr_ret = save_vector_registers_x86(); \
|
int _svr_ret = save_vector_registers_x86(); \
|
||||||
@@ -369,6 +376,9 @@
|
|||||||
#ifndef SAVE_VECTOR_REGISTERS2
|
#ifndef SAVE_VECTOR_REGISTERS2
|
||||||
#define SAVE_VECTOR_REGISTERS2() save_vector_registers_arm()
|
#define SAVE_VECTOR_REGISTERS2() save_vector_registers_arm()
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef CAN_SAVE_VECTOR_REGISTERS
|
||||||
|
#define CAN_SAVE_VECTOR_REGISTERS() can_save_vector_registers_arm()
|
||||||
|
#endif
|
||||||
#ifndef RESTORE_VECTOR_REGISTERS
|
#ifndef RESTORE_VECTOR_REGISTERS
|
||||||
#define RESTORE_VECTOR_REGISTERS() restore_vector_registers_arm()
|
#define RESTORE_VECTOR_REGISTERS() restore_vector_registers_arm()
|
||||||
#endif
|
#endif
|
||||||
@@ -758,6 +768,7 @@
|
|||||||
|
|
||||||
extern __must_check int allocate_wolfcrypt_linuxkm_fpu_states(void);
|
extern __must_check int allocate_wolfcrypt_linuxkm_fpu_states(void);
|
||||||
extern void free_wolfcrypt_linuxkm_fpu_states(void);
|
extern void free_wolfcrypt_linuxkm_fpu_states(void);
|
||||||
|
extern __must_check int can_save_vector_registers_x86(void);
|
||||||
extern __must_check int save_vector_registers_x86(void);
|
extern __must_check int save_vector_registers_x86(void);
|
||||||
extern void restore_vector_registers_x86(void);
|
extern void restore_vector_registers_x86(void);
|
||||||
|
|
||||||
|
@@ -995,7 +995,7 @@ if BUILD_FEMATH
|
|||||||
if BUILD_CURVE25519_SMALL
|
if BUILD_CURVE25519_SMALL
|
||||||
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fe_low_mem.c
|
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fe_low_mem.c
|
||||||
else
|
else
|
||||||
if BUILD_INTELASM
|
if BUILD_CURVE25519_INTELASM
|
||||||
if !BUILD_X86_ASM
|
if !BUILD_X86_ASM
|
||||||
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fe_x25519_asm.S
|
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fe_x25519_asm.S
|
||||||
endif !BUILD_X86_ASM
|
endif !BUILD_X86_ASM
|
||||||
@@ -1025,7 +1025,7 @@ endif !BUILD_FIPS_V6
|
|||||||
else
|
else
|
||||||
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fe_operations.c
|
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fe_operations.c
|
||||||
endif !BUILD_ARMASM
|
endif !BUILD_ARMASM
|
||||||
endif !BUILD_INTELASM
|
endif !BUILD_CURVE25519_INTELASM
|
||||||
endif !BUILD_CURVE25519_SMALL
|
endif !BUILD_CURVE25519_SMALL
|
||||||
endif BUILD_FEMATH
|
endif BUILD_FEMATH
|
||||||
|
|
||||||
@@ -1035,7 +1035,7 @@ src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/ge_low_mem.c
|
|||||||
else
|
else
|
||||||
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/ge_operations.c
|
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/ge_operations.c
|
||||||
if !BUILD_FEMATH
|
if !BUILD_FEMATH
|
||||||
if BUILD_INTELASM
|
if BUILD_CURVE25519_INTELASM
|
||||||
if !BUILD_X86_ASM
|
if !BUILD_X86_ASM
|
||||||
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fe_x25519_asm.S
|
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fe_x25519_asm.S
|
||||||
endif !BUILD_X86_ASM
|
endif !BUILD_X86_ASM
|
||||||
@@ -1061,7 +1061,7 @@ else
|
|||||||
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fe_operations.c
|
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fe_operations.c
|
||||||
endif !BUILD_ARMASM
|
endif !BUILD_ARMASM
|
||||||
endif !BUILD_FIPS_V6
|
endif !BUILD_FIPS_V6
|
||||||
endif !BUILD_INTELASM
|
endif !BUILD_CURVE25519_INTELASM
|
||||||
endif !BUILD_FEMATH
|
endif !BUILD_FEMATH
|
||||||
endif !BUILD_ED25519_SMALL
|
endif !BUILD_ED25519_SMALL
|
||||||
endif BUILD_GEMATH
|
endif BUILD_GEMATH
|
||||||
|
@@ -272,6 +272,9 @@ WOLFSSL_LOCAL int wc_debug_CipherLifecycleFree(void **CipherLifecycleTag,
|
|||||||
#ifndef WC_DEBUG_VECTOR_REGISTERS_FUZZING_SEED
|
#ifndef WC_DEBUG_VECTOR_REGISTERS_FUZZING_SEED
|
||||||
#define WC_DEBUG_VECTOR_REGISTERS_FUZZING_SEED 0
|
#define WC_DEBUG_VECTOR_REGISTERS_FUZZING_SEED 0
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef CAN_SAVE_VECTOR_REGISTERS
|
||||||
|
#define CAN_SAVE_VECTOR_REGISTERS() (SAVE_VECTOR_REGISTERS2_fuzzer() == 0)
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef DEBUG_VECTOR_REGISTER_ACCESS
|
#ifdef DEBUG_VECTOR_REGISTER_ACCESS
|
||||||
|
@@ -1636,6 +1636,9 @@ typedef struct w64wrapper {
|
|||||||
#ifndef SAVE_VECTOR_REGISTERS2
|
#ifndef SAVE_VECTOR_REGISTERS2
|
||||||
#define SAVE_VECTOR_REGISTERS2() 0
|
#define SAVE_VECTOR_REGISTERS2() 0
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef CAN_SAVE_VECTOR_REGISTERS
|
||||||
|
#define CAN_SAVE_VECTOR_REGISTERS() 1
|
||||||
|
#endif
|
||||||
#ifndef WC_DEBUG_SET_VECTOR_REGISTERS_RETVAL
|
#ifndef WC_DEBUG_SET_VECTOR_REGISTERS_RETVAL
|
||||||
#define WC_DEBUG_SET_VECTOR_REGISTERS_RETVAL(x) WC_DO_NOTHING
|
#define WC_DEBUG_SET_VECTOR_REGISTERS_RETVAL(x) WC_DO_NOTHING
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user