The error source files, e_gost_err.c and e_gost_err.h, are not
suitable for providers as they are, so we need to move those away from
the core library, and leave it to the provider code to deal with it.
gost_grasshopper_cipher.c
)
gost_grasshopper_cipher.c
)
-set(GOST_CORE_SOURCE_FILES
+set(GOST_ERR_SOURCE_FILES
e_gost_err.c
e_gost_err.h
e_gost_err.c
e_gost_err.h
+ )
+
+set(GOST_CORE_SOURCE_FILES
gost_ameth.c
gost_pmeth.c
gost_ctl.c
gost_ameth.c
gost_pmeth.c
gost_ctl.c
# test_curves is an internals testing program, it doesn't need a test env
add_executable(test_curves test_curves.c)
# test_curves is an internals testing program, it doesn't need a test env
add_executable(test_curves test_curves.c)
-target_link_libraries(test_curves gost_core)
+target_link_libraries(test_curves gost_core gost_err)
add_test(NAME curves COMMAND test_curves)
add_executable(test_params test_params.c)
add_test(NAME curves COMMAND test_curves)
add_executable(test_params test_params.c)
# test_keyexpimp is an internals testing program, it doesn't need a test env
add_executable(test_keyexpimp test_keyexpimp.c)
#target_compile_definitions(test_keyexpimp PUBLIC -DOPENSSL_LOAD_CONF)
# test_keyexpimp is an internals testing program, it doesn't need a test env
add_executable(test_keyexpimp test_keyexpimp.c)
#target_compile_definitions(test_keyexpimp PUBLIC -DOPENSSL_LOAD_CONF)
-target_link_libraries(test_keyexpimp gost_core)
+target_link_libraries(test_keyexpimp gost_core gost_err)
add_test(NAME keyexpimp COMMAND test_keyexpimp)
# test_gost89 is an internals testing program, it doesn't need a test env
add_executable(test_gost89 test_gost89.c)
add_test(NAME keyexpimp COMMAND test_keyexpimp)
# test_gost89 is an internals testing program, it doesn't need a test env
add_executable(test_gost89 test_gost89.c)
-target_link_libraries(test_gost89 gost_core)
+target_link_libraries(test_gost89 gost_core gost_err)
add_test(NAME gost89 COMMAND test_gost89)
if(NOT SKIP_PERL_TESTS)
add_test(NAME gost89 COMMAND test_gost89)
if(NOT SKIP_PERL_TESTS)
endif()
add_executable(sign benchmark/sign.c)
endif()
add_executable(sign benchmark/sign.c)
-target_link_libraries(sign gost_core ${CLOCK_GETTIME_LIB})
+target_link_libraries(sign gost_core gost_err ${CLOCK_GETTIME_LIB})
# All that may need to load just built engine will have path to it defined.
set(BINARY_TESTS_TARGETS
# All that may need to load just built engine will have path to it defined.
set(BINARY_TESTS_TARGETS
add_library(gost_core STATIC ${GOST_LIB_SOURCE_FILES})
set_target_properties(gost_core PROPERTIES POSITION_INDEPENDENT_CODE ON)
target_link_libraries(gost_core PRIVATE OpenSSL::Crypto)
add_library(gost_core STATIC ${GOST_LIB_SOURCE_FILES})
set_target_properties(gost_core PROPERTIES POSITION_INDEPENDENT_CODE ON)
target_link_libraries(gost_core PRIVATE OpenSSL::Crypto)
+add_library(gost_err STATIC ${GOST_ERR_SOURCE_FILES})
+set_target_properties(gost_err PROPERTIES POSITION_INDEPENDENT_CODE ON)
+target_link_libraries(gost_err PRIVATE OpenSSL::Crypto)
# The GOST engine in module form
add_library(gost_engine MODULE ${GOST_ENGINE_SOURCE_FILES})
# The GOST engine in module form
add_library(gost_engine MODULE ${GOST_ENGINE_SOURCE_FILES})
# module suffix should be
set_target_properties(gost_engine PROPERTIES
PREFIX "" OUTPUT_NAME "gost" SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX})
# module suffix should be
set_target_properties(gost_engine PROPERTIES
PREFIX "" OUTPUT_NAME "gost" SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX})
-target_link_libraries(gost_engine PRIVATE gost_core)
+target_link_libraries(gost_engine PRIVATE gost_core gost_err)
# The GOST engine in library form
add_library(lib_gost_engine SHARED ${GOST_ENGINE_SOURCE_FILES})
# The GOST engine in library form
add_library(lib_gost_engine SHARED ${GOST_ENGINE_SOURCE_FILES})
)
add_executable(gostsum ${GOST_SUM_SOURCE_FILES})
)
add_executable(gostsum ${GOST_SUM_SOURCE_FILES})
-target_link_libraries(gostsum gost_core)
+target_link_libraries(gostsum gost_core gost_err)
set(GOST_12_SUM_SOURCE_FILES
gost12sum.c
)
add_executable(gost12sum ${GOST_12_SUM_SOURCE_FILES})
set(GOST_12_SUM_SOURCE_FILES
gost12sum.c
)
add_executable(gost12sum ${GOST_12_SUM_SOURCE_FILES})
-target_link_libraries(gost12sum gost_core)
+target_link_libraries(gost12sum gost_core gost_err)
set_source_files_properties(tags PROPERTIES GENERATED true)
add_custom_target(tags
set_source_files_properties(tags PROPERTIES GENERATED true)
add_custom_target(tags