mirror of https://github.com/postgres/postgres
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
202 lines
5.1 KiB
202 lines
5.1 KiB
curldep = dependency('libcurl')
|
|
|
|
pg_tde_sources = files(
|
|
'src/access/pg_tde_tdemap.c',
|
|
'src/access/pg_tde_xlog.c',
|
|
'src/access/pg_tde_xlog_keys.c',
|
|
'src/access/pg_tde_xlog_smgr.c',
|
|
'src/catalog/tde_keyring.c',
|
|
'src/catalog/tde_keyring_parse_opts.c',
|
|
'src/catalog/tde_principal_key.c',
|
|
'src/common/pg_tde_utils.c',
|
|
'src/encryption/enc_aes.c',
|
|
'src/encryption/enc_tde.c',
|
|
'src/keyring/keyring_api.c',
|
|
'src/keyring/keyring_curl.c',
|
|
'src/keyring/keyring_file.c',
|
|
'src/keyring/keyring_kmip.c',
|
|
'src/keyring/keyring_kmip_impl.c',
|
|
'src/keyring/keyring_vault.c',
|
|
'src/pg_tde.c',
|
|
'src/pg_tde_event_capture.c',
|
|
'src/pg_tde_guc.c',
|
|
'src/smgr/pg_tde_smgr.c',
|
|
)
|
|
|
|
tde_frontend_sources = files(
|
|
'src/access/pg_tde_tdemap.c',
|
|
'src/access/pg_tde_xlog_keys.c',
|
|
'src/access/pg_tde_xlog_smgr.c',
|
|
'src/catalog/tde_keyring.c',
|
|
'src/catalog/tde_keyring_parse_opts.c',
|
|
'src/catalog/tde_principal_key.c',
|
|
'src/common/pg_tde_utils.c',
|
|
'src/encryption/enc_aes.c',
|
|
'src/encryption/enc_tde.c',
|
|
'src/keyring/keyring_api.c',
|
|
'src/keyring/keyring_curl.c',
|
|
'src/keyring/keyring_file.c',
|
|
'src/keyring/keyring_kmip.c',
|
|
'src/keyring/keyring_kmip_impl.c',
|
|
'src/keyring/keyring_vault.c',
|
|
)
|
|
|
|
incdir = include_directories('src/include', '.', 'src/libkmip/libkmip/include/')
|
|
|
|
kmip = static_library(
|
|
'kmip',
|
|
files(
|
|
'src/libkmip/libkmip/src/kmip.c',
|
|
'src/libkmip/libkmip/src/kmip_bio.c',
|
|
'src/libkmip/libkmip/src/kmip_locate.c',
|
|
'src/libkmip/libkmip/src/kmip_memset.c'
|
|
),
|
|
c_args: [ '-w' ], # This is a 3rd party, disable warnings completely
|
|
include_directories: incdir
|
|
)
|
|
|
|
deps_update = {'dependencies': contrib_mod_args.get('dependencies') + [curldep]}
|
|
|
|
mod_args = contrib_mod_args + deps_update
|
|
|
|
pg_tde = shared_module('pg_tde',
|
|
pg_tde_sources,
|
|
c_pch: pch_postgres_h,
|
|
kwargs: mod_args,
|
|
include_directories: incdir,
|
|
link_whole: [kmip]
|
|
)
|
|
contrib_targets += pg_tde
|
|
|
|
ldflags = []
|
|
if host_system == 'darwin'
|
|
# On MacOS Shared Libraries and Loadable Modules are different things,
|
|
# so we need to pass an extra flag to the linker.
|
|
ldflags += '-bundle'
|
|
endif
|
|
|
|
install_data(
|
|
'pg_tde.control',
|
|
'pg_tde--1.0.sql',
|
|
'pg_tde--1.0--2.0.sql',
|
|
kwargs: contrib_data_args,
|
|
)
|
|
|
|
sql_tests = [
|
|
'access_control',
|
|
'alter_index',
|
|
'cache_alloc',
|
|
'change_access_method',
|
|
'create_database',
|
|
'default_principal_key',
|
|
'delete_principal_key',
|
|
'insert_update_delete',
|
|
'key_provider',
|
|
'kmip_test',
|
|
'partition_table',
|
|
'pg_tde_is_encrypted',
|
|
'recreate_storage',
|
|
'relocate',
|
|
'tablespace',
|
|
'toast_decrypt',
|
|
'vault_v2_test',
|
|
'version',
|
|
]
|
|
|
|
tap_tests = [
|
|
't/basic.pl',
|
|
't/change_key_provider.pl',
|
|
't/crash_recovery.pl',
|
|
't/key_rotate_tablespace.pl',
|
|
't/key_validation.pl',
|
|
't/multiple_extensions.pl',
|
|
't/pg_basebackup.pl',
|
|
't/pg_tde_change_key_provider.pl',
|
|
't/pg_rewind_basic.pl',
|
|
't/pg_rewind_databases.pl',
|
|
't/pg_rewind_extrafiles.pl',
|
|
't/pg_rewind_growing_files.pl',
|
|
't/pg_rewind_keep_recycled_wals.pl',
|
|
't/pg_rewind_min_recovery_point.pl',
|
|
't/pg_rewind_options.pl',
|
|
't/pg_rewind_pg_xlog_symlink.pl',
|
|
't/pg_rewind_same_timeline.pl',
|
|
't/pg_waldump_basic.pl',
|
|
't/pg_waldump_fullpage.pl',
|
|
't/replication.pl',
|
|
't/rotate_key.pl',
|
|
't/tde_heap.pl',
|
|
't/unlogged_tables.pl',
|
|
't/wal_archiving.pl',
|
|
't/wal_encrypt.pl',
|
|
't/wal_key_tli.pl',
|
|
't/2pc_replication.pl',
|
|
't/stream_rep.pl',
|
|
]
|
|
|
|
tests += {
|
|
'name': 'pg_tde',
|
|
'sd': meson.current_source_dir(),
|
|
'bd': meson.current_build_dir(),
|
|
'regress': {
|
|
'sql': sql_tests,
|
|
'regress_args': ['--temp-config', files('pg_tde.conf')],
|
|
'runningcheck': false,
|
|
},
|
|
'tap': {
|
|
'tests': tap_tests
|
|
},
|
|
}
|
|
|
|
pg_tde_inc = incdir
|
|
|
|
pg_tde_frontend = static_library('pg_tde_frontend',
|
|
tde_frontend_sources,
|
|
c_pch: pch_postgres_h,
|
|
c_args: ['-DFRONTEND'],
|
|
kwargs: mod_args,
|
|
include_directories: incdir,
|
|
link_whole: [kmip]
|
|
)
|
|
|
|
pg_tde_change_key_provider_sources = files(
|
|
'src/bin/pg_tde_change_key_provider.c',
|
|
)
|
|
|
|
pg_tde_change_key_provider = executable('pg_tde_change_key_provider',
|
|
pg_tde_change_key_provider_sources,
|
|
dependencies: [frontend_code, lz4, zstd],
|
|
c_args: ['-DFRONTEND'], # needed for xlogreader et al
|
|
kwargs: default_bin_args,
|
|
include_directories: [postgres_inc, pg_tde_inc],
|
|
link_with: [pg_tde_frontend]
|
|
)
|
|
contrib_targets += pg_tde_change_key_provider
|
|
|
|
pg_tde_archive_decrypt_sources = files(
|
|
'src/bin/pg_tde_archive_decrypt.c',
|
|
) + xlogreader_sources
|
|
|
|
pg_tde_archive_decrypt = executable('pg_tde_archive_decrypt',
|
|
pg_tde_archive_decrypt_sources,
|
|
dependencies: [frontend_code],
|
|
c_args: ['-DFRONTEND'], # needed for xlogreader et al
|
|
kwargs: default_bin_args,
|
|
include_directories: [postgres_inc, pg_tde_inc],
|
|
link_with: [pg_tde_frontend]
|
|
)
|
|
contrib_targets += pg_tde_archive_decrypt
|
|
|
|
pg_tde_restore_encrypt_sources = files(
|
|
'src/bin/pg_tde_restore_encrypt.c',
|
|
) + xlogreader_sources
|
|
|
|
pg_tde_restore_encrypt = executable('pg_tde_restore_encrypt',
|
|
pg_tde_restore_encrypt_sources,
|
|
dependencies: [frontend_code],
|
|
c_args: ['-DFRONTEND'], # needed for xlogreader et al
|
|
kwargs: default_bin_args,
|
|
include_directories: [postgres_inc, pg_tde_inc],
|
|
link_with: [pg_tde_frontend]
|
|
)
|
|
contrib_targets += pg_tde_restore_encrypt
|
|
|