X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=CMakeLists.txt;h=f46fca351d44aff36404fd0f3274dd35ef8d3268;hb=c27d64c2a318288c06fe4bd6bb852d85c3ddb4fb;hp=b6476e7bc684f0974772f2192c57933ae74333da;hpb=265d89dcbce7fce4fa2b560b70597132fd8eb3b2;p=openssl-gost%2Fengine.git diff --git a/CMakeLists.txt b/CMakeLists.txt index b6476e7..f46fca3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,6 +18,7 @@ find_program(OPENSSL_PROGRAM openssl PATHS ${OPENSSL_ROOT_DIR} PATH_SUFFIXES apps bin NO_DEFAULT_PATH) message(STATUS "Found OpenSSL application: ${OPENSSL_PROGRAM}") include_directories(${OPENSSL_INCLUDE_DIR}) +set(OPENSSL_MODULES_DIR ${CMAKE_INSTALL_LIBDIR}/ossl-modules) if (CMAKE_C_COMPILER_ID MATCHES "Clang") set(CMAKE_C_FLAGS_RELEASE -O2) @@ -199,26 +200,47 @@ set(GOST_ENGINE_SOURCE_FILES set(GOST_PROV_SOURCE_FILES gost_prov.c + gost_prov_cipher.c + gost_prov_digest.c + gost_prov_mac.c ) -set(TEST_ENVIRONMENT +set(TEST_ENVIRONMENT_COMMON CMAKE_CURRENT_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} PERL5LIB=${CMAKE_CURRENT_SOURCE_DIR}/test - OPENSSL_ENGINES=${CMAKE_RUNTIME_OUTPUT_DIRECTORY} OPENSSL_PROGRAM=${OPENSSL_PROGRAM} OPENSSL_CRYPTO_LIBRARY=${OPENSSL_CRYPTO_LIBRARY} + ) + +set(TEST_ENVIRONMENT_ENGINE + ${TEST_ENVIRONMENT_COMMON} + OPENSSL_ENGINES=${CMAKE_RUNTIME_OUTPUT_DIRECTORY} OPENSSL_CONF=${CMAKE_CURRENT_SOURCE_DIR}/test/engine.cnf ) +set(TEST_ENVIRONMENT_PROVIDER + ${TEST_ENVIRONMENT_COMMON} + OPENSSL_MODULES=${CMAKE_RUNTIME_OUTPUT_DIRECTORY} + OPENSSL_CONF=${CMAKE_CURRENT_SOURCE_DIR}/test/provider.cnf + ) + add_executable(test_digest test_digest.c) target_link_libraries(test_digest OpenSSL::Crypto) -add_test(NAME digest COMMAND test_digest) -set_tests_properties(digest PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT}") +add_test(NAME digest-with-engine COMMAND test_digest) +set_tests_properties(digest-with-engine + PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_ENGINE}") +add_test(NAME digest-with-provider COMMAND test_digest) +set_tests_properties(digest-with-provider + PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_PROVIDER}") add_executable(test_ciphers test_ciphers.c) target_link_libraries(test_ciphers OpenSSL::Crypto) -add_test(NAME ciphers COMMAND test_ciphers) -set_tests_properties(ciphers PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT}") +add_test(NAME ciphers-with-engine COMMAND test_ciphers) +set_tests_properties(ciphers-with-engine + PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_ENGINE}") +add_test(NAME ciphers-with-provider COMMAND test_ciphers) +set_tests_properties(ciphers-with-provider + PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_PROVIDER}") # test_curves is an internals testing program, it doesn't need a test env add_executable(test_curves test_curves.c) @@ -227,28 +249,36 @@ add_test(NAME curves COMMAND test_curves) add_executable(test_params test_params.c) target_link_libraries(test_params OpenSSL::Crypto) -add_test(NAME parameters COMMAND test_params) -set_tests_properties(parameters PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT}") +add_test(NAME parameters-with-engine COMMAND test_params) +set_tests_properties(parameters-with-engine + PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_ENGINE}") add_executable(test_derive test_derive.c) target_link_libraries(test_derive OpenSSL::Crypto) -add_test(NAME derive COMMAND test_derive) -set_tests_properties(derive PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT}") +add_test(NAME derive-with-engine COMMAND test_derive) +set_tests_properties(derive-with-engine + PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_ENGINE}") add_executable(test_sign test_sign.c) target_link_libraries(test_sign OpenSSL::Crypto) -add_test(NAME sign/verify COMMAND test_sign) -set_tests_properties(sign/verify PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT}") +add_test(NAME sign/verify-with-engine COMMAND test_sign) +set_tests_properties(sign/verify-with-engine + PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_ENGINE}") add_executable(test_tls test_tls.c) target_link_libraries(test_tls OpenSSL::SSL) -add_test(NAME TLS COMMAND test_tls) -set_tests_properties(TLS PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT}") +add_test(NAME TLS-with-engine COMMAND test_tls) +set_tests_properties(TLS-with-engine + PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_ENGINE}") add_executable(test_context test_context.c) target_link_libraries(test_context OpenSSL::Crypto) -add_test(NAME context COMMAND test_context) -set_tests_properties(context PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT}") +add_test(NAME context-with-engine COMMAND test_context) +set_tests_properties(context-with-engine + PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_ENGINE}") +add_test(NAME context-with-provider COMMAND test_context) +set_tests_properties(context-with-provider + PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_PROVIDER}") # test_keyexpimp is an internals testing program, it doesn't need a test env add_executable(test_keyexpimp test_keyexpimp.c) @@ -266,10 +296,13 @@ if(NOT SKIP_PERL_TESTS) ERROR_QUIET RESULT_VARIABLE HAVE_TEST2_V0) if(NOT HAVE_TEST2_V0) add_test(NAME engine - COMMAND prove --merge -PWrapOpenSSL ${CMAKE_CURRENT_SOURCE_DIR}/test) - set_tests_properties(engine PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT}") + COMMAND prove --merge -PWrapOpenSSL ${CMAKE_CURRENT_SOURCE_DIR}/test :: engine) + set_tests_properties(engine PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_ENGINE}") + add_test(NAME provider + COMMAND prove --merge -PWrapOpenSSL ${CMAKE_CURRENT_SOURCE_DIR}/test :: provider) + set_tests_properties(provider PROPERTIES ENVIRONMENT "${TEST_ENVIRONMENT_PROVIDER}") else() - message(STATUS "No Test2::V0 perl module (engine tests skipped)") + message(STATUS "No Test2::V0 perl module (engine and provider tests skipped)") endif() endif() @@ -378,6 +411,12 @@ install(TARGETS lib_gost_engine EXPORT GostEngineConfig LIBRARY DESTINATION ${CM install(TARGETS gost_engine EXPORT GostEngineConfig LIBRARY DESTINATION ${OPENSSL_ENGINES_DIR} RUNTIME DESTINATION ${OPENSSL_ENGINES_DIR}) +# install provider in library and module form +install(TARGETS lib_gost_prov EXPORT GostProviderConfig + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) +install(TARGETS gost_prov EXPORT GostProviderConfig + LIBRARY DESTINATION ${OPENSSL_MODULES_DIR} + RUNTIME DESTINATION ${OPENSSL_MODULES_DIR}) if (MSVC) install(FILES $ EXPORT GostEngineConfig DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL) @@ -385,5 +424,10 @@ if (MSVC) EXPORT GostEngineConfig DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL) install(FILES $ EXPORT GostEngineConfig DESTINATION ${OPENSSL_ENGINES_DIR} OPTIONAL) + install(FILES $ + EXPORT GostProviderConfig DESTINATION ${CMAKE_INSTALL_LIBDIR} OPTIONAL) + install(FILES $ + EXPORT GostProviderConfig DESTINATION ${OPENSSL_MODULES_DIR} OPTIONAL) endif() install(EXPORT GostEngineConfig DESTINATION GostEngine/share/cmake/GostEngine) +install(EXPORT GostProviderConfig DESTINATION GostEngine/share/cmake/GostProvider)