@@ -8,7 +8,7 @@ include(CheckCSourceRuns)
88
99enable_testing ()
1010
11- find_package (OpenSSL 3.0 REQUIRED )
11+ find_package (OpenSSL 3.4 REQUIRED )
1212
1313if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES )
1414 message (STATUS "Setting build type to 'RelWithDebInfo' as none was specified." )
@@ -29,12 +29,12 @@ if (CMAKE_C_COMPILER_ID MATCHES "Clang")
2929 set (CMAKE_C_FLAGS_RELEASE -O2)
3030 set (CMAKE_C_FLAGS_DEBUG "-O0 -ggdb" )
3131 set (CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -ggdb" )
32- add_compile_options (-Werror -Wall -Wno-unused-parameter -Wno-unused-function -Wno-missing-braces -Qunused-arguments -Wno-deprecated-declarations )
32+ add_compile_options (-Werror -Wall -Wno-unused-parameter -Wno-unused-function -Wno-missing-braces -Qunused-arguments -Wno-deprecated-declarations -Wno-error= \ # warnings )
3333elseif (CMAKE_C_COMPILER_ID MATCHES "GNU" )
3434 set (CMAKE_C_FLAGS_RELEASE -O2)
3535 set (CMAKE_C_FLAGS_DEBUG "-O0 -ggdb" )
3636 set (CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -ggdb" )
37- add_compile_options (-Werror -Wall -Wno-unused-parameter -Wno-unused-function -Wno-missing-braces -Wno-error=unknown-pragmas -Wno-error=pragmas -Wno-deprecated-declarations )
37+ add_compile_options (-Werror -Wall -Wno-unused-parameter -Wno-unused-function -Wno-missing-braces -Wno-error=unknown-pragmas -Wno-error=pragmas -Wno-deprecated-declarations -Wno-error=cpp )
3838elseif (CMAKE_C_COMPILER_ID MATCHES "MSVC" )
3939 add_definitions (-D_CRT_SECURE_NO_WARNINGS )
4040 add_definitions (-D_CRT_DEPRECATED_NO_WARNINGS )
@@ -204,15 +204,25 @@ set(GOST_ENGINE_SOURCE_FILES
204204
205205set (GOST_PROV_SOURCE_FILES
206206 gost_prov.c
207+ gost_prov.h
207208 gost_prov_cipher.c
208209 gost_prov_digest.c
209210 gost_prov_mac.c
211+ gost_prov_keymgmt.c
212+ gost_prov_encoder.c
213+ gost_prov_signature.c
214+ gost_prov_decoder.c
215+ gost_prov_keyexch.c
216+ gost_prov_tls.c
217+ gost_prov_tls.h
210218 )
211219
212220set (TEST_ENVIRONMENT_COMMON
221+ TLS13_PATCHED_OPENSSL=${TLS13_PATCHED_OPENSSL}
213222 CMAKE_CURRENT_SOURCE_DIR =${CMAKE_CURRENT_SOURCE_DIR }
214223 PERL5LIB=${CMAKE_CURRENT_SOURCE_DIR } /test
215224 OPENSSL_PROGRAM=${OPENSSL_PROGRAM}
225+ OPENSSL_MODULES=${CMAKE_RUNTIME_OUTPUT_DIRECTORY }
216226 OPENSSL_CRYPTO_LIBRARY=${OPENSSL_CRYPTO_LIBRARY}
217227 )
218228
@@ -247,6 +257,13 @@ set_tests_properties(ciphers-with-provider
247257 PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_PROVIDER} " )
248258
249259# test_curves is an internals testing program, it doesn't need a test env
260+
261+ add_executable (test_ecdhe test_ecdhe.c )
262+ target_link_libraries (test_ecdhe gost_core gost_err )
263+ add_test (NAME ecdhe COMMAND test_ecdhe )
264+ set_tests_properties (ecdhe
265+ PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_ENGINE} " )
266+
250267add_executable (test_curves test_curves.c )
251268target_link_libraries (test_curves gost_core gost_err )
252269add_test (NAME curves COMMAND test_curves )
@@ -295,14 +312,17 @@ add_executable(test_gost89 test_gost89.c)
295312target_link_libraries (test_gost89 gost_core gost_err )
296313add_test (NAME gost89 COMMAND test_gost89 )
297314
298- add_executable (test_mgm test_mgm.c )
299- target_link_libraries (test_mgm OpenSSL::Crypto )
300- add_test (NAME mgm-with-engine COMMAND test_mgm )
301- set_tests_properties (mgm-with-engine
302- PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_ENGINE} " )
303- add_test (NAME mgm-with-provider COMMAND test_mgm )
304- set_tests_properties (mgm-with-provider
305- PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_PROVIDER} " )
315+ if (TLS13_PATCHED_OPENSSL)
316+ add_executable (test_mgm test_mgm.c )
317+ target_link_libraries (test_mgm OpenSSL::Crypto )
318+ add_test (NAME mgm-with-engine COMMAND test_mgm )
319+ set_tests_properties (mgm-with-engine
320+ PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_ENGINE} " )
321+ add_test (NAME mgm-with-provider COMMAND test_mgm )
322+ set_tests_properties (mgm-with-provider
323+ PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_PROVIDER} " )
324+ set_property (TARGET test_mgm APPEND PROPERTY COMPILE_DEFINITIONS ENGINE_DIR="${OUTPUT_DIRECTORY} " )
325+ endif ()
306326
307327if (NOT SKIP_PERL_TESTS)
308328 execute_process (COMMAND perl -MTest2::V0 -e ""
@@ -330,14 +350,14 @@ set(BINARY_TESTS_TARGETS
330350 test_digest
331351 test_ciphers
332352 test_curves
353+ test_ecdhe
333354 test_params
334355 test_derive
335356 test_sign
336357 test_context
337358 test_keyexpimp
338359 test_gost89
339360 test_tls
340- test_mgm
341361 )
342362set_property (TARGET ${BINARY_TESTS_TARGETS} APPEND PROPERTY COMPILE_DEFINITIONS ENGINE_DIR="${OUTPUT_DIRECTORY} " )
343363
@@ -410,12 +430,23 @@ add_custom_target(tags
410430 COMMAND ctags -R . ${OPENSSL_ROOT_DIR}
411431 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR } )
412432
413- add_custom_target (tcl_tests
433+ add_custom_target (tcl_tests_provider
434+ COMMAND OPENSSL_LIBCRYPTO=${OPENSSL_CRYPTO_LIBRARY}
435+ OPENSSL_APP=${OPENSSL_PROGRAM}
436+ TESTSRC=${CMAKE_SOURCE_DIR}/tcl_tests
437+ TESTDIR=${CMAKE_BINARY_DIR}/tcl_tests_provider
438+ OPENSSL_MODULES_DIR=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
439+ OPENSSL_CONF=${CMAKE_SOURCE_DIR}/tcl_tests/openssl-gost-provider.cnf
440+ sh ./runtest.sh
441+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR } /tcl_tests )
442+
443+ add_custom_target (tcl_tests_engine
414444 COMMAND OPENSSL_LIBCRYPTO=${OPENSSL_CRYPTO_LIBRARY}
415445 OPENSSL_APP=${OPENSSL_PROGRAM}
416446 TESTSRC=${CMAKE_SOURCE_DIR}/tcl_tests
417447 TESTDIR=${CMAKE_BINARY_DIR}/tcl_tests
418448 ENGINE_DIR=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
449+ OPENSSL_CONF=${CMAKE_SOURCE_DIR}/tcl_tests/openssl-gost-engine.cnf
419450 sh ./runtest.sh
420451 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR } /tcl_tests )
421452
0 commit comments