set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWIN32_LEAN_AND_MEAN")
- # Set product and vendor for dll and exe version information.
- set(RC_VERSION_VENDOR ${VENDOR})
- set(RC_VERSION_PRODUCT ${PRODUCT})
- set(RC_VERSION_PATCH ${BUILD_NUMBER})
- set(RC_VERSION_DESCRIPTION ${GIT_REVISION})
+ # Set product and vendor for dll and exe version information.
+ set(RC_VERSION_VENDOR ${VENDOR})
+ set(RC_VERSION_PRODUCT ${PRODUCT})
+ set(RC_VERSION_PATCH ${BUILD_NUMBER})
+ set(RC_VERSION_DESCRIPTION ${GIT_REVISION})
- string(TIMESTAMP RC_VERSION_YEAR "%Y")
+ string(TIMESTAMP RC_VERSION_YEAR "%Y")
if(NOT DEFINED CMAKE_WINDOWS_VERSION)
set(CMAKE_WINDOWS_VERSION "WINXP")
endif()
endif()
+if(OPENSSL_FOUND)
+ add_definitions("-DWITH_OPENSSL")
+endif()
+
+if(MBEDTLS_FOUND)
+ add_definitions("-DWITH_MBEDTLS")
+endif()
+
if (TARGET_ARCH MATCHES "sparc")
set(HAVE_ALIGNED_REQUIRED 1)
endif()
winpr_include_directory_add(
"lodepng"
"trio"
- "."
- ${ZLIB_INCLUDE_DIRS}
- ${OPENSSL_INCLUDE_DIR})
+ ".")
+
+if(OPENSSL_FOUND)
+ winpr_include_directory_add(${OPENSSL_INCLUDE_DIR})
+ winpr_library_add(${OPENSSL_LIBRARIES})
+endif()
-winpr_library_add(
- ${ZLIB_LIBRARIES}
- ${OPENSSL_LIBRARIES})
+if(MBEDTLS_FOUND)
+ winpr_include_directory_add(${MBEDTLS_INCLUDE_DIR})
+ winpr_library_add(${MBEDTLS_LIBRARIES})
+endif()
if(UNIX)
winpr_library_add(m)
#include <winpr/crt.h>
+#ifdef WITH_OPENSSL
#include <openssl/ssl.h>
#include <openssl/md4.h>
+#endif
/**
* Define NTOWFv1(Password, User, Domain) as
BYTE* NTOWFv1W(LPWSTR Password, UINT32 PasswordLength, BYTE* NtHash)
{
- MD4_CTX md4_ctx;
-
if (!Password)
return NULL;
if (!NtHash && !(NtHash = malloc(16)))
return NULL;
- MD4_Init(&md4_ctx);
- MD4_Update(&md4_ctx, Password, PasswordLength);
- MD4_Final((void*) NtHash, &md4_ctx);
+#ifdef WITH_OPENSSL
+ {
+ MD4_CTX md4_ctx;
+ MD4_Init(&md4_ctx);
+ MD4_Update(&md4_ctx, Password, PasswordLength);
+ MD4_Final((void*) NtHash, &md4_ctx);
+ }
+#endif
return NtHash;
}
CopyMemory(&buffer[UserLength], Domain, DomainLength);
/* Compute the HMAC-MD5 hash of the above value using the NTLMv1 hash as the key, the result is the NTLMv2 hash */
+#ifdef WITH_OPENSSL
HMAC(EVP_md5(), (void*) NtHashV1, 16, buffer, UserLength + DomainLength, (void*) NtHash, NULL);
+#endif
free(buffer);
}
/* Compute the HMAC-MD5 hash of the above value using the NTLMv1 hash as the key, the result is the NTLMv2 hash */
+#ifdef WITH_OPENSSL
HMAC(EVP_md5(), (void*) NtHashV1, 16, buffer, UserLength + DomainLength, (void*) NtHash, NULL);
+#endif
free(buffer);
* limitations under the License.
*/
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
#include <winpr/crt.h>
#include <winpr/synch.h>
#include <winpr/ssl.h>
#include <winpr/thread.h>
+#ifdef WITH_OPENSSL
+
#include <openssl/ssl.h>
#include <openssl/err.h>
return TRUE;
}
+
+#else
+
+BOOL winpr_InitializeSSL(DWORD flags)
+{
+ return TRUE;
+}
+
+BOOL winpr_CleanupSSL(DWORD flags)
+{
+ return TRUE;
+}
+
+#endif
set(MODULE_NAME "winpr-hash")
set(MODULE_PREFIX "WINPR_TOOLS_HASH")
-include_directories(${ZLIB_INCLUDE_DIRS})
-include_directories(${OPENSSL_INCLUDE_DIR})
-
set(${MODULE_PREFIX}_SRCS
hash.c)
- # On windows create dll version information.
+# On windows create dll version information.
# Vendor, product and year are already set in top level CMakeLists.txt
if (WIN32)
- set (RC_VERSION_MAJOR ${WINPR_VERSION_MAJOR})
- set (RC_VERSION_MINOR ${WINPR_VERSION_MINOR})
- set (RC_VERSION_BUILD ${WINPR_VERSION_REVISION})
- set (RC_VERSION_FILE "${MODULE_NAME}${CMAKE_EXECUTABLE_SUFFIX}" )
+ set(RC_VERSION_MAJOR ${WINPR_VERSION_MAJOR})
+ set(RC_VERSION_MINOR ${WINPR_VERSION_MINOR})
+ set(RC_VERSION_BUILD ${WINPR_VERSION_REVISION})
+ set(RC_VERSION_FILE "${MODULE_NAME}${CMAKE_EXECUTABLE_SUFFIX}")
- configure_file(
- ${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in
- ${CMAKE_CURRENT_BINARY_DIR}/version.rc
- @ONLY)
+ configure_file(
+ ${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in
+ ${CMAKE_CURRENT_BINARY_DIR}/version.rc
+ @ONLY)
- set ( ${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
+ set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
endif()
add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
-set(${MODULE_PREFIX}_LIBS
- ${ZLIB_LIBRARIES}
- ${OPENSSL_LIBRARIES}
- winpr)
+set(${MODULE_PREFIX}_LIBS winpr)
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
set(${MODULE_PREFIX}_SRCS makecert.c)
-include_directories(${ZLIB_INCLUDE_DIRS})
-include_directories(${OPENSSL_INCLUDE_DIR})
+if(OPENSSL_FOUND)
+ include_directories(${OPENSSL_INCLUDE_DIR})
+endif()
+
+if(MBEDTLS_FOUND)
+ include_directories(${MBEDTLS_INCLUDE_DIR})
+endif()
add_library(${MODULE_NAME} STATIC ${${MODULE_PREFIX}_SRCS})
-set(${MODULE_PREFIX}_LIBS
- ${ZLIB_LIBRARIES}
- ${OPENSSL_LIBRARIES}
- winpr)
+set(${MODULE_PREFIX}_LIBS winpr)
+
+if(OPENSSL_FOUND)
+ list(APPEND ${MODULE_PREFIX}_LIBS ${OPENSSL_LIBRARIES})
+endif()
+
+if(MBEDTLS_FOUND)
+ list(APPEND ${MODULE_PREFIX}_LIBS ${MBEDTLS_LIBRARIES})
+endif()
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
set(${MODULE_PREFIX}_SRCS
main.c)
- # On windows create dll version information.
+# On windows create dll version information.
# Vendor, product and year are already set in top level CMakeLists.txt
if (WIN32)
- set (RC_VERSION_MAJOR ${WINPR_VERSION_MAJOR})
- set (RC_VERSION_MINOR ${WINPR_VERSION_MINOR})
- set (RC_VERSION_BUILD ${WINPR_VERSION_REVISION})
- set (RC_VERSION_FILE "${MODULE_NAME}${CMAKE_EXECUTABLE_SUFFIX}" )
+ set(RC_VERSION_MAJOR ${WINPR_VERSION_MAJOR})
+ set(RC_VERSION_MINOR ${WINPR_VERSION_MINOR})
+ set(RC_VERSION_BUILD ${WINPR_VERSION_REVISION})
+ set(RC_VERSION_FILE "${MODULE_NAME}${CMAKE_EXECUTABLE_SUFFIX}")
- configure_file(
- ${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in
- ${CMAKE_CURRENT_BINARY_DIR}/version.rc
- @ONLY)
+ configure_file(
+ ${CMAKE_SOURCE_DIR}/cmake/WindowsDLLVersion.rc.in
+ ${CMAKE_CURRENT_BINARY_DIR}/version.rc
+ @ONLY)
- set ( ${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
+ set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
endif()
add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
* limitations under the License.
*/
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
#include <winpr/crt.h>
#include <winpr/path.h>
#include <winpr/cmdline.h>
#include <winpr/sysinfo.h>
+#ifdef WITH_OPENSSL
#include <openssl/conf.h>
#include <openssl/pem.h>
#include <openssl/pkcs12.h>
#include <openssl/x509v3.h>
+#endif
#include <winpr/tools/makecert.h>
int argc;
char** argv;
+#ifdef WITH_OPENSSL
RSA* rsa;
X509* x509;
EVP_PKEY* pkey;
PKCS12* pkcs12;
+#endif
BOOL live;
BOOL silent;
int x509_add_ext(X509* cert, int nid, char* value)
{
+#ifdef WITH_OPENSSL
X509V3_CTX ctx;
X509_EXTENSION* ext;
X509_add_ext(cert, ext, -1);
X509_EXTENSION_free(ext);
+#endif
return 1;
}
CHAR* computerName = NULL;
DWORD nSize = 0;
- if (GetComputerNameExA(ComputerNamePhysicalDnsFullyQualified, NULL, &nSize) ||
+ if (GetComputerNameExA(ComputerNamePhysicalDnsFullyQualified, NULL, &nSize) ||
GetLastError() != ERROR_MORE_DATA)
goto fallback;
if (!GetComputerNameExA(ComputerNamePhysicalDnsFullyQualified, computerName, &nSize))
goto fallback;
- return computerName;
+ return computerName;
fallback:
- free(computerName);
+ free(computerName);
if (GetComputerNameExA(ComputerNamePhysicalNetBIOS, NULL, &nSize) ||
GetLastError() != ERROR_MORE_DATA)
int makecert_context_output_certificate_file(MAKECERT_CONTEXT* context, char* path)
{
+#ifdef WITH_OPENSSL
FILE* fp = NULL;
int status;
int length;
free(fullpath);
return ret;
+#else
+ return 1;
+#endif
}
int makecert_context_output_private_key_file(MAKECERT_CONTEXT* context, char* path)
{
+#ifdef WITH_OPENSSL
FILE* fp = NULL;
int status;
int length;
free(fullpath);
return ret;
+#else
+ return 1;
+#endif
}
int makecert_context_process(MAKECERT_CONTEXT* context, int argc, char** argv)
{
+#ifdef WITH_OPENSSL
int length;
char* entry;
int key_length;
return -1;
}
}
-
+#endif
return 0;
}
{
free(context->password);
- X509_free(context->x509);
- EVP_PKEY_free(context->pkey);
-
free(context->default_name);
free(context->common_name);
free(context->output_file);
free(context->output_path);
+#ifdef WITH_OPENSSL
+ X509_free(context->x509);
+ EVP_PKEY_free(context->pkey);
CRYPTO_cleanup_all_ex_data();
+#endif
free(context);
}