aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Simons <jon@jonsimons.org>2018-06-08 16:18:06 -0700
committerAndreas Schneider <asn@cryptomilk.org>2018-06-28 09:06:30 +0200
commitc089b700c677de107bebc44c5f5daf30d44a84ba (patch)
tree05d5149958bf63012b8f4a144efb37017a8bbeca
parentc8d6445d44f239b6dc2c9261dc796bf06c800ec1 (diff)
downloadlibssh-c089b700c677de107bebc44c5f5daf30d44a84ba.tar.gz
libssh-c089b700c677de107bebc44c5f5daf30d44a84ba.tar.xz
libssh-c089b700c677de107bebc44c5f5daf30d44a84ba.zip
chacha: fix build for mbedTLS
Fix the build for mbedTLS: * set HAVE_CHACHA for non-mbedTLS builds * only compile chachapoly.c when HAVE_CHACHA * use empty CHACHA20 in src/kex.c unless HAVE_CHACHA Signed-off-by: Jon Simons <jon@jonsimons.org> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
-rw-r--r--ConfigureChecks.cmake3
-rw-r--r--config.h.cmake3
-rw-r--r--src/CMakeLists.txt8
-rw-r--r--src/kex.c4
4 files changed, 16 insertions, 2 deletions
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
index fd8ff136..3bb4a5e0 100644
--- a/ConfigureChecks.cmake
+++ b/ConfigureChecks.cmake
@@ -138,7 +138,8 @@ endif ()
if (NOT WITH_MBEDTLS)
set(HAVE_DSA 1)
-endif()
+ set(HAVE_CHACHA 1)
+endif (NOT WITH_MBEDTLS)
# FUNCTIONS
diff --git a/config.h.cmake b/config.h.cmake
index 61d20acb..044e6032 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -89,6 +89,9 @@
/* Define to 1 if you have DSA */
#cmakedefine HAVE_DSA 1
+/* Define to 1 if you have chacha20-poly1305 */
+#cmakedefine HAVE_CHACHA 1
+
/*************************** FUNCTIONS ***************************/
/* Define to 1 if you have the `EVP_aes128_ctr' function. */
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 90e44253..4edc59f4 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -122,7 +122,6 @@ set(libssh_SRCS
bignum.c
buffer.c
callbacks.c
- chachapoly.c
channels.c
client.c
config.c
@@ -167,6 +166,13 @@ set(libssh_SRCS
external/sc25519.c
)
+if (NOT WITH_MBEDTLS)
+ set(libssh_SRCS
+ ${libssh_SRCS}
+ chachapoly.c
+ )
+endif (NOT WITH_MBEDTLS)
+
if (WITH_GCRYPT)
set(libssh_SRCS
${libssh_SRCS}
diff --git a/src/kex.c b/src/kex.c
index 00f4e00f..8c51566e 100644
--- a/src/kex.c
+++ b/src/kex.c
@@ -95,7 +95,11 @@
#define ECDH ""
#endif
+#ifdef HAVE_CHACHA
#define CHACHA20 "chacha20-poly1305@openssh.com,"
+#else /* HAVE_CHACHA */
+#define CHACHA20
+#endif /* HAVE_CHACHA */
#define KEY_EXCHANGE CURVE25519 ECDH "diffie-hellman-group14-sha1,diffie-hellman-group1-sha1"
#define KEX_METHODS_SIZE 10