WolfSSL Kyber and CMake fixes

* Make sure wc_kyber implementation is compiled using CMake (also for
  Zephyr)
* Fix compilation issue when Liboqs is also enabled
* Fix WOLFSSL_INTEL_ASM and WOLFSSL_ARM_ASM CMake options

Signed-off-by: Tobias Frauenschläger
<tobias.frauenschlaeger@oth-regensburg.de>
pull/7773/head
Tobias Frauenschläger 2024-07-22 10:46:48 +02:00
parent a9ff7730ce
commit e2b642d4ab
3 changed files with 18 additions and 4 deletions

View File

@ -78,10 +78,10 @@ function(generate_build_flags)
if(WOLFSSL_AESCCM OR WOLFSSL_USER_SETTINGS) if(WOLFSSL_AESCCM OR WOLFSSL_USER_SETTINGS)
set(BUILD_AESCCM "yes" PARENT_SCOPE) set(BUILD_AESCCM "yes" PARENT_SCOPE)
endif() endif()
set(BUILD_ARM_ASM ${WOLFSSL_ARM_ASM} PARENT_SCOPE) set(BUILD_ARMASM ${WOLFSSL_ARM_ASM} PARENT_SCOPE)
set(BUILD_XILINX ${WOLFSSL_XILINX} PARENT_SCOPE) set(BUILD_XILINX ${WOLFSSL_XILINX} PARENT_SCOPE)
set(BUILD_AESNI ${WOLFSSL_AESNI} PARENT_SCOPE) set(BUILD_AESNI ${WOLFSSL_AESNI} PARENT_SCOPE)
set(BUILD_INTEL_ASM ${WOLFSSL_INTEL_ASM} PARENT_SCOPE) set(BUILD_INTELASM ${WOLFSSL_INTEL_ASM} PARENT_SCOPE)
set(BUILD_AFALG ${WOLFSSL_AFALG} PARENT_SCOPE) set(BUILD_AFALG ${WOLFSSL_AFALG} PARENT_SCOPE)
set(BUILD_DEVCRYPTO ${WOLFSSL_DEVCRYPTO} PARENT_SCOPE) set(BUILD_DEVCRYPTO ${WOLFSSL_DEVCRYPTO} PARENT_SCOPE)
if(WOLFSSL_CAMELLIA OR WOLFSSL_USER_SETTINGS) if(WOLFSSL_CAMELLIA OR WOLFSSL_USER_SETTINGS)
@ -198,6 +198,9 @@ function(generate_build_flags)
if(WOLFSSL_XCHACHA OR WOLFSSL_USER_SETTINGS) if(WOLFSSL_XCHACHA OR WOLFSSL_USER_SETTINGS)
set(BUILD_XCHACHA "yes" PARENT_SCOPE) set(BUILD_XCHACHA "yes" PARENT_SCOPE)
endif() endif()
if(WOLFSSL_KYBER OR WOLFSSL_USER_SETTINGS)
set(BUILD_WC_KYBER "yes" PARENT_SCOPE)
endif()
if(WOLFSSL_OQS OR WOLFSSL_USER_SETTINGS) if(WOLFSSL_OQS OR WOLFSSL_USER_SETTINGS)
set(BUILD_FALCON "yes" PARENT_SCOPE) set(BUILD_FALCON "yes" PARENT_SCOPE)
set(BUILD_SPHINCS "yes" PARENT_SCOPE) set(BUILD_SPHINCS "yes" PARENT_SCOPE)
@ -794,6 +797,15 @@ function(generate_lib_src_list LIB_SOURCES)
list(APPEND LIB_SOURCES wolfcrypt/src/dilithium.c) list(APPEND LIB_SOURCES wolfcrypt/src/dilithium.c)
endif() endif()
if(BUILD_WC_KYBER)
list(APPEND LIB_SOURCES wolfcrypt/src/wc_kyber.c)
list(APPEND LIB_SOURCES wolfcrypt/src/wc_kyber_poly.c)
if(BUILD_INTELASM)
list(APPEND LIB_SOURCES wolfcrypt/src/wc_kyber_asm.S)
endif()
endif()
if(BUILD_EXT_KYBER) if(BUILD_EXT_KYBER)
list(APPEND LIB_SOURCES wolfcrypt/src/ext_kyber.c) list(APPEND LIB_SOURCES wolfcrypt/src/ext_kyber.c)
endif() endif()

View File

@ -27,7 +27,7 @@
#include <wolfssl/wolfcrypt/error-crypt.h> #include <wolfssl/wolfcrypt/error-crypt.h>
#include <wolfssl/wolfcrypt/logging.h> #include <wolfssl/wolfcrypt/logging.h>
#ifdef WOLFSSL_HAVE_KYBER #if defined(WOLFSSL_HAVE_KYBER) && !defined(WOLFSSL_WC_KYBER)
#include <wolfssl/wolfcrypt/ext_kyber.h> #include <wolfssl/wolfcrypt/ext_kyber.h>
#ifdef NO_INLINE #ifdef NO_INLINE
@ -750,4 +750,4 @@ int wc_KyberKey_EncodePublicKey(KyberKey* key, unsigned char* out, word32 len)
return ret; return ret;
} }
#endif /* WOLFSSL_HAVE_KYBER */ #endif /* WOLFSSL_HAVE_KYBER && !WOLFSSL_WC_KYBER */

View File

@ -117,6 +117,8 @@ if(CONFIG_WOLFSSL)
zephyr_library_sources(${ZEPHYR_CURRENT_MODULE_DIR}/wolfcrypt/src/tfm.c) zephyr_library_sources(${ZEPHYR_CURRENT_MODULE_DIR}/wolfcrypt/src/tfm.c)
zephyr_library_sources(${ZEPHYR_CURRENT_MODULE_DIR}/wolfcrypt/src/wc_dsp.c) zephyr_library_sources(${ZEPHYR_CURRENT_MODULE_DIR}/wolfcrypt/src/wc_dsp.c)
zephyr_library_sources(${ZEPHYR_CURRENT_MODULE_DIR}/wolfcrypt/src/wc_encrypt.c) zephyr_library_sources(${ZEPHYR_CURRENT_MODULE_DIR}/wolfcrypt/src/wc_encrypt.c)
zephyr_library_sources(${ZEPHYR_CURRENT_MODULE_DIR}/wolfcrypt/src/wc_kyber.c)
zephyr_library_sources(${ZEPHYR_CURRENT_MODULE_DIR}/wolfcrypt/src/wc_kyber_poly.c)
zephyr_library_sources(${ZEPHYR_CURRENT_MODULE_DIR}/wolfcrypt/src/wc_pkcs11.c) zephyr_library_sources(${ZEPHYR_CURRENT_MODULE_DIR}/wolfcrypt/src/wc_pkcs11.c)
zephyr_library_sources(${ZEPHYR_CURRENT_MODULE_DIR}/wolfcrypt/src/wc_port.c) zephyr_library_sources(${ZEPHYR_CURRENT_MODULE_DIR}/wolfcrypt/src/wc_port.c)
zephyr_library_sources(${ZEPHYR_CURRENT_MODULE_DIR}/wolfcrypt/src/wolfevent.c) zephyr_library_sources(${ZEPHYR_CURRENT_MODULE_DIR}/wolfcrypt/src/wolfevent.c)