aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt6
-rw-r--r--apps/ocspcheck/CMakeLists.txt2
-rw-r--r--apps/openssl/CMakeLists.txt2
-rw-r--r--crypto/CMakeLists.txt111
-rw-r--r--ssl/CMakeLists.txt2
-rw-r--r--tls/CMakeLists.txt30
6 files changed, 63 insertions, 90 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ac3e5a0..32b5b15 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -413,11 +413,11 @@ set(LIBTLS_LIBS tls ${PLATFORM_LIBS})
413 413
414# libraries for regression test 414# libraries for regression test
415if(BUILD_SHARED_LIBS) 415if(BUILD_SHARED_LIBS)
416 set(OPENSSL_TEST_LIBS ssl-static crypto-static ${PLATFORM_LIBS}) 416 set(OPENSSL_TEST_LIBS ssl-static crypto-static ${PLATFORM_LIBS} compat_obj)
417 set(LIBTLS_TEST_LIBS tls-static ${OPENSSL_TEST_LIBS}) 417 set(LIBTLS_TEST_LIBS tls-static ${OPENSSL_TEST_LIBS})
418else() 418else()
419 set(OPENSSL_TEST_LIBS ssl crypto ${PLATFORM_LIBS}) 419 set(OPENSSL_TEST_LIBS ssl crypto ${PLATFORM_LIBS} compat_obj)
420 set(LIBTLS_TEST_LIBS tls ${PLATFORM_LIBS}) 420 set(LIBTLS_TEST_LIBS tls ${PLATFORM_LIBS} compat_obj)
421endif() 421endif()
422 422
423if(OPENSSLDIR STREQUAL "") 423if(OPENSSLDIR STREQUAL "")
diff --git a/apps/ocspcheck/CMakeLists.txt b/apps/ocspcheck/CMakeLists.txt
index 41c7845..778e837 100644
--- a/apps/ocspcheck/CMakeLists.txt
+++ b/apps/ocspcheck/CMakeLists.txt
@@ -20,7 +20,7 @@ target_include_directories(ocspcheck
20 PUBLIC 20 PUBLIC
21 ../../include 21 ../../include
22 ${CMAKE_BINARY_DIR}/include) 22 ${CMAKE_BINARY_DIR}/include)
23target_link_libraries(ocspcheck tls ${OPENSSL_LIBS}) 23target_link_libraries(ocspcheck tls ${OPENSSL_LIBS} compat_obj tls_compat_obj)
24 24
25if(ENABLE_LIBRESSL_INSTALL) 25if(ENABLE_LIBRESSL_INSTALL)
26 install(TARGETS ocspcheck DESTINATION ${CMAKE_INSTALL_BINDIR}) 26 install(TARGETS ocspcheck DESTINATION ${CMAKE_INSTALL_BINDIR})
diff --git a/apps/openssl/CMakeLists.txt b/apps/openssl/CMakeLists.txt
index efea217..f2dcf97 100644
--- a/apps/openssl/CMakeLists.txt
+++ b/apps/openssl/CMakeLists.txt
@@ -75,7 +75,7 @@ target_include_directories(openssl
75 PUBLIC 75 PUBLIC
76 ../../include 76 ../../include
77 ${CMAKE_BINARY_DIR}/include) 77 ${CMAKE_BINARY_DIR}/include)
78target_link_libraries(openssl ${OPENSSL_LIBS}) 78target_link_libraries(openssl ${OPENSSL_LIBS} compat_obj)
79 79
80if(ENABLE_LIBRESSL_INSTALL) 80if(ENABLE_LIBRESSL_INSTALL)
81 install(TARGETS openssl DESTINATION ${CMAKE_INSTALL_BINDIR}) 81 install(TARGETS openssl DESTINATION ${CMAKE_INSTALL_BINDIR})
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt
index 8046efe..496d64b 100644
--- a/crypto/CMakeLists.txt
+++ b/crypto/CMakeLists.txt
@@ -734,6 +734,8 @@ set(
734 x509/x_all.c 734 x509/x_all.c
735) 735)
736 736
737set(COMPAT_SRC "")
738
737if(UNIX) 739if(UNIX)
738 set(CRYPTO_SRC ${CRYPTO_SRC} crypto_lock.c) 740 set(CRYPTO_SRC ${CRYPTO_SRC} crypto_lock.c)
739 set(CRYPTO_SRC ${CRYPTO_SRC} bio/b_posix.c) 741 set(CRYPTO_SRC ${CRYPTO_SRC} bio/b_posix.c)
@@ -749,38 +751,19 @@ if(WIN32)
749endif() 751endif()
750 752
751if(WIN32) 753if(WIN32)
752 set(CRYPTO_SRC ${CRYPTO_SRC} compat/posix_win.c) 754 set(COMPAT_SRC ${COMPAT_SRC} compat/posix_win.c)
753 set(EXTRA_EXPORT ${EXTRA_EXPORT} gettimeofday)
754 set(EXTRA_EXPORT ${EXTRA_EXPORT} getuid)
755 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_perror)
756 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_fopen)
757 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_fgets)
758 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_open)
759 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_rename)
760 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_connect)
761 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_close)
762 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_read)
763 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_write)
764 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_getsockopt)
765 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_setsockopt)
766endif() 755endif()
767 756
768if(NOT HAVE_ASPRINTF) 757if(NOT HAVE_ASPRINTF)
769 set(CRYPTO_SRC ${CRYPTO_SRC} compat/bsd-asprintf.c) 758 set(COMPAT_SRC ${COMPAT_SRC} compat/bsd-asprintf.c)
770 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_asprintf)
771 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_vasprintf)
772endif() 759endif()
773 760
774if(NOT HAVE_FREEZERO) 761if(NOT HAVE_FREEZERO)
775 set(CRYPTO_SRC ${CRYPTO_SRC} compat/freezero.c) 762 set(COMPAT_SRC ${COMPAT_SRC} compat/freezero.c)
776 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_freezero)
777endif() 763endif()
778 764
779if(NOT HAVE_GETOPT) 765if(NOT HAVE_GETOPT)
780 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getopt_long.c) 766 set(COMPAT_SRC ${COMPAT_SRC} compat/getopt_long.c)
781 set(EXTRA_EXPORT ${EXTRA_EXPORT} getopt)
782 set(EXTRA_EXPORT ${EXTRA_EXPORT} optarg)
783 set(EXTRA_EXPORT ${EXTRA_EXPORT} optind)
784endif() 767endif()
785 768
786if(NOT HAVE_GETPAGESIZE) 769if(NOT HAVE_GETPAGESIZE)
@@ -798,47 +781,38 @@ if(NOT HAVE_GETPROGNAME)
798endif() 781endif()
799 782
800if(NOT HAVE_REALLOCARRAY) 783if(NOT HAVE_REALLOCARRAY)
801 set(CRYPTO_SRC ${CRYPTO_SRC} compat/reallocarray.c) 784 set(COMPAT_SRC ${COMPAT_SRC} compat/reallocarray.c)
802 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_reallocarray)
803endif() 785endif()
804 786
805if(NOT HAVE_RECALLOCARRAY) 787if(NOT HAVE_RECALLOCARRAY)
806 set(CRYPTO_SRC ${CRYPTO_SRC} compat/recallocarray.c) 788 set(COMPAT_SRC ${COMPAT_SRC} compat/recallocarray.c)
807 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_recallocarray)
808endif() 789endif()
809 790
810if(NOT HAVE_STRCASECMP) 791if(NOT HAVE_STRCASECMP)
811 set(CRYPTO_SRC ${CRYPTO_SRC} compat/strcasecmp.c) 792 set(COMPAT_SRC ${COMPAT_SRC} compat/strcasecmp.c)
812 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strcasecmp)
813endif() 793endif()
814 794
815if(NOT HAVE_STRLCAT) 795if(NOT HAVE_STRLCAT)
816 set(CRYPTO_SRC ${CRYPTO_SRC} compat/strlcat.c) 796 set(COMPAT_SRC ${COMPAT_SRC} compat/strlcat.c)
817 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strlcat)
818endif() 797endif()
819 798
820if(NOT HAVE_STRLCPY) 799if(NOT HAVE_STRLCPY)
821 set(CRYPTO_SRC ${CRYPTO_SRC} compat/strlcpy.c) 800 set(COMPAT_SRC ${COMPAT_SRC} compat/strlcpy.c)
822 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strlcpy)
823endif() 801endif()
824 802
825if(NOT HAVE_STRNDUP) 803if(NOT HAVE_STRNDUP)
826 set(CRYPTO_SRC ${CRYPTO_SRC} compat/strndup.c) 804 set(COMPAT_SRC ${COMPAT_SRC} compat/strndup.c)
827 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strndup)
828 if(NOT HAVE_STRNLEN) 805 if(NOT HAVE_STRNLEN)
829 set(CRYPTO_SRC ${CRYPTO_SRC} compat/strnlen.c) 806 set(COMPAT_SRC ${COMPAT_SRC} compat/strnlen.c)
830 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strnlen)
831 endif() 807 endif()
832endif() 808endif()
833 809
834if(NOT HAVE_STRSEP) 810if(NOT HAVE_STRSEP)
835 set(CRYPTO_SRC ${CRYPTO_SRC} compat/strsep.c) 811 set(COMPAT_SRC ${COMPAT_SRC} compat/strsep.c)
836 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strsep)
837endif() 812endif()
838 813
839if(NOT HAVE_STRTONUM) 814if(NOT HAVE_STRTONUM)
840 set(CRYPTO_SRC ${CRYPTO_SRC} compat/strtonum.c) 815 set(COMPAT_SRC ${COMPAT_SRC} compat/strtonum.c)
841 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strtonum)
842endif() 816endif()
843 817
844if(NOT HAVE_SYSLOG_R) 818if(NOT HAVE_SYSLOG_R)
@@ -846,57 +820,49 @@ if(NOT HAVE_SYSLOG_R)
846endif() 820endif()
847 821
848if(NOT HAVE_TIMEGM) 822if(NOT HAVE_TIMEGM)
849 set(CRYPTO_SRC ${CRYPTO_SRC} compat/timegm.c) 823 set(COMPAT_SRC ${COMPAT_SRC} compat/timegm.c)
850 set(EXTRA_EXPORT ${EXTRA_EXPORT} timegm)
851endif() 824endif()
852 825
853if(NOT HAVE_EXPLICIT_BZERO) 826if(NOT HAVE_EXPLICIT_BZERO)
854 if(WIN32) 827 if(WIN32)
855 set(CRYPTO_SRC ${CRYPTO_SRC} compat/explicit_bzero_win.c) 828 set(COMPAT_SRC ${COMPAT_SRC} compat/explicit_bzero_win.c)
856 else() 829 else()
857 set(CRYPTO_SRC ${CRYPTO_SRC} compat/explicit_bzero.c) 830 set(COMPAT_SRC ${COMPAT_SRC} compat/explicit_bzero.c)
858 set_source_files_properties(compat/explicit_bzero.c PROPERTIES COMPILE_FLAGS -O0) 831 set_source_files_properties(compat/explicit_bzero.c PROPERTIES COMPILE_FLAGS -O0)
859 endif() 832 endif()
860 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_explicit_bzero)
861endif() 833endif()
862 834
863if(NOT HAVE_ARC4RANDOM_BUF) 835if(NOT HAVE_ARC4RANDOM_BUF)
864 set(CRYPTO_SRC ${CRYPTO_SRC} compat/arc4random.c) 836 set(COMPAT_SRC ${COMPAT_SRC} compat/arc4random.c)
865 set(CRYPTO_SRC ${CRYPTO_SRC} compat/arc4random_uniform.c) 837 set(COMPAT_SRC ${COMPAT_SRC} compat/arc4random_uniform.c)
866 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_arc4random)
867 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_arc4random_buf)
868 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_arc4random_uniform)
869 838
870 if(NOT HAVE_GETENTROPY) 839 if(NOT HAVE_GETENTROPY)
871 if(WIN32) 840 if(WIN32)
872 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_win.c) 841 set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_win.c)
873 elseif(CMAKE_SYSTEM_NAME MATCHES "AIX") 842 elseif(CMAKE_SYSTEM_NAME MATCHES "AIX")
874 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_aix.c) 843 set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_aix.c)
875 elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") 844 elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
876 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_freebsd.c) 845 set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_freebsd.c)
877 elseif(CMAKE_SYSTEM_NAME MATCHES "HP-UX") 846 elseif(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
878 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_hpux.c) 847 set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_hpux.c)
879 elseif(CMAKE_SYSTEM_NAME MATCHES "Linux") 848 elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
880 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_linux.c) 849 set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_linux.c)
881 elseif(CMAKE_SYSTEM_NAME MATCHES "NetBSD") 850 elseif(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
882 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_netbsd.c) 851 set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_netbsd.c)
883 elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin") 852 elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
884 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_osx.c) 853 set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_osx.c)
885 elseif(CMAKE_SYSTEM_NAME MATCHES "SunOS") 854 elseif(CMAKE_SYSTEM_NAME MATCHES "SunOS")
886 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_solaris.c) 855 set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_solaris.c)
887 endif() 856 endif()
888 set(EXTRA_EXPORT ${EXTRA_EXPORT} getentropy)
889 endif() 857 endif()
890endif() 858endif()
891 859
892if(NOT HAVE_TIMINGSAFE_BCMP) 860if(NOT HAVE_TIMINGSAFE_BCMP)
893 set(CRYPTO_SRC ${CRYPTO_SRC} compat/timingsafe_bcmp.c) 861 set(COMPAT_SRC ${COMPAT_SRC} compat/timingsafe_bcmp.c)
894 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_timingsafe_bcmp)
895endif() 862endif()
896 863
897if(NOT HAVE_TIMINGSAFE_MEMCMP) 864if(NOT HAVE_TIMINGSAFE_MEMCMP)
898 set(CRYPTO_SRC ${CRYPTO_SRC} compat/timingsafe_memcmp.c) 865 set(COMPAT_SRC ${COMPAT_SRC} compat/timingsafe_memcmp.c)
899 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_timingsafe_memcmp)
900endif() 866endif()
901 867
902if(NOT ENABLE_ASM) 868if(NOT ENABLE_ASM)
@@ -919,15 +885,14 @@ foreach(SYM IN LISTS CRYPTO_UNEXPORT)
919 string(REPLACE "${SYM}\n" "" SYMS ${SYMS}) 885 string(REPLACE "${SYM}\n" "" SYMS ${SYMS})
920endforeach() 886endforeach()
921file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym ${SYMS}) 887file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym ${SYMS})
922# XXX should we still be doing this?
923if(EXTRA_EXPORT)
924 list(SORT EXTRA_EXPORT)
925 foreach(SYM IN LISTS EXTRA_EXPORT)
926 file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym "${SYM}\n")
927 endforeach()
928endif()
929 888
930set(LIBTLS_EXTRA_EXPORT ${EXTRA_EXPORT} PARENT_SCOPE) 889add_library(compat_obj OBJECT ${COMPAT_SRC})
890target_include_directories(compat_obj
891 PRIVATE
892 ../include/compat
893 PUBLIC
894 ../include
895 ${CMAKE_BINARY_DIR}/include)
931 896
932add_library(crypto_obj OBJECT ${CRYPTO_SRC}) 897add_library(crypto_obj OBJECT ${CRYPTO_SRC})
933target_include_directories(crypto_obj 898target_include_directories(crypto_obj
@@ -977,7 +942,7 @@ elseif(HOST_X86_64)
977 target_include_directories(crypto_obj PRIVATE bn/arch/amd64) 942 target_include_directories(crypto_obj PRIVATE bn/arch/amd64)
978endif() 943endif()
979 944
980add_library(crypto $<TARGET_OBJECTS:crypto_obj> empty.c) 945add_library(crypto $<TARGET_OBJECTS:crypto_obj> $<TARGET_OBJECTS:compat_obj> empty.c)
981 946
982export_symbol(crypto ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym) 947export_symbol(crypto ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym)
983target_link_libraries(crypto ${PLATFORM_LIBS}) 948target_link_libraries(crypto ${PLATFORM_LIBS})
diff --git a/ssl/CMakeLists.txt b/ssl/CMakeLists.txt
index 22385ba..9be9e99 100644
--- a/ssl/CMakeLists.txt
+++ b/ssl/CMakeLists.txt
@@ -78,7 +78,7 @@ target_include_directories(bs_obj
78 ../include/compat) 78 ../include/compat)
79 79
80if(BUILD_SHARED_LIBS) 80if(BUILD_SHARED_LIBS)
81 add_library(ssl $<TARGET_OBJECTS:ssl_obj> $<TARGET_OBJECTS:bs_obj>) 81 add_library(ssl $<TARGET_OBJECTS:ssl_obj> $<TARGET_OBJECTS:compat_obj> $<TARGET_OBJECTS:bs_obj>)
82else() 82else()
83 add_library(ssl $<TARGET_OBJECTS:ssl_obj> empty.c) 83 add_library(ssl $<TARGET_OBJECTS:ssl_obj> empty.c)
84endif() 84endif()
diff --git a/tls/CMakeLists.txt b/tls/CMakeLists.txt
index c3c9424..33ae184 100644
--- a/tls/CMakeLists.txt
+++ b/tls/CMakeLists.txt
@@ -14,28 +14,32 @@ set(
14 tls_verify.c 14 tls_verify.c
15) 15)
16 16
17set(TLS_COMPAT_SRC "")
18
17if(WIN32) 19if(WIN32)
18 set( 20 set(
19 TLS_SRC 21 TLS_SRC
20 ${TLS_SRC} 22 ${TLS_SRC}
21 compat/ftruncate.c
22 compat/pread.c
23 compat/pwrite.c
24 ) 23 )
25 24
26 set(LIBTLS_EXTRA_EXPORT ${LIBTLS_EXTRA_EXPORT} ftruncate) 25 set(TLS_COMPAT_SRC ${TLS_COMPAT_SRC} compat/ftruncate.c)
26 set(TLS_COMPAT_SRC ${TLS_COMPAT_SRC} compat/pread.c)
27 set(TLS_COMPAT_SRC ${TLS_COMPAT_SRC} compat/pwrite.c)
27endif() 28endif()
28 29
29add_definitions(-DTLS_DEFAULT_CA_FILE=\"${OPENSSLDIR}/cert.pem\") 30add_definitions(-DTLS_DEFAULT_CA_FILE=\"${OPENSSLDIR}/cert.pem\")
30 31
31file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/tls.sym DESTINATION 32file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/tls.sym DESTINATION
32 ${CMAKE_CURRENT_BINARY_DIR}) 33 ${CMAKE_CURRENT_BINARY_DIR})
33if(LIBTLS_EXTRA_EXPORT) 34
34 list(SORT LIBTLS_EXTRA_EXPORT) 35add_library(tls_compat_obj OBJECT ${TLS_COMPAT_SRC})
35 foreach(SYM IN LISTS LIBTLS_EXTRA_EXPORT) 36target_include_directories(tls_compat_obj
36 file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/tls.sym "${SYM}\n") 37 PRIVATE
37 endforeach() 38 .
38endif() 39 ../include/compat
40 PUBLIC
41 ../include
42 ${CMAKE_BINARY_DIR}/include)
39 43
40add_library(tls_obj OBJECT ${TLS_SRC}) 44add_library(tls_obj OBJECT ${TLS_SRC})
41target_include_directories(tls_obj 45target_include_directories(tls_obj
@@ -46,7 +50,11 @@ target_include_directories(tls_obj
46 ../include 50 ../include
47 ${CMAKE_BINARY_DIR}/include) 51 ${CMAKE_BINARY_DIR}/include)
48 52
49add_library(tls $<TARGET_OBJECTS:tls_obj> empty.c) 53if(BUILD_SHARED_LIBS)
54 add_library(tls $<TARGET_OBJECTS:tls_obj> $<TARGET_OBJECTS:tls_compat_obj> $<TARGET_OBJECTS:compat_obj> empty.c)
55else()
56 add_library(tls $<TARGET_OBJECTS:tls_obj> $<TARGET_OBJECTS:tls_compat_obj> empty.c)
57endif()
50 58
51export_symbol(tls ${CMAKE_CURRENT_BINARY_DIR}/tls.sym) 59export_symbol(tls ${CMAKE_CURRENT_BINARY_DIR}/tls.sym)
52target_link_libraries(tls ${OPENSSL_LIBS}) 60target_link_libraries(tls ${OPENSSL_LIBS})