mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-06-19 19:33:38 +08:00
Update TLS cmake
This commit is contained in:
@@ -1,93 +1,39 @@
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/tls_command_test.cmake")
|
||||
|
||||
if(NOT EXISTS rootcacert.pem)
|
||||
message(FATAL_ERROR "file does not exist")
|
||||
gmssl_require_file(rootcacert.pem)
|
||||
gmssl_require_file(tlcp_server_certs.pem)
|
||||
gmssl_require_file(tlcp_server_keys.pem)
|
||||
|
||||
if(NOT DEFINED TEST_CASE)
|
||||
set(TEST_CASE tlcp_sm4_cbc)
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS tlcp_server_certs.pem)
|
||||
message(FATAL_ERROR "file does not exist")
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS tlcp_server_keys.pem)
|
||||
message(FATAL_ERROR "file does not exist")
|
||||
endif()
|
||||
|
||||
set(TLCP_TEST_PORT 4431)
|
||||
file(REMOVE "tlcp_client.log" "tlcp_server.log")
|
||||
|
||||
if(NOT WIN32)
|
||||
execute_process(
|
||||
COMMAND pkill -f "gmssl tlcp_server"
|
||||
OUTPUT_QUIET
|
||||
ERROR_QUIET
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
execute_process(
|
||||
COMMAND cmd /c "start /B bin\\gmssl tlcp_server -port ${TLCP_TEST_PORT} -cert tlcp_server_certs.pem -key tlcp_server_keys.pem -pass P@ssw0rd > tlcp_server.log 2>&1"
|
||||
RESULT_VARIABLE SERVER_RESULT
|
||||
TIMEOUT 5
|
||||
)
|
||||
if(TEST_CASE STREQUAL tlcp_sm4_cbc)
|
||||
set(TEST_NAME tlcp_sm4_cbc)
|
||||
set(TEST_PORT 4431)
|
||||
set(TEST_CIPHER_SUITE TLS_ECC_SM4_CBC_SM3)
|
||||
elseif(TEST_CASE STREQUAL tlcp_sm4_gcm)
|
||||
set(TEST_NAME tlcp_sm4_gcm)
|
||||
set(TEST_PORT 4435)
|
||||
set(TEST_CIPHER_SUITE TLS_ECC_SM4_GCM_SM3)
|
||||
else()
|
||||
execute_process(
|
||||
COMMAND bash -c "nohup bin/gmssl tlcp_server -port ${TLCP_TEST_PORT} -cert tlcp_server_certs.pem -key tlcp_server_keys.pem -pass P@ssw0rd > tlcp_server.log 2>&1 &"
|
||||
RESULT_VARIABLE SERVER_RESULT
|
||||
TIMEOUT 5
|
||||
)
|
||||
endif()
|
||||
if(NOT ${SERVER_RESULT} EQUAL 0)
|
||||
message(FATAL_ERROR "server failed to start")
|
||||
message(FATAL_ERROR "unknown TLCP test case: ${TEST_CASE}")
|
||||
endif()
|
||||
|
||||
set(FOUND_INDEX -1)
|
||||
foreach(i RANGE 1 15)
|
||||
if (WIN32)
|
||||
execute_process(
|
||||
COMMAND cmd /c "start /B bin\\gmssl tlcp_client -host 127.0.0.1 -port ${TLCP_TEST_PORT} -cacert rootcacert.pem -cipher_suite TLS_ECC_SM4_CBC_SM3 > tlcp_client.log 2>&1"
|
||||
RESULT_VARIABLE CLIENT_RESULT
|
||||
TIMEOUT 5
|
||||
)
|
||||
else()
|
||||
execute_process(
|
||||
COMMAND bash -c "bin/gmssl tlcp_client -host 127.0.0.1 -port ${TLCP_TEST_PORT} -cacert rootcacert.pem -cipher_suite TLS_ECC_SM4_CBC_SM3 < /dev/null > tlcp_client.log 2>&1 &"
|
||||
RESULT_VARIABLE CLIENT_RESULT
|
||||
TIMEOUT 5
|
||||
)
|
||||
endif()
|
||||
if(NOT ${CLIENT_RESULT} EQUAL 0)
|
||||
message(FATAL_ERROR "client failed to start")
|
||||
endif()
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 1)
|
||||
if(EXISTS "tlcp_client.log")
|
||||
file(READ "tlcp_client.log" CLIENT_LOG_CONTENT)
|
||||
string(FIND "${CLIENT_LOG_CONTENT}" "Connection established" FOUND_INDEX)
|
||||
if(NOT ${FOUND_INDEX} EQUAL -1)
|
||||
break()
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(NOT WIN32)
|
||||
execute_process(
|
||||
COMMAND pkill -f "gmssl tlcp_server"
|
||||
OUTPUT_QUIET
|
||||
ERROR_QUIET
|
||||
)
|
||||
execute_process(
|
||||
COMMAND pkill -f "gmssl tlcp_client"
|
||||
OUTPUT_QUIET
|
||||
ERROR_QUIET
|
||||
)
|
||||
endif()
|
||||
|
||||
if(${FOUND_INDEX} EQUAL -1)
|
||||
if(EXISTS "tlcp_server.log")
|
||||
file(READ "tlcp_server.log" SERVER_LOG_CONTENT)
|
||||
message(STATUS "tlcp_server.log:\n${SERVER_LOG_CONTENT}")
|
||||
endif()
|
||||
if(EXISTS "tlcp_client.log")
|
||||
file(READ "tlcp_client.log" CLIENT_LOG_CONTENT)
|
||||
message(STATUS "tlcp_client.log:\n${CLIENT_LOG_CONTENT}")
|
||||
endif()
|
||||
message(FATAL_ERROR "Client did not establish connection with server.")
|
||||
endif()
|
||||
gmssl_run_tls_command_test(
|
||||
TEST_NAME ${TEST_NAME}
|
||||
PORT ${TEST_PORT}
|
||||
SERVER_ARGS
|
||||
tlcp_server
|
||||
-port ${TEST_PORT}
|
||||
-cert tlcp_server_certs.pem
|
||||
-key tlcp_server_keys.pem
|
||||
-pass P@ssw0rd
|
||||
CLIENT_ARGS
|
||||
tlcp_client
|
||||
-host 127.0.0.1
|
||||
-port ${TEST_PORT}
|
||||
-cacert rootcacert.pem
|
||||
-cipher_suite ${TEST_CIPHER_SUITE}
|
||||
-in ${TEST_NAME}_message.txt
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user