mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-24 18:40:38 +00:00
Fixes #23225 Fixes #23185 Adds a "wrap_sink" (with default implementation) to sstables::file_io_extension, and moves extension wrapping of file and sink objects to storage level. (Wrapping/handling on sstable level would be problematic, because for file storage we typically re-use the sstable file objects for sinks, whereas for S3 we do not). This ensures we apply encryption on both read and write, whereas we previously only did so on read -> fail. Adds io wrapper objects for adapting file/sink for default implementation, as well as a proper encrypted sink implementation for EAR. Unit tests for io objects and a macro test for S3 encrypted storage included. Closes scylladb/scylladb#23261 * github.com:scylladb/scylladb: encryption: Add "wrap_sink" to encryption sstable extension encrypted_file_impl: Add encrypted_data_sink sstables::storage: Move wrapping sstable components to storage provider sstables::file_io_extension: Add a "wrap_sink" method. sstables::file_io_extension: Make sstable argument to "wrap" const utils: Add "io-wrappers", useful IO helper types
84 lines
2.0 KiB
CMake
84 lines
2.0 KiB
CMake
find_package(cryptopp REQUIRED)
|
|
find_package(rapidxml REQUIRED)
|
|
find_package(GnuTLS 3.3.26 REQUIRED)
|
|
add_library(utils STATIC)
|
|
target_sources(utils
|
|
PRIVATE
|
|
UUID_gen.cc
|
|
advanced_rpc_compressor.cc
|
|
alien_worker.cc
|
|
arch/powerpc/crc32-vpmsum/crc32_wrapper.cc
|
|
arch/powerpc/crc32-vpmsum/crc32.S
|
|
array-search.cc
|
|
ascii.cc
|
|
base64.cc
|
|
big_decimal.cc
|
|
bloom_calculations.cc
|
|
bloom_filter.cc
|
|
buffer_input_stream.cc
|
|
build_id.cc
|
|
config_file.cc
|
|
dict_trainer.cc
|
|
directories.cc
|
|
disk-error-handler.cc
|
|
disk_space_monitor.cc
|
|
dynamic_bitset.cc
|
|
error_injection.cc
|
|
exceptions.cc
|
|
file_lock.cc
|
|
gz/crc_combine.cc
|
|
gz/crc_combine_table.cc
|
|
hashers.cc
|
|
histogram_metrics_helper.cc
|
|
human_readable.cc
|
|
i_filter.cc
|
|
io-wrappers.cc
|
|
large_bitset.cc
|
|
like_matcher.cc
|
|
limiting_data_source.cc
|
|
lister.cc
|
|
logalloc.cc
|
|
managed_bytes.cc
|
|
multiprecision_int.cc
|
|
murmur_hash.cc
|
|
on_internal_error.cc
|
|
pretty_printers.cc
|
|
rate_limiter.cc
|
|
rjson.cc
|
|
runtime.cc
|
|
to_string.cc
|
|
updateable_value.cc
|
|
utf8.cc
|
|
uuid.cc
|
|
labels.cc
|
|
aws_sigv4.cc
|
|
stream_compressor.cc
|
|
s3/aws_error.cc
|
|
s3/client.cc
|
|
s3/retryable_http_client.cc
|
|
s3/retry_strategy.cc
|
|
s3/s3_retry_strategy.cc
|
|
s3/credentials_providers/aws_credentials_provider.cc
|
|
s3/credentials_providers/environment_aws_credentials_provider.cc
|
|
s3/credentials_providers/instance_profile_credentials_provider.cc
|
|
s3/credentials_providers/sts_assume_role_credentials_provider.cc
|
|
s3/credentials_providers/aws_credentials_provider_chain.cc
|
|
s3/utils/manip_s3.cc)
|
|
target_include_directories(utils
|
|
PUBLIC
|
|
${CMAKE_SOURCE_DIR}
|
|
${RAPIDJSON_INCLUDE_DIRS})
|
|
target_link_libraries(utils
|
|
PUBLIC
|
|
Seastar::seastar
|
|
xxHash::xxhash
|
|
PRIVATE
|
|
Boost::regex
|
|
cryptopp::cryptopp
|
|
rapidxml::rapidxml
|
|
yaml-cpp::yaml-cpp
|
|
GnuTLS::gnutls)
|
|
|
|
check_headers(check-headers utils
|
|
GLOB_RECURSE ${CMAKE_CURRENT_SOURCE_DIR}/*.hh)
|