mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-12-24 01:35:46 +00:00
8abd0a0c84
* mbedtls-2.16: (28 commits) Bump version to Mbed TLS 2.16.3 Changelog entry Check for zero length and NULL buffer pointer ssl-opt.sh: wait for proxy to start before running the script further Fix uninitialized variable in x509_crt HMAC DRBG: Split entropy-gathering requests to reduce request sizes Fix the license header of hkdf Add a change log entry Add a test for mlaformed ECJPAKE context Fix handling of md failure Add a test for signing content with a long ECDSA key Add documentation notes about the required size of the signature buffers Add missing MBEDTLS_ECP_C dependencies in check_config.h Change size of preallocated buffer for pk_sign() calls Adapt ChangeLog Fix mpi_bigendian_to_host() on bigendian systems Add ChangeLog entry for new function Add ChangeLog entry Correct deterministic ECDSA behavior Add warning for alternative ECDSA implementations ...
190 lines
5.2 KiB
CMake
190 lines
5.2 KiB
CMake
option(USE_STATIC_MBEDTLS_LIBRARY "Build mbed TLS static library." ON)
|
|
option(USE_SHARED_MBEDTLS_LIBRARY "Build mbed TLS shared library." OFF)
|
|
option(LINK_WITH_PTHREAD "Explicitly link mbed TLS library to pthread." OFF)
|
|
|
|
set(src_crypto
|
|
aes.c
|
|
aesni.c
|
|
arc4.c
|
|
aria.c
|
|
asn1parse.c
|
|
asn1write.c
|
|
base64.c
|
|
bignum.c
|
|
blowfish.c
|
|
camellia.c
|
|
ccm.c
|
|
chacha20.c
|
|
chachapoly.c
|
|
cipher.c
|
|
cipher_wrap.c
|
|
cmac.c
|
|
ctr_drbg.c
|
|
des.c
|
|
dhm.c
|
|
ecdh.c
|
|
ecdsa.c
|
|
ecjpake.c
|
|
ecp.c
|
|
ecp_curves.c
|
|
entropy.c
|
|
entropy_poll.c
|
|
error.c
|
|
gcm.c
|
|
havege.c
|
|
hkdf.c
|
|
hmac_drbg.c
|
|
md.c
|
|
md2.c
|
|
md4.c
|
|
md5.c
|
|
md_wrap.c
|
|
memory_buffer_alloc.c
|
|
nist_kw.c
|
|
oid.c
|
|
padlock.c
|
|
pem.c
|
|
pk.c
|
|
pk_wrap.c
|
|
pkcs12.c
|
|
pkcs5.c
|
|
pkparse.c
|
|
pkwrite.c
|
|
platform.c
|
|
platform_util.c
|
|
poly1305.c
|
|
ripemd160.c
|
|
rsa.c
|
|
rsa_internal.c
|
|
sha1.c
|
|
sha256.c
|
|
sha512.c
|
|
threading.c
|
|
timing.c
|
|
version.c
|
|
version_features.c
|
|
xtea.c
|
|
)
|
|
|
|
set(src_x509
|
|
certs.c
|
|
pkcs11.c
|
|
x509.c
|
|
x509_create.c
|
|
x509_crl.c
|
|
x509_crt.c
|
|
x509_csr.c
|
|
x509write_crt.c
|
|
x509write_csr.c
|
|
)
|
|
|
|
set(src_tls
|
|
debug.c
|
|
net_sockets.c
|
|
ssl_cache.c
|
|
ssl_ciphersuites.c
|
|
ssl_cli.c
|
|
ssl_cookie.c
|
|
ssl_srv.c
|
|
ssl_ticket.c
|
|
ssl_tls.c
|
|
)
|
|
|
|
if(CMAKE_COMPILER_IS_GNUCC)
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-declarations -Wmissing-prototypes")
|
|
endif(CMAKE_COMPILER_IS_GNUCC)
|
|
|
|
if(CMAKE_COMPILER_IS_CLANG)
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-declarations -Wmissing-prototypes -Wdocumentation -Wno-documentation-deprecated-sync -Wunreachable-code")
|
|
endif(CMAKE_COMPILER_IS_CLANG)
|
|
|
|
if(UNSAFE_BUILD)
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error")
|
|
set(CMAKE_C_FLAGS_ASAN "${CMAKE_C_FLAGS_ASAN} -Wno-error")
|
|
set(CMAKE_C_FLAGS_ASANDBG "${CMAKE_C_FLAGS_ASANDBG} -Wno-error")
|
|
endif(UNSAFE_BUILD)
|
|
|
|
if(WIN32)
|
|
set(libs ${libs} ws2_32)
|
|
endif(WIN32)
|
|
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
|
SET(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> Scr <TARGET> <LINK_FLAGS> <OBJECTS>")
|
|
SET(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> Scr <TARGET> <LINK_FLAGS> <OBJECTS>")
|
|
SET(CMAKE_C_ARCHIVE_FINISH "<CMAKE_RANLIB> -no_warning_for_no_symbols -c <TARGET>")
|
|
SET(CMAKE_CXX_ARCHIVE_FINISH "<CMAKE_RANLIB> -no_warning_for_no_symbols -c <TARGET>")
|
|
endif()
|
|
|
|
if(HAIKU)
|
|
set(libs ${libs} network)
|
|
endif(HAIKU)
|
|
|
|
if(USE_PKCS11_HELPER_LIBRARY)
|
|
set(libs ${libs} pkcs11-helper)
|
|
endif(USE_PKCS11_HELPER_LIBRARY)
|
|
|
|
if(ENABLE_ZLIB_SUPPORT)
|
|
set(libs ${libs} ${ZLIB_LIBRARIES})
|
|
endif(ENABLE_ZLIB_SUPPORT)
|
|
|
|
if(LINK_WITH_PTHREAD)
|
|
set(libs ${libs} pthread)
|
|
endif()
|
|
|
|
set(libs ${libs} tinycrypt)
|
|
|
|
if (NOT USE_STATIC_MBEDTLS_LIBRARY AND NOT USE_SHARED_MBEDTLS_LIBRARY)
|
|
message(FATAL_ERROR "Need to choose static or shared mbedtls build!")
|
|
endif(NOT USE_STATIC_MBEDTLS_LIBRARY AND NOT USE_SHARED_MBEDTLS_LIBRARY)
|
|
|
|
if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY)
|
|
set(mbedtls_static_target "mbedtls_static")
|
|
set(mbedx509_static_target "mbedx509_static")
|
|
set(mbedcrypto_static_target "mbedcrypto_static")
|
|
elseif(USE_STATIC_MBEDTLS_LIBRARY)
|
|
set(mbedtls_static_target "mbedtls")
|
|
set(mbedx509_static_target "mbedx509")
|
|
set(mbedcrypto_static_target "mbedcrypto")
|
|
endif()
|
|
|
|
if(USE_STATIC_MBEDTLS_LIBRARY)
|
|
add_library(${mbedcrypto_static_target} STATIC ${src_crypto})
|
|
set_target_properties(${mbedcrypto_static_target} PROPERTIES OUTPUT_NAME mbedcrypto)
|
|
target_link_libraries(${mbedcrypto_static_target} ${libs})
|
|
|
|
add_library(${mbedx509_static_target} STATIC ${src_x509})
|
|
set_target_properties(${mbedx509_static_target} PROPERTIES OUTPUT_NAME mbedx509)
|
|
target_link_libraries(${mbedx509_static_target} ${libs} ${mbedcrypto_static_target})
|
|
|
|
add_library(${mbedtls_static_target} STATIC ${src_tls})
|
|
set_target_properties(${mbedtls_static_target} PROPERTIES OUTPUT_NAME mbedtls)
|
|
target_link_libraries(${mbedtls_static_target} ${libs} ${mbedx509_static_target})
|
|
|
|
install(TARGETS ${mbedtls_static_target} ${mbedx509_static_target} ${mbedcrypto_static_target}
|
|
DESTINATION ${LIB_INSTALL_DIR}
|
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
|
endif(USE_STATIC_MBEDTLS_LIBRARY)
|
|
|
|
if(USE_SHARED_MBEDTLS_LIBRARY)
|
|
add_library(mbedcrypto SHARED ${src_crypto})
|
|
set_target_properties(mbedcrypto PROPERTIES VERSION 2.16.3 SOVERSION 3)
|
|
target_link_libraries(mbedcrypto ${libs})
|
|
|
|
add_library(mbedx509 SHARED ${src_x509})
|
|
set_target_properties(mbedx509 PROPERTIES VERSION 2.16.3 SOVERSION 0)
|
|
target_link_libraries(mbedx509 ${libs} mbedcrypto)
|
|
|
|
add_library(mbedtls SHARED ${src_tls})
|
|
set_target_properties(mbedtls PROPERTIES VERSION 2.16.3 SOVERSION 12)
|
|
target_link_libraries(mbedtls ${libs} mbedx509)
|
|
|
|
install(TARGETS mbedtls mbedx509 mbedcrypto
|
|
DESTINATION ${LIB_INSTALL_DIR}
|
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
|
endif(USE_SHARED_MBEDTLS_LIBRARY)
|
|
|
|
add_custom_target(lib DEPENDS mbedcrypto mbedx509 mbedtls)
|
|
if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY)
|
|
add_dependencies(lib mbedcrypto_static mbedx509_static mbedtls_static)
|
|
endif()
|