Fixed ssl cert generation on Windows. 41/3141/1
authorJoakim Soderberg <joakim.soderberg@gmail.com>
Fri, 22 Feb 2013 01:28:11 +0000 (09:28 +0800)
committerKevron Rees <kevron_m_rees@linux.intel.com>
Thu, 7 Mar 2013 21:01:38 +0000 (13:01 -0800)
CMakeLists.txt
cmake/FindOpenSSLbins.cmake

index 78d9f0e..ab546a9 100644 (file)
@@ -545,7 +545,8 @@ if (NOT WITHOUT_TESTAPPS)
 
                # Generate self-signed SSL certs for the test-server.
                if (WITH_SSL AND OPENSSL_EXECUTABLE)
-               
+                       message("Generating SSL Certificates for the test-server...")
+
                        set(TEST_SERVER_SSL_KEY ${PROJECT_BINARY_DIR}/libwebsockets-test-server.key.pem)
                        set(TEST_SERVER_SSL_CERT ${PROJECT_BINARY_DIR}/libwebsockets-test-server.pem)
 
@@ -556,13 +557,20 @@ if (NOT WITHOUT_TESTAPPS)
                                        "All around\n"
                                        "libwebsockets-test\n"
                                        "localhost\n"
-                                       "none@invalid.org\n"
+                                       "none@invalid.org\n\n"
                                        )
+                               
+                               # The "type" command is a bit picky with paths.
+                               file(TO_NATIVE_PATH "${PROJECT_BINARY_DIR}/openssl_input.txt" OPENSSL_INPUT_WIN_PATH)
 
                                execute_process(
-                                       COMMAND type ${PROJECT_BINARY_DIR}/openssl_input.txt
-                                       COMMAND ${OPENSSL_EXECUTABLE} req -new -newkey rsa:1024 -days 10000 -nodes -x509 -keyout ${TEST_SERVER_SSL_KEY} -out ${TEST_SERVER_SSL_CERT}
-                                       )
+                                       COMMAND cmd /c type "${OPENSSL_INPUT_WIN_PATH}"
+                                       COMMAND "${OPENSSL_EXECUTABLE}" req -new -newkey rsa:1024 -days 10000 -nodes -x509 -keyout "${TEST_SERVER_SSL_KEY}" -out "${TEST_SERVER_SSL_CERT}"
+                                       RESULT_VARIABLE OPENSSL_RETURN_CODE)
+                               
+                               if (OPENSSL_RETURN_CODE)
+                                       message("!!! Failed to generate SSL certificate:\n${OPENSSL_RETURN_CODE} !!!")
+                               endif()
                        else()
                                execute_process(
                                        COMMAND printf "GB\\nErewhon\\nAll around\\nlibwebsockets-test\\n\\nlocalhost\\nnone@invalid.org\\n"
@@ -615,9 +623,9 @@ if (NOT WITHOUT_TESTAPPS)
        #
        if (WIN32 AND WITH_SSL AND NOT USE_CYASSL)
                if(OPENSSL_BIN_FOUND)
-                       message("OpenSSL dlls found, copying to output directory")
-                       message("Libeay: ${LIBEAY_BIN}")
-                       message("SSLeay: ${SSLEAY_BIN}")
+                       message("OpenSSL dlls found:")
+                       message("  Libeay: ${LIBEAY_BIN}")
+                       message("  SSLeay: ${SSLEAY_BIN}")
 
                        foreach(TARGET_BIN ${TEST_APP_LIST})                    
                                add_custom_command(TARGET ${TARGET_BIN}
@@ -697,7 +705,6 @@ if (NOT WITHOUT_TESTAPPS AND NOT WITHOUT_SERVER)
                        COMPONENT examples)
 endif()
 
-
 # Most people are more used to "make dist" compared to "make package_source"
 add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source)
 
index a6298f4..5611c04 100644 (file)
@@ -1,9 +1,11 @@
 
 if(OPENSSL_FOUND)
 
-       find_program(OPENSSL_EXECUTABLE openssl openssl.exe
+       find_program(OPENSSL_EXECUTABLE openssl openssl.exe bin/openssl.exe
                HINTS ${_OPENSSL_ROOT_HINTS}
-               PATH /usr/bin/
+               PATH 
+                       /usr/bin/ 
+                       bin/
                DOC "Openssl executable")
 
        mark_as_advanced(OPENSSL_EXECUTABLE)