Skip to content

Commit dce43ff

Browse files
authored
Merge pull request #762 from pabuhler/crypto_config
Change crypto config, use one option with a list of values
2 parents 5b3752c + fe6b043 commit dce43ff

File tree

5 files changed

+548
-673
lines changed

5 files changed

+548
-673
lines changed

.github/workflows/autotools.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ jobs:
1818
- crypto: internal
1919
configure-crypto-enable: ""
2020
- crypto: openssl
21-
configure-crypto-enable: "--enable-openssl"
21+
configure-crypto-enable: "--with-crypto-library=openssl"
2222
- crypto: wolfssl
23-
configure-crypto-enable: "--enable-wolfssl"
23+
configure-crypto-enable: "--with-crypto-library=wolfssl"
2424
- crypto: nss
25-
configure-crypto-enable: "--enable-nss"
25+
configure-crypto-enable: "--with-crypto-library=nss"
2626

2727
runs-on: ${{ matrix.os }}
2828

.github/workflows/cmake.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,15 @@ jobs:
3232
- crypto: internal
3333
cmake-crypto-enable: ""
3434
- crypto: openssl
35-
cmake-crypto-enable: "-DENABLE_OPENSSL=ON"
35+
cmake-crypto-enable: "-DCRYPTO_LIBRARY=openssl"
3636
- crypto: openssl3
37-
cmake-crypto-enable: "-DENABLE_OPENSSL=ON"
37+
cmake-crypto-enable: "-DCRYPTO_LIBRARY=openssl"
3838
- crypto: wolfssl
39-
cmake-crypto-enable: "-DENABLE_WOLFSSL=ON"
39+
cmake-crypto-enable: "-DCRYPTO_LIBRARY=wolfssl"
4040
- crypto: nss
41-
cmake-crypto-enable: "-DENABLE_NSS=ON"
41+
cmake-crypto-enable: "-DCRYPTO_LIBRARY=nss"
4242
- crypto: mbedtls
43-
cmake-crypto-enable: "-DENABLE_MBEDTLS=ON"
43+
cmake-crypto-enable: "-DCRYPTO_LIBRARY=mbedtls"
4444

4545
runs-on: ${{ matrix.os }}
4646

CMakeLists.txt

Lines changed: 23 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -85,49 +85,42 @@ endif()
8585
set(ENABLE_DEBUG_LOGGING OFF CACHE BOOL "Enable debug logging in all modules")
8686
set(ERR_REPORTING_STDOUT OFF CACHE BOOL "Enable logging to stdout")
8787
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")
9288

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}")
9795
endif()
96+
message(STATUS "Using crypto library: ${CRYPTO_LIBRARY}")
9897

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)
103108
find_package(OpenSSL REQUIRED)
104109
set(OPENSSL ${ENABLE_OPENSSL} CACHE BOOL INTERNAL)
105110
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)
112113
find_package(wolfSSL REQUIRED)
113114
set(WOLFSSL ${ENABLE_WOLFSSL} CACHE BOOL INTERNAL)
114115
set(WOLFSSL_KDF ${ENABLE_WOLFSSL} CACHE BOOL INTERNAL)
115116
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)
122119
find_package(MbedTLS REQUIRED)
123120
set(MBEDTLS ${ENABLE_MBEDTLS} CACHE BOOL INTERNAL)
124121
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)
131124
find_package(NSS REQUIRED)
132125
set(NSS ${ENABLE_NSS} CACHE BOOL INTERNAL)
133126
set(GCM ${ENABLE_NSS} CACHE BOOL INTERNAL)

0 commit comments

Comments
 (0)