This commit is contained in:
blue-lemon0104
2026-04-07 15:45:41 +08:00
parent 0120fa9ce3
commit 46fa58f6f8
27 changed files with 527 additions and 2818 deletions

View File

@@ -93,22 +93,18 @@ set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}" )
message(${CMAKE_MODULE_PATH})
file(GLOB_RECURSE Cpp_Files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "src/encryptsql/*.cpp" )
file(GLOB_RECURSE C_Files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "src/encryptsql/*.c")
# file(GLOB_RECURSE KMS_Cpp_Files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "src/KMS/*.cpp")
file(GLOB_RECURSE DEK_Cpp_Files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "src/KMSAdapter/*.cpp")
add_subdirectory(src/KMS)
# file(GLOB_RECURSE UtilsFiles RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "src/utils/*.cpp")
#set(Files "${Cpp_Files};${C_Files};src/utils/cryptoUtils.cpp;src/utils/cryptoCaller.cpp;src/utils/utils.cpp;src/utils/base64.c;src/utils/opensslUtils.cpp"
# src/KMS/KeyManagementService.cpp
# src/KMS/json.hpp)
# set(Files "${Cpp_Files};${C_Files};${KMS_Cpp_Files};${DEK_Cpp_Files};src/utils/cryptoUtils.cpp;src/utils/cryptoCaller.cpp;src/utils/utils.cpp;src/utils/base64.c;src/utils/opensslUtils.cpp")
set(Files "${Cpp_Files};${C_Files};${DEK_Cpp_Files};src/utils/cryptoUtils.cpp;src/utils/cryptoCaller.cpp;src/utils/utils.cpp;src/utils/base64.c;src/utils/opensslUtils.cpp")
list(REMOVE_ITEM Files "src/crypto/symmetria_2/symmetria_2/Interface_c.c")
@@ -177,11 +173,6 @@ filter_regex(EXCLUDE "Interface_c" Files ${Files})
filter_regex(EXCLUDE "symmetria" Files ${Files})
# message(STATUS ${SOURCES})
# find_package(PkgConfig REQUIRED)
# pkg_search_module(OPENSSL REQUIRED openssl)
# pkg_search_module(GMP REQUIRED gmp)
find_package(jsoncpp REQUIRED)
find_package(GMP REQUIRED)
find_package(LOG4CPP REQUIRED)
@@ -206,8 +197,10 @@ set(jsoncpp_LIBRARY jsoncpp_lib)
set(jsoncpp_STATIC_LIBRARY jsoncpp_lib_static)
SET(CryptoLib src/crypto/cryptolib)
set(PG_LIB_PATH "/usr/local/postgresql/lib")
set(PG_INCLUDE_PATH "/usr/local/postgresql/include")
# TODO UPDATE
set(PG_INSTALL_DIR "/usr/local/postgresql" CACHE PATH "PostgreSQL install dir")
set(PG_LIB_PATH "${PG_INSTALL_DIR}/lib")
set(PG_INCLUDE_PATH "${PG_INSTALL_DIR}/include")
include_directories(src/utils ${OPENSSL_INCLUDE_DIR} ${GMP_INCLUDE_DIR} ${CryptoLib}/symmetria ${jsoncpp_INCLUDE} ${PG_INCLUDE_PATH})
@@ -216,7 +209,6 @@ SET(SYM_Lib symmetria)
SET(HE_Lib he)
SET(ORE_Lib ore)
add_subdirectory(${CryptoLib})
# add_subdirectory(src/Server)
add_subdirectory(src/KeyDistribution)
if(${CMAKE_BUILD_TYPE} EQUAL "Debug")
@@ -224,15 +216,29 @@ if(${CMAKE_BUILD_TYPE} EQUAL "Debug")
endif()
# add_subdirectory(tests)
add_library(${TARGET} SHARED ${Files})
# target_link_libraries(${TARGET} ${OPENSSL_LIBRARIES} ${jsoncpp_LIBRARY} ${KMS_LIBRARY} -L${PG_LIB_PATH})
target_link_libraries(${TARGET} ${OPENSSL_LIBRARIES} ${jsoncpp_LIBRARY} ${KMS_LIBRARY} -L${PG_LIB_PATH} keydistribution_client tls_server_host)
target_link_libraries(${TARGET}
${OPENSSL_LIBRARIES}
${jsoncpp_LIBRARY}
${KMS_LIBRARY}
-L${PG_LIB_PATH}
keydistribution_client tls_server_host)
if(NO_ENCRYPTSQL_USE_RECOVERY)
target_compile_definitions(your_target PRIVATE NO_ENCRYPTSQL_USE_RECOVERY)
endif()
# TODO UPDATE
target_link_libraries(encryptsql
/new_enc/postgresql-14.2/src/port/libpgport.a
/new_enc/postgresql-14.2/src/common/libpgcommon.a
)
target_link_libraries(${TARGET} -Wl,--no-as-needed /usr/local/lib/libgmssl.so -Wl,--as-needed)
target_link_libraries(${TARGET} ${SYM_Lib})
target_include_directories(${TARGET} PRIVATE include pg_include ${KMS_INCLUDE_DIRS} src)
target_include_directories(${TARGET} PRIVATE
include
pg_include
${KMS_INCLUDE_DIRS} src)
# if(${USE_SGX})
# add_custom_target( genKey ALL
@@ -248,4 +254,34 @@ add_executable(restore src/bkup/restore.cpp)
# 链接 stdc++fsGCC 8/9 必需)
target_link_libraries(backup stdc++fs)
target_link_libraries(restore stdc++fs)
target_link_libraries(restore stdc++fs)
set(ENCRYPTSQL_INSTALL_DIR "/usr/local/postgresql" CACHE PATH "PostgreSQL install prefix (e.g., /usr/local/postgresql)")
set(ENCRYPTSQL_CONFIG_DIR "/etc/encryptsql" CACHE PATH "Directory for encryptsql config files (e.g., map.json)")
set(DK_SERVER_HOST "127.0.0.1" CACHE STRING "DK server host")
set(DK_SERVER_PORT "9443" CACHE STRING "DK server port")
if(NOT ENCRYPTSQL_INSTALL_DIR)
message(FATAL_ERROR "ENCRYPTSQL_INSTALL_DIR must be specified via -DENCRYPTSQL_INSTALL_DIR=...")
endif()
configure_file(en_config.h.in ../include/en_config.h @ONLY)
configure_file(en_config.h.in ../src/utils/en_config.h @ONLY)
target_include_directories(${TARGET} PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
install(FILES
createudf.sql
mask_funcs.sql
DESTINATION ${ENCRYPTSQL_INSTALL_DIR}
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
install(FILES
config.json
map.json
DESTINATION ${ENCRYPTSQL_CONFIG_DIR}
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ)
install(TARGETS backup restore
RUNTIME DESTINATION ${ENCRYPTSQL_INSTALL_DIR}/bin)