@@ -85,49 +85,42 @@ endif()
85
85
set (ENABLE_DEBUG_LOGGING OFF CACHE BOOL "Enable debug logging in all modules" )
86
86
set (ERR_REPORTING_STDOUT OFF CACHE BOOL "Enable logging to stdout" )
87
87
set (ERR_REPORTING_FILE "" CACHE FILEPATH "Use file for logging" )
88
- set (ENABLE_OPENSSL OFF CACHE BOOL "Enable OpenSSL crypto engine" )
89
- set (ENABLE_WOLFSSL OFF CACHE BOOL "Enable wolfSSL crypto engine" )
90
- set (ENABLE_MBEDTLS OFF CACHE BOOL "Enable MbedTLS crypto engine" )
91
- set (ENABLE_NSS OFF CACHE BOOL "Enable NSS crypto engine" )
92
88
93
- if (ENABLE_OPENSSL OR ENABLE_WOLFSSL OR ENABLE_MBEDTLS OR ENABLE_NSS)
94
- set (USE_EXTERNAL_CRYPTO TRUE )
95
- else ()
96
- set (USE_EXTERNAL_CRYPTO FALSE )
89
+ set (CRYPTO_LIBRARY_VALUES "internal;openssl;wolfssl;mbedtls;nss" )
90
+ set (CRYPTO_LIBRARY "internal" CACHE STRING
91
+ "Crypto library used by libSRTP, can be one of: ${CRYPTO_LIBRARY_VALUES} " )
92
+ set_property (CACHE CRYPTO_LIBRARY PROPERTY STRINGS ${CRYPTO_LIBRARY_VALUES} )
93
+ if (NOT CRYPTO_LIBRARY IN_LIST CRYPTO_LIBRARY_VALUES)
94
+ message (FATAL_ERROR "Invalid value for CRYPTO_LIBRARY: ${CRYPTO_LIBRARY} . Allowed values are: ${CRYPTO_LIBRARY_VALUES} " )
97
95
endif ()
96
+ message (STATUS "Using crypto library: ${CRYPTO_LIBRARY} " )
98
97
99
- if (ENABLE_OPENSSL)
100
- if (ENABLE_WOLFSSL OR ENABLE_NSS OR ENABLE_MBEDTLS)
101
- message (FATAL_ERROR "ssl conflict. can not enable openssl and wolfssl, mbedtls or nss simultaneously." )
102
- endif ()
98
+ set (USE_EXTERNAL_CRYPTO TRUE )
99
+ set (ENABLE_OPENSSL FALSE )
100
+ set (ENABLE_WOLFSSL FALSE )
101
+ set (ENABLE_MBEDTLS FALSE )
102
+ set (ENABLE_NSS FALSE )
103
+
104
+ if (CRYPTO_LIBRARY STREQUAL "internal" )
105
+ set (USE_EXTERNAL_CRYPTO FALSE )
106
+ elseif (CRYPTO_LIBRARY STREQUAL "openssl" )
107
+ set (ENABLE_OPENSSL TRUE )
103
108
find_package (OpenSSL REQUIRED)
104
109
set (OPENSSL ${ENABLE_OPENSSL} CACHE BOOL INTERNAL )
105
110
set (GCM ${ENABLE_OPENSSL} CACHE BOOL INTERNAL )
106
- endif ()
107
-
108
- if (ENABLE_WOLFSSL)
109
- if (ENABLE_OPENSSL OR ENABLE_NSS OR ENABLE_MBEDTLS)
110
- message (FATAL_ERROR "ssl conflict. can not enable wolfssl and openssl, mbedtls or nss simultaneously." )
111
- endif ()
111
+ elseif (CRYPTO_LIBRARY STREQUAL "wolfssl" )
112
+ set (ENABLE_WOLFSSL TRUE )
112
113
find_package (wolfSSL REQUIRED)
113
114
set (WOLFSSL ${ENABLE_WOLFSSL} CACHE BOOL INTERNAL )
114
115
set (WOLFSSL_KDF ${ENABLE_WOLFSSL} CACHE BOOL INTERNAL )
115
116
set (GCM ${ENABLE_WOLFSSL} CACHE BOOL INTERNAL )
116
- endif ()
117
-
118
- if (ENABLE_MBEDTLS)
119
- if (ENABLE_OPENSSL OR ENABLE_WOLFSSL OR ENABLE_NSS)
120
- message (FATAL_ERROR "ssl conflict. can not enable mbedtls and openssl, wolfssl or nss simultaneously." )
121
- endif ()
117
+ elseif (CRYPTO_LIBRARY STREQUAL "mbedtls" )
118
+ set (ENABLE_MBEDTLS TRUE )
122
119
find_package (MbedTLS REQUIRED)
123
120
set (MBEDTLS ${ENABLE_MBEDTLS} CACHE BOOL INTERNAL )
124
121
set (GCM ${ENABLE_MBEDTLS} CACHE BOOL INTERNAL )
125
- endif ()
126
-
127
- if (ENABLE_NSS)
128
- if (ENABLE_OPENSSL OR ENABLE_WOLFSSL OR ENABLE_MBEDTLS)
129
- message (FATAL_ERROR "ssl conflict. can not enable nss and openssl, wolfssl or mbedtls simultaneously." )
130
- endif ()
122
+ elseif (CRYPTO_LIBRARY STREQUAL "nss" )
123
+ set (ENABLE_NSS TRUE )
131
124
find_package (NSS REQUIRED)
132
125
set (NSS ${ENABLE_NSS} CACHE BOOL INTERNAL )
133
126
set (GCM ${ENABLE_NSS} CACHE BOOL INTERNAL )
0 commit comments