From b7b535816d5fa49b0d1783f4cb42086f4169b1da Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 17 Dec 2014 19:39:18 +0100 Subject: libcrypto: Fix Windows build with ssh_reseed(). gettimeofday() is not available on Windows and we need it only in case of forking. Signed-off-by: Andreas Schneider --- ConfigureChecks.cmake | 1 + config.h.cmake | 3 +++ src/libcrypto.c | 5 +++++ 3 files changed, 9 insertions(+) diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake index 5701bc39..c5018d8f 100644 --- a/ConfigureChecks.cmake +++ b/ConfigureChecks.cmake @@ -53,6 +53,7 @@ check_include_file(termios.h HAVE_TERMIOS_H) check_include_file(unistd.h HAVE_UNISTD_H) check_include_file(util.h HAVE_UTIL_H) check_include_file(libutil.h HAVE_LIBUTIL_H) +check_include_file(sys/time.h HAVE_SYS_TIME_H) if (WIN32) check_include_files("winsock2.h;ws2tcpip.h;wspiapi.h" HAVE_WSPIAPI_H) diff --git a/config.h.cmake b/config.h.cmake index 55e37aca..86538e17 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -29,6 +29,9 @@ /* Define to 1 if you have the header file. */ #cmakedefine HAVE_LIBUTIL_H 1 +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TIME_H 1 + /* Define to 1 if you have the header file. */ #cmakedefine HAVE_TERMIOS_H 1 diff --git a/src/libcrypto.c b/src/libcrypto.c index 479c8c18..00f107f7 100644 --- a/src/libcrypto.c +++ b/src/libcrypto.c @@ -19,11 +19,14 @@ * MA 02111-1307, USA. */ +#include "config.h" #include #include #include +#ifdef HAVE_SYS_TIME_H #include +#endif #include "libssh/priv.h" #include "libssh/session.h" @@ -80,9 +83,11 @@ static int alloc_key(struct ssh_cipher_struct *cipher) { } void ssh_reseed(void){ +#ifndef _WIN32 struct timeval tv; gettimeofday(&tv, NULL); RAND_add(&tv, sizeof(tv), 0.0); +#endif } SHACTX sha1_init(void) { -- cgit