From 5e37344b4ea2d68f188349b65f44e4babafe1451 Mon Sep 17 00:00:00 2001 From: JacobBarthelmeh Date: Mon, 17 Feb 2025 13:47:29 -0700 Subject: [PATCH 1/3] add assembly optimized build with sgx --- SGX_Linux/build.sh | 6 +++++- SGX_Linux/sgx_t.mk | 14 +++++++++++++- SGX_Linux/sgx_u.mk | 14 +++++++++++++- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/SGX_Linux/build.sh b/SGX_Linux/build.sh index 02812980f..a04a3cae2 100755 --- a/SGX_Linux/build.sh +++ b/SGX_Linux/build.sh @@ -5,6 +5,10 @@ if [ -z $1 ]; then exit 1 fi -make SGX_MODE=HW SGX_PRERELEASE=1 SGX_WOLFSSL_LIB=${1}IDE/LINUX-SGX/ WOLFSSL_ROOT=${1} SGX_DEBUG=0 HAVE_WOLFSSL_TEST=1 HAVE_WOLFSSL_BENCHMARK=1 HAVE_WOLFSSL_SP=1 +# Build without assembly optimizations +#make SGX_MODE=HW SGX_PRERELEASE=1 SGX_WOLFSSL_LIB=${1}IDE/LINUX-SGX/ WOLFSSL_ROOT=${1} SGX_DEBUG=0 HAVE_WOLFSSL_TEST=1 HAVE_WOLFSSL_BENCHMARK=1 HAVE_WOLFSSL_SP=1 + +# Build with assembly optimizations +make SGX_MODE=HW SGX_PRERELEASE=1 SGX_WOLFSSL_LIB=${1}IDE/LINUX-SGX/ WOLFSSL_ROOT=${1} SGX_DEBUG=0 HAVE_WOLFSSL_TEST=1 HAVE_WOLFSSL_BENCHMARK=1 HAVE_WOLFSSL_SP=1 HAVE_WOLFSSL_ASSEMBLY=1 exit 0 diff --git a/SGX_Linux/sgx_t.mk b/SGX_Linux/sgx_t.mk index 7153aa37e..0dd753e76 100644 --- a/SGX_Linux/sgx_t.mk +++ b/SGX_Linux/sgx_t.mk @@ -40,7 +40,8 @@ endif Crypto_Library_Name := sgx_tcrypto -Wolfssl_C_Extra_Flags := -DWOLFSSL_SGX +Wolfssl_C_Extra_Flags := -DWOLFSSL_SGX\ + -DWOLFSSL_CUSTOM_CONFIG Wolfssl_Include_Paths := -I$(WOLFSSL_ROOT)/ \ -I$(WOLFSSL_ROOT)/wolfcrypt/ @@ -60,6 +61,17 @@ ifeq ($(HAVE_WOLFSSL_BENCHMARK), 1) Wolfssl_C_Extra_Flags += -DHAVE_WOLFSSL_BENCHMARK endif +ifeq ($(HAVE_WOLFSSL_ASSEMBLY), 1) + Wolfssl_C_Extra_Flags += -DWOLFSSL_X86_64_BUILD\ + -DWOLFSSL_AESNI\ + -maes -masm=intel +ifeq ($(HAVE_WOLFSSL_SP), 1) + Wolfssl_C_Extra_Flags += -DWOLFSSL_SP_X86_64_ASM\ + -DWOLFSSL_SP_X86_64\ + -DWOLFSSL_SP_ASM +endif +endif + ifeq ($(HAVE_WOLFSSL_SP), 1) Wolfssl_C_Extra_Flags += -DWOLFSSL_HAVE_SP_RSA \ -DWOLFSSL_HAVE_SP_DH \ diff --git a/SGX_Linux/sgx_u.mk b/SGX_Linux/sgx_u.mk index b5792f17a..b594d00e5 100644 --- a/SGX_Linux/sgx_u.mk +++ b/SGX_Linux/sgx_u.mk @@ -38,7 +38,8 @@ else Urts_Library_Name := sgx_urts endif -Wolfssl_C_Extra_Flags := -DWOLFSSL_SGX +Wolfssl_C_Extra_Flags := -DWOLFSSL_SGX\ + -DWOLFSSL_CUSTOM_CONFIG Wolfssl_Include_Paths := -I$(WOLFSSL_ROOT)/ \ -I$(WOLFSSL_ROOT)/wolfcrypt/ @@ -52,6 +53,17 @@ ifeq ($(HAVE_WOLFSSL_BENCHMARK), 1) Wolfssl_C_Extra_Flags += -DHAVE_WOLFSSL_BENCHMARK endif +ifeq ($(HAVE_WOLFSSL_ASSEMBLY), 1) + Wolfssl_C_Extra_Flags += -DWOLFSSL_X86_64_BUILD\ + -DWOLFSSL_AESNI\ + -maes -masm=intel +ifeq ($(HAVE_WOLFSSL_SP), 1) + Wolfssl_C_Extra_Flags += -DWOLFSSL_SP_X86_64_ASM\ + -DWOLFSSL_SP_X86_64\ + -DWOLFSSL_SP_ASM +endif +endif + ifeq ($(HAVE_WOLFSSL_SP), 1) Wolfssl_C_Extra_Flags += -DWOLFSSL_HAVE_SP_RSA \ -DWOLFSSL_HAVE_SP_DH \ From 44e9ec751ae63f21b69ddd3a8b0f1d54ddb37908 Mon Sep 17 00:00:00 2001 From: JacobBarthelmeh Date: Mon, 17 Feb 2025 15:03:19 -0700 Subject: [PATCH 2/3] comment out sp-asm for now --- SGX_Linux/sgx_t.mk | 10 +++++----- SGX_Linux/sgx_u.mk | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/SGX_Linux/sgx_t.mk b/SGX_Linux/sgx_t.mk index 0dd753e76..d8e8bc63c 100644 --- a/SGX_Linux/sgx_t.mk +++ b/SGX_Linux/sgx_t.mk @@ -65,11 +65,11 @@ ifeq ($(HAVE_WOLFSSL_ASSEMBLY), 1) Wolfssl_C_Extra_Flags += -DWOLFSSL_X86_64_BUILD\ -DWOLFSSL_AESNI\ -maes -masm=intel -ifeq ($(HAVE_WOLFSSL_SP), 1) - Wolfssl_C_Extra_Flags += -DWOLFSSL_SP_X86_64_ASM\ - -DWOLFSSL_SP_X86_64\ - -DWOLFSSL_SP_ASM -endif +#ifeq ($(HAVE_WOLFSSL_SP), 1) +# Wolfssl_C_Extra_Flags += -DWOLFSSL_SP_X86_64_ASM\ +# -DWOLFSSL_SP_X86_64\ +# -DWOLFSSL_SP_ASM +#endif endif ifeq ($(HAVE_WOLFSSL_SP), 1) diff --git a/SGX_Linux/sgx_u.mk b/SGX_Linux/sgx_u.mk index b594d00e5..6077ea21c 100644 --- a/SGX_Linux/sgx_u.mk +++ b/SGX_Linux/sgx_u.mk @@ -57,11 +57,11 @@ ifeq ($(HAVE_WOLFSSL_ASSEMBLY), 1) Wolfssl_C_Extra_Flags += -DWOLFSSL_X86_64_BUILD\ -DWOLFSSL_AESNI\ -maes -masm=intel -ifeq ($(HAVE_WOLFSSL_SP), 1) - Wolfssl_C_Extra_Flags += -DWOLFSSL_SP_X86_64_ASM\ - -DWOLFSSL_SP_X86_64\ - -DWOLFSSL_SP_ASM -endif +#ifeq ($(HAVE_WOLFSSL_SP), 1) +# Wolfssl_C_Extra_Flags += -DWOLFSSL_SP_X86_64_ASM\ +# -DWOLFSSL_SP_X86_64\ +# -DWOLFSSL_SP_ASM +#endif endif ifeq ($(HAVE_WOLFSSL_SP), 1) From ee6fe76296c12f870fb3f584e83c299c18e1ed12 Mon Sep 17 00:00:00 2001 From: JacobBarthelmeh Date: Wed, 30 Apr 2025 01:16:49 -0600 Subject: [PATCH 3/3] update flags for assembly use with SGX --- SGX_Linux/build.sh | 2 ++ SGX_Linux/sgx_t.mk | 9 +++++---- SGX_Linux/sgx_u.mk | 13 +++++++------ 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/SGX_Linux/build.sh b/SGX_Linux/build.sh index a04a3cae2..f675ae842 100755 --- a/SGX_Linux/build.sh +++ b/SGX_Linux/build.sh @@ -6,9 +6,11 @@ if [ -z $1 ]; then fi # Build without assembly optimizations +#make SGX_MODE=HW SGX_PRERELEASE=1 SGX_WOLFSSL_LIB=${1}IDE/LINUX-SGX/ WOLFSSL_ROOT=${1} SGX_DEBUG=0 HAVE_WOLFSSL_TEST=1 HAVE_WOLFSSL_BENCHMARK=1 HAVE_WOLFSSL_SP=1 clean #make SGX_MODE=HW SGX_PRERELEASE=1 SGX_WOLFSSL_LIB=${1}IDE/LINUX-SGX/ WOLFSSL_ROOT=${1} SGX_DEBUG=0 HAVE_WOLFSSL_TEST=1 HAVE_WOLFSSL_BENCHMARK=1 HAVE_WOLFSSL_SP=1 # Build with assembly optimizations +make SGX_MODE=HW SGX_PRERELEASE=1 SGX_WOLFSSL_LIB=${1}IDE/LINUX-SGX/ WOLFSSL_ROOT=${1} SGX_DEBUG=0 HAVE_WOLFSSL_TEST=1 HAVE_WOLFSSL_BENCHMARK=1 HAVE_WOLFSSL_SP=1 HAVE_WOLFSSL_ASSEMBLY=1 clean make SGX_MODE=HW SGX_PRERELEASE=1 SGX_WOLFSSL_LIB=${1}IDE/LINUX-SGX/ WOLFSSL_ROOT=${1} SGX_DEBUG=0 HAVE_WOLFSSL_TEST=1 HAVE_WOLFSSL_BENCHMARK=1 HAVE_WOLFSSL_SP=1 HAVE_WOLFSSL_ASSEMBLY=1 exit 0 diff --git a/SGX_Linux/sgx_t.mk b/SGX_Linux/sgx_t.mk index d8e8bc63c..1334127c3 100644 --- a/SGX_Linux/sgx_t.mk +++ b/SGX_Linux/sgx_t.mk @@ -64,11 +64,12 @@ endif ifeq ($(HAVE_WOLFSSL_ASSEMBLY), 1) Wolfssl_C_Extra_Flags += -DWOLFSSL_X86_64_BUILD\ -DWOLFSSL_AESNI\ - -maes -masm=intel + -maes -mavx -mavx2 -msse4.2 + #ifeq ($(HAVE_WOLFSSL_SP), 1) -# Wolfssl_C_Extra_Flags += -DWOLFSSL_SP_X86_64_ASM\ -# -DWOLFSSL_SP_X86_64\ -# -DWOLFSSL_SP_ASM + Wolfssl_C_Extra_Flags += -DWOLFSSL_SP_X86_64_ASM\ + -DWOLFSSL_SP_X86_64\ + -DWOLFSSL_SP_ASM #endif endif diff --git a/SGX_Linux/sgx_u.mk b/SGX_Linux/sgx_u.mk index 6077ea21c..eb2c8deee 100644 --- a/SGX_Linux/sgx_u.mk +++ b/SGX_Linux/sgx_u.mk @@ -56,12 +56,13 @@ endif ifeq ($(HAVE_WOLFSSL_ASSEMBLY), 1) Wolfssl_C_Extra_Flags += -DWOLFSSL_X86_64_BUILD\ -DWOLFSSL_AESNI\ - -maes -masm=intel -#ifeq ($(HAVE_WOLFSSL_SP), 1) -# Wolfssl_C_Extra_Flags += -DWOLFSSL_SP_X86_64_ASM\ -# -DWOLFSSL_SP_X86_64\ -# -DWOLFSSL_SP_ASM -#endif + -maes -mavx -mavx2 -msse4.2 + +ifeq ($(HAVE_WOLFSSL_SP), 1) + Wolfssl_C_Extra_Flags += -DWOLFSSL_SP_X86_64_ASM\ + -DWOLFSSL_SP_X86_64\ + -DWOLFSSL_SP_ASM +endif endif ifeq ($(HAVE_WOLFSSL_SP), 1)