mirror of
https://github.com/espressif/ESP8266_RTOS_SDK.git
synced 2025-10-20 05:23:44 +08:00

It is that maybe less modification working on the components is better, so I just modified the platform code of AES, SHA and so on. ESP8266 has no real hardware AES, SHA or bignum peripheral, but some method can speed up the process of part of upper algorithm, so I also added the platform code of AES, SHA, bignum, ARC, MD5. ESP8266 has no platform of bignum, so users should not enable the bignum hardware at "menuconfig".
109 lines
3.2 KiB
CMake
109 lines
3.2 KiB
CMake
set(SRC libsodium/src/libsodium)
|
|
|
|
set(COMPONENT_REQUIRES "mbedtls")
|
|
|
|
set(COMPONENT_SRCDIRS
|
|
port
|
|
# Derived from libsodium/src/libsodium/Makefile.am
|
|
# (ignoring the !MINIMAL set)
|
|
${SRC}/crypto_aead/chacha20poly1305/sodium
|
|
${SRC}/crypto_aead/xchacha20poly1305/sodium
|
|
${SRC}/crypto_auth
|
|
${SRC}/crypto_auth/hmacsha256
|
|
${SRC}/crypto_auth/hmacsha512
|
|
${SRC}/crypto_auth/hmacsha512256
|
|
${SRC}/crypto_box
|
|
${SRC}/crypto_box/curve25519xsalsa20poly1305
|
|
${SRC}/crypto_core/curve25519/ref10
|
|
${SRC}/crypto_core/hchacha20
|
|
${SRC}/crypto_core/hsalsa20/ref2
|
|
${SRC}/crypto_core/hsalsa20
|
|
${SRC}/crypto_core/salsa/ref
|
|
${SRC}/crypto_generichash
|
|
${SRC}/crypto_generichash/blake2b
|
|
${SRC}/crypto_generichash/blake2b/ref
|
|
${SRC}/crypto_hash
|
|
${SRC}/crypto_hash/sha256
|
|
${SRC}/crypto_hash/sha512
|
|
${SRC}/crypto_kdf/blake2b
|
|
${SRC}/crypto_kdf
|
|
${SRC}/crypto_kx
|
|
${SRC}/crypto_onetimeauth
|
|
${SRC}/crypto_onetimeauth/poly1305
|
|
${SRC}/crypto_onetimeauth/poly1305/donna
|
|
${SRC}/crypto_pwhash/argon2
|
|
${SRC}/crypto_pwhash
|
|
${SRC}/crypto_pwhash/scryptsalsa208sha256
|
|
${SRC}/crypto_pwhash/scryptsalsa208sha256/nosse
|
|
${SRC}/crypto_scalarmult
|
|
${SRC}/crypto_scalarmult/curve25519
|
|
${SRC}/crypto_scalarmult/curve25519/ref10
|
|
${SRC}/crypto_secretbox
|
|
${SRC}/crypto_secretbox/xsalsa20poly1305
|
|
${SRC}/crypto_shorthash
|
|
${SRC}/crypto_shorthash/siphash24
|
|
${SRC}/crypto_shorthash/siphash24/ref
|
|
${SRC}/crypto_sign
|
|
${SRC}/crypto_sign/ed25519
|
|
${SRC}/crypto_sign/ed25519/ref10
|
|
${SRC}/crypto_stream/chacha20
|
|
${SRC}/crypto_stream/chacha20/ref
|
|
${SRC}/crypto_stream
|
|
${SRC}/crypto_stream/salsa20
|
|
${SRC}/crypto_stream/salsa20/ref
|
|
${SRC}/crypto_stream/xsalsa20
|
|
${SRC}/crypto_verify/sodium
|
|
${SRC}/randombytes
|
|
${SRC}/sodium
|
|
)
|
|
|
|
if(CONFIG_LIBSODIUM_USE_MBEDTLS_SHA)
|
|
set(COMPONENT_SRCDIRS ${COMPONENT_SRCDIRS}
|
|
port/crypto_hash_mbedtls
|
|
)
|
|
else()
|
|
set(COMPONENT_SRCDIRS ${COMPONENT_SRCDIRS}
|
|
${SRC}/crypto_hash/sha256/cp
|
|
${SRC}/crypto_hash/sha512/cp
|
|
)
|
|
endif()
|
|
|
|
set(COMPONENT_ADD_INCLUDEDIRS ${SRC}/include port_include)
|
|
set(COMPONENT_PRIV_INCLUDEDIRS ${SRC}/include/sodium port_include/sodium port)
|
|
|
|
set(COMPONENT_REQUIRES "tcp_transport")
|
|
|
|
register_component()
|
|
|
|
component_compile_definitions(
|
|
CONFIGURED
|
|
NATIVE_LITTLE_ENDIAN
|
|
HAVE_WEAK_SYMBOLS
|
|
__STDC_LIMIT_MACROS
|
|
__STDC_CONSTANT_MACROS
|
|
)
|
|
|
|
component_compile_options(-Wno-unknown-pragmas)
|
|
|
|
# patch around warnings in third-party files
|
|
set_source_files_properties(
|
|
${SRC}/crypto_pwhash/argon2/argon2-fill-block-ref.c
|
|
${SRC}/crypto_pwhash/argon2/pwhash_argon2i.c
|
|
${SRC}/crypto_pwhash/argon2/argon2-core.c
|
|
${SRC}/crypto_pwhash/scryptsalsa208sha256/pwhash_scryptsalsa208sha256.c
|
|
PROPERTIES COMPILE_FLAGS
|
|
-Wno-type-limits
|
|
)
|
|
set_source_files_properties(
|
|
${SRC}/sodium/utils.c
|
|
PROPERTIES COMPILE_FLAGS
|
|
-Wno-unused-variable
|
|
)
|
|
|
|
# Temporary suppress "fallthrough" warnings until they are fixed in libsodium repo
|
|
set_source_files_properties(
|
|
${SRC}/crypto_shorthash/siphash24/ref/shorthash_siphashx24_ref.c
|
|
${SRC}/crypto_shorthash/siphash24/ref/shorthash_siphash24_ref.c
|
|
PROPERTIES COMPILE_FLAGS
|
|
-Wno-implicit-fallthrough)
|