From 47c94adf145febe6063a30ba977e464ef8dd7108 Mon Sep 17 00:00:00 2001 From: Dai Zhiwei Date: Sat, 8 Oct 2022 16:06:10 +0800 Subject: [PATCH] rgw sm4 refactor impl and add rgw_crypt_chunk_size option --- src/common/legacy_config_opts.h | 2 + src/common/options.cc | 10 + src/rgw/rgw_crypt.cc | 429 +++++++++++++++++++-------- src/rgw/rgw_crypt.h | 3 + src/rgw/rgw_kms.cc | 36 ++- src/test/rgw/test_rgw_crypto.cc | 503 +++++++++++++++++++++++++++++++- 6 files changed, 848 insertions(+), 135 deletions(-) diff --git a/src/common/legacy_config_opts.h b/src/common/legacy_config_opts.h index 10c4d7d206..c2e9d9a83b 100644 --- a/src/common/legacy_config_opts.h +++ b/src/common/legacy_config_opts.h @@ -1241,6 +1241,7 @@ OPTION(rgw_max_attr_size, OPT_SIZE) OPTION(rgw_max_attrs_num_in_req, OPT_U64) OPTION(rgw_max_chunk_size, OPT_INT) +OPTION(rgw_crypt_chunk_size, OPT_INT) OPTION(rgw_put_obj_min_window_size, OPT_INT) OPTION(rgw_put_obj_max_window_size, OPT_INT) OPTION(rgw_max_put_size, OPT_U64) @@ -1527,6 +1528,7 @@ OPTION(rgw_crypt_kmip_s3_key_template, OPT_STR) // sse-s3; kmip key names OPTION(rgw_crypt_s3_kms_encryption_keys, OPT_STR) // extra keys that may be used for aws:kms // defined as map "key1=YmluCmJvb3N0CmJvb3N0LQ== key2=b3V0CnNyYwpUZXN0aW5nCg==" +OPTION(rgw_crypt_s3_kms_algorithm, OPT_STR) // SSE-KMS encryption algorithm, support aes and sm4 OPTION(rgw_crypt_suppress_logs, OPT_BOOL) // suppress logs that might print customer key OPTION(rgw_list_bucket_min_readahead, OPT_INT) // minimum number of entries to read from rados for bucket listing diff --git a/src/common/options.cc b/src/common/options.cc index cef26003c2..dcc22b0ff4 100644 --- a/src/common/options.cc +++ b/src/common/options.cc @@ -5772,6 +5772,11 @@ std::vector