Skip to content

Commit 20b4a5e

Browse files
author
Chris Kaminski
committed
* Added ssl_server example to CMakefiles
* Updated ssl_server DH key to reflect current (2016) browser security requirements
1 parent 210bf79 commit 20b4a5e

File tree

4 files changed

+33
-15
lines changed

4 files changed

+33
-15
lines changed

libs/network/example/CMakeLists.txt

+23-1
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,18 @@ add_executable(hello_world_server http/hello_world_server.cpp)
1717
add_executable(hello_world_client http/hello_world_client.cpp)
1818
add_executable(hello_world_async_server_with_work_queue http/hello_world_async_server_with_work_queue.cpp)
1919
add_executable(trivial_google trivial_google.cpp)
20+
if (OPENSSL_FOUND)
21+
add_executable(ssl_server http/ssl/ssl_server.cpp)
22+
endif (OPENSSL_FOUND)
23+
2024
if (UNIX)
2125
add_executable(fileserver http/fileserver.cpp)
2226
endif (UNIX)
2327
add_dependencies(http_client cppnetlib-uri cppnetlib-client-connections)
2428
add_dependencies(simple_wget cppnetlib-uri cppnetlib-client-connections)
2529
add_dependencies(atom_reader cppnetlib-uri cppnetlib-client-connections)
2630
add_dependencies(rss_reader cppnetlib-uri cppnetlib-client-connections)
31+
add_dependencies(ssl_server cppnetlib-uri cppnetlib-client-connections)
2732
add_dependencies(trivial_google cppnetlib-uri cppnetlib-client-connections)
2833

2934
target_link_libraries(http_client
@@ -66,6 +71,15 @@ target_link_libraries(hello_world_async_server_with_work_queue
6671
cppnetlib-client-connections
6772
cppnetlib-server-parsers)
6873

74+
if (OPENSSL_FOUND)
75+
target_link_libraries(ssl_server
76+
${CMAKE_THREAD_LIBS_INIT}
77+
cppnetlib-server-parsers
78+
cppnetlib-uri
79+
cppnetlib-client-connections)
80+
endif (OPENSSL_FOUND)
81+
82+
6983
if (OPENSSL_FOUND)
7084
target_link_libraries(http_client ${OPENSSL_LIBRARIES})
7185
target_link_libraries(simple_wget ${OPENSSL_LIBRARIES})
@@ -74,6 +88,7 @@ if (OPENSSL_FOUND)
7488
target_link_libraries(hello_world_server ${OPENSSL_LIBRARIES})
7589
target_link_libraries(hello_world_client ${OPENSSL_LIBRARIES})
7690
target_link_libraries(hello_world_async_server_with_work_queue ${OPENSSL_LIBRARIES})
91+
target_link_libraries(ssl_server ${OPENSSL_LIBRARIES})
7792
target_link_libraries(trivial_google ${OPENSSL_LIBRARIES})
7893
endif (OPENSSL_FOUND)
7994

@@ -85,6 +100,7 @@ if (${CMAKE_CXX_COMPILER_ID} MATCHES GNU AND ${CMAKE_SYSTEM_NAME} MATCHES "Windo
85100
target_link_libraries(hello_world_server ws2_32 wsock32)
86101
target_link_libraries(hello_world_client ws2_32)
87102
target_link_libraries(hello_world_async_server_with_work_queue ws2_32 wsock32)
103+
target_link_libraries(ssl_server ws2_32 wsock32)
88104
target_link_libraries(trivial_google ws2_32)
89105
endif()
90106

@@ -97,6 +113,9 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
97113
target_link_libraries(hello_world_client rt)
98114
target_link_libraries(hello_world_async_server_with_work_queue rt)
99115
target_link_libraries(trivial_google rt)
116+
if (OPENSSL_FOUND)
117+
target_link_libraries(ssl_server rt)
118+
endif (OPENSSL_FOUND)
100119
endif()
101120

102121
if (UNIX)
@@ -119,7 +138,10 @@ set_target_properties(trivial_google PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-N
119138
set_target_properties(hello_world_server PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/example)
120139
set_target_properties(hello_world_client PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/example)
121140
set_target_properties(hello_world_async_server_with_work_queue PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/example)
122-
141+
if (OPENSSL_FOUND)
142+
set_target_properties(ssl_server PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/example)
143+
endif (OPENSSL_FOUND)
144+
123145
if (UNIX)
124146
set_target_properties(fileserver PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CPP-NETLIB_BINARY_DIR}/example)
125147
endif (UNIX)
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
-----BEGIN DH PARAMETERS-----
2+
MIIBCAKCAQEA1wI+wQdLMRtQK+0EIXNg+g+J/EhIZedqdkSKKLIdclDAjUdbnDWJ
3+
rMR76tKGItPb0LkWHfxJkrziyvZRO2KWTThQ1Tz05x+OgM2ckHT+QsTxNqOosvdT
4+
pOtMt260WaXVYvHJ0CZgTo7+DUcXNYZW/xvSW206RW9oJIgqCFrhUrKGpVFuqLZZ
5+
Nwjy62Ueg3TUwE5D5K0xgUjyCAuHZmeI2uQUbJS6u9GeraV5h0QtH3njDS6mD64v
6+
cN5MqQXO1UTl4sQUhDPamyiJz57/o/jinHJUDLz1FGS8kOR8ecYAx8JryFgm4qPd
7+
+MYaDDIJku8f19Rnjb1SI/Y28uHL9X2dswIBAg==
8+
-----END DH PARAMETERS-----

libs/network/example/http/ssl/dh512.pem

-12
This file was deleted.

libs/network/example/http/ssl/ssl_server.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
#include <signal.h>
2020

2121
struct handler;
22-
typedef boost::network::http::async_server<handler> server;
22+
typedef boost::network::http::server<handler> server;
2323

2424
std::string password_callback(
2525
std::size_t max_length,
@@ -78,7 +78,7 @@ int main(void) try {
7878
ctx->set_password_callback(password_callback);
7979
ctx->use_certificate_chain_file("server.pem");
8080
ctx->use_private_key_file("server.pem", asio::ssl::context::pem);
81-
ctx->use_tmp_dh_file("dh512.pem");
81+
ctx->use_tmp_dh_file("dh2048.pem");
8282

8383
// setup the async server
8484
handler request_handler;

0 commit comments

Comments
 (0)