diff --git a/cmake/functions.cmake b/cmake/functions.cmake index ebba36948b..0fa91a6e15 100644 --- a/cmake/functions.cmake +++ b/cmake/functions.cmake @@ -78,10 +78,10 @@ function(generate_build_flags) if(WOLFSSL_AESCCM OR WOLFSSL_USER_SETTINGS) set(BUILD_AESCCM "yes" PARENT_SCOPE) 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_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_DEVCRYPTO ${WOLFSSL_DEVCRYPTO} PARENT_SCOPE) if(WOLFSSL_CAMELLIA OR WOLFSSL_USER_SETTINGS) @@ -198,6 +198,9 @@ function(generate_build_flags) if(WOLFSSL_XCHACHA OR WOLFSSL_USER_SETTINGS) set(BUILD_XCHACHA "yes" PARENT_SCOPE) endif() + if(WOLFSSL_KYBER OR WOLFSSL_USER_SETTINGS) + set(BUILD_WC_KYBER "yes" PARENT_SCOPE) + endif() if(WOLFSSL_OQS OR WOLFSSL_USER_SETTINGS) set(BUILD_FALCON "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) 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) list(APPEND LIB_SOURCES wolfcrypt/src/ext_kyber.c) endif() diff --git a/wolfcrypt/src/ext_kyber.c b/wolfcrypt/src/ext_kyber.c index 30d2260b99..4f1a754df7 100644 --- a/wolfcrypt/src/ext_kyber.c +++ b/wolfcrypt/src/ext_kyber.c @@ -27,7 +27,7 @@ #include #include -#ifdef WOLFSSL_HAVE_KYBER +#if defined(WOLFSSL_HAVE_KYBER) && !defined(WOLFSSL_WC_KYBER) #include #ifdef NO_INLINE @@ -750,4 +750,4 @@ int wc_KyberKey_EncodePublicKey(KyberKey* key, unsigned char* out, word32 len) return ret; } -#endif /* WOLFSSL_HAVE_KYBER */ +#endif /* WOLFSSL_HAVE_KYBER && !WOLFSSL_WC_KYBER */ diff --git a/zephyr/CMakeLists.txt b/zephyr/CMakeLists.txt index ed5900aaec..905f6cf113 100644 --- a/zephyr/CMakeLists.txt +++ b/zephyr/CMakeLists.txt @@ -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/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_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_port.c) zephyr_library_sources(${ZEPHYR_CURRENT_MODULE_DIR}/wolfcrypt/src/wolfevent.c)