mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 02:37:28 +02:00
LMS fixes
* Add support for CMake * Add support for Zephyr * Make sure the internal key state is properly handled in case a public key is imported into a reloaded private key. Signed-off-by: Tobias Frauenschläger <tobias.frauenschlaeger@oth-regensburg.de>
This commit is contained in:
@ -655,6 +655,16 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# LMS
|
||||||
|
add_option(WOLFSSL_LMS
|
||||||
|
"Enable the wolfSSL LMS implementation (default: disabled)"
|
||||||
|
"no" "yes;no")
|
||||||
|
|
||||||
|
# XMSS
|
||||||
|
add_option(WOLFSSL_XMSS
|
||||||
|
"Enable the wolfSSL XMSS implementation (default: disabled)"
|
||||||
|
"no" "yes;no")
|
||||||
|
|
||||||
# TODO: - Lean PSK
|
# TODO: - Lean PSK
|
||||||
# - Lean TLS
|
# - Lean TLS
|
||||||
# - Low resource
|
# - Low resource
|
||||||
@ -668,8 +678,6 @@ endif()
|
|||||||
# - Atomic user record layer
|
# - Atomic user record layer
|
||||||
# - Public key callbacks
|
# - Public key callbacks
|
||||||
# - Microchip/Atmel CryptoAuthLib
|
# - Microchip/Atmel CryptoAuthLib
|
||||||
# - XMSS
|
|
||||||
# - LMS
|
|
||||||
# - dual-certs
|
# - dual-certs
|
||||||
|
|
||||||
# AES-CBC
|
# AES-CBC
|
||||||
|
@ -208,6 +208,12 @@ function(generate_build_flags)
|
|||||||
set(BUILD_EXT_KYBER "yes" PARENT_SCOPE)
|
set(BUILD_EXT_KYBER "yes" PARENT_SCOPE)
|
||||||
set(BUILD_OQS_HELPER "yes" PARENT_SCOPE)
|
set(BUILD_OQS_HELPER "yes" PARENT_SCOPE)
|
||||||
endif()
|
endif()
|
||||||
|
if(WOLFSSL_LMS OR WOLFSSL_USER_SETTINGS)
|
||||||
|
set(BUILD_WC_LMS "yes" PARENT_SCOPE)
|
||||||
|
endif()
|
||||||
|
if(WOLFSSL_XMSS OR WOLFSSL_USER_SETTINGS)
|
||||||
|
set(BUILD_WC_XMSS "yes" PARENT_SCOPE)
|
||||||
|
endif()
|
||||||
if(WOLFSSL_ARIA OR WOLFSSL_USER_SETTINGS)
|
if(WOLFSSL_ARIA OR WOLFSSL_USER_SETTINGS)
|
||||||
message(STATUS "ARIA functions.cmake found WOLFSSL_ARIA")
|
message(STATUS "ARIA functions.cmake found WOLFSSL_ARIA")
|
||||||
# we cannot actually build, as we only have pre-compiled bin
|
# we cannot actually build, as we only have pre-compiled bin
|
||||||
@ -818,6 +824,16 @@ function(generate_lib_src_list LIB_SOURCES)
|
|||||||
list(APPEND LIB_SOURCES wolfcrypt/src/ext_kyber.c)
|
list(APPEND LIB_SOURCES wolfcrypt/src/ext_kyber.c)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(BUILD_WC_LMS)
|
||||||
|
list(APPEND LIB_SOURCES wolfcrypt/src/wc_lms.c)
|
||||||
|
list(APPEND LIB_SOURCES wolfcrypt/src/wc_lms_impl.c)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(BUILD_WC_XMSS)
|
||||||
|
list(APPEND LIB_SOURCES wolfcrypt/src/wc_xmss.c)
|
||||||
|
list(APPEND LIB_SOURCES wolfcrypt/src/wc_xmss_impl.c)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(BUILD_LIBZ)
|
if(BUILD_LIBZ)
|
||||||
list(APPEND LIB_SOURCES wolfcrypt/src/compress.c)
|
list(APPEND LIB_SOURCES wolfcrypt/src/compress.c)
|
||||||
endif()
|
endif()
|
||||||
|
@ -382,6 +382,14 @@ extern "C" {
|
|||||||
#cmakedefine HAVE_ECC_KOBLITZ
|
#cmakedefine HAVE_ECC_KOBLITZ
|
||||||
#undef HAVE_ECC_CDH
|
#undef HAVE_ECC_CDH
|
||||||
#cmakedefine HAVE_ECC_CDH
|
#cmakedefine HAVE_ECC_CDH
|
||||||
|
#undef WOLFSSL_HAVE_LMS
|
||||||
|
#cmakedefine WOLFSSL_HAVE_LMS
|
||||||
|
#undef WOLFSSL_WC_LMS
|
||||||
|
#cmakedefine WOLFSSL_WC_LMS
|
||||||
|
#undef WOLFSSL_HAVE_XMSS
|
||||||
|
#cmakedefine WOLFSSL_HAVE_XMSS
|
||||||
|
#undef WOLFSSL_WC_XMSS
|
||||||
|
#cmakedefine WOLFSSL_WC_XMSS
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
@ -1162,7 +1162,8 @@ int wc_LmsKey_ImportPubRaw(LmsKey* key, const byte* in, word32 inLen)
|
|||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
XMEMCPY(key->pub, in, inLen);
|
XMEMCPY(key->pub, in, inLen);
|
||||||
|
|
||||||
key->state = WC_LMS_STATE_VERIFYONLY;
|
if (key->state != WC_LMS_STATE_OK)
|
||||||
|
key->state = WC_LMS_STATE_VERIFYONLY;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -119,6 +119,8 @@ if(CONFIG_WOLFSSL)
|
|||||||
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.c)
|
||||||
zephyr_library_sources(${ZEPHYR_CURRENT_MODULE_DIR}/wolfcrypt/src/wc_kyber_poly.c)
|
zephyr_library_sources(${ZEPHYR_CURRENT_MODULE_DIR}/wolfcrypt/src/wc_kyber_poly.c)
|
||||||
|
zephyr_library_sources(${ZEPHYR_CURRENT_MODULE_DIR}/wolfcrypt/src/wc_lms.c)
|
||||||
|
zephyr_library_sources(${ZEPHYR_CURRENT_MODULE_DIR}/wolfcrypt/src/wc_lms_impl.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)
|
||||||
|
Reference in New Issue
Block a user