From 68cec7b98c9ef061b0f02168f782e97d41f35d60 Mon Sep 17 00:00:00 2001 From: Christopher Hoffman Date: Wed, 8 Jan 2025 17:05:48 +0000 Subject: [PATCH] test: Add function policy populator for reuse in fscrypt tests. Fixes: https://tracker.ceph.com/issues/69161 Signed-off-by: Christopher Hoffman --- src/test/libcephfs/fscrypt.cc | 88 +++++++++-------------------------- 1 file changed, 23 insertions(+), 65 deletions(-) diff --git a/src/test/libcephfs/fscrypt.cc b/src/test/libcephfs/fscrypt.cc index fb544481acf..f3f463dce7c 100644 --- a/src/test/libcephfs/fscrypt.cc +++ b/src/test/libcephfs/fscrypt.cc @@ -97,6 +97,14 @@ void generate_remove_key_arg(ceph_fscrypt_key_identifier kid, fscrypt_remove_key arg->key_spec = key_spec; } +void populate_policy(struct ceph_fscrypt_key_identifier kid, struct fscrypt_policy_v2* policy) { + policy->version = 2; + policy->contents_encryption_mode = FSCRYPT_MODE_AES_256_XTS; + policy->filenames_encryption_mode = FSCRYPT_MODE_AES_256_CTS; + policy->flags = FSCRYPT_POLICY_FLAGS_PAD_32; + memcpy(policy->master_key_identifier, kid.raw, FSCRYPT_KEY_IDENTIFIER_SIZE); +} + int init_mount(struct ceph_mount_info** cmount){ int r = ceph_create(cmount, NULL); if (r < 0) { @@ -375,11 +383,7 @@ TEST(FSCrypt, SetPolicyNotEmptyDir) { r = ceph_add_fscrypt_key(cmount, fscrypt_key, sizeof(fscrypt_key), &kid, 1299); struct fscrypt_policy_v2 policy; - policy.version = 2; - policy.contents_encryption_mode = FSCRYPT_MODE_AES_256_XTS; - policy.filenames_encryption_mode = FSCRYPT_MODE_AES_256_CTS; - policy.flags = FSCRYPT_POLICY_FLAGS_PAD_32; - memcpy(policy.master_key_identifier, kid.raw, FSCRYPT_KEY_IDENTIFIER_SIZE); + populate_policy(kid, &policy); r = ceph_set_fscrypt_policy_v2(cmount, fd2, &policy); ASSERT_EQ(-ENOTEMPTY, r); @@ -411,11 +415,7 @@ TEST(FSCrypt, SetPolicyAlreadyExistSameKey) { r = ceph_add_fscrypt_key(cmount, fscrypt_key, sizeof(fscrypt_key), &kid, 1299); struct fscrypt_policy_v2 policy; - policy.version = 2; - policy.contents_encryption_mode = FSCRYPT_MODE_AES_256_XTS; - policy.filenames_encryption_mode = FSCRYPT_MODE_AES_256_CTS; - policy.flags = FSCRYPT_POLICY_FLAGS_PAD_32; - memcpy(policy.master_key_identifier, kid.raw, FSCRYPT_KEY_IDENTIFIER_SIZE); + populate_policy(kid, &policy); r = ceph_set_fscrypt_policy_v2(cmount, fd, &policy); ASSERT_EQ(0, r); @@ -437,11 +437,7 @@ TEST(FSCrypt, SetPolicyNonDir) { //setup policy struct fscrypt_policy_v2 policy; - policy.version = 2; - policy.contents_encryption_mode = FSCRYPT_MODE_AES_256_XTS; - policy.filenames_encryption_mode = FSCRYPT_MODE_AES_256_CTS; - policy.flags = FSCRYPT_POLICY_FLAGS_PAD_32; - memcpy(policy.master_key_identifier, kid.raw, FSCRYPT_KEY_IDENTIFIER_SIZE); + populate_policy(kid, &policy); //file string file_path = "file1"; @@ -484,11 +480,7 @@ TEST(FSCrypt, LockedListDir) { r = ceph_add_fscrypt_key(cmount, fscrypt_key, sizeof(fscrypt_key), &kid, 1299); struct fscrypt_policy_v2 policy; - policy.version = 2; - policy.contents_encryption_mode = FSCRYPT_MODE_AES_256_XTS; - policy.filenames_encryption_mode = FSCRYPT_MODE_AES_256_CTS; - policy.flags = FSCRYPT_POLICY_FLAGS_PAD_32; - memcpy(policy.master_key_identifier, kid.raw, FSCRYPT_KEY_IDENTIFIER_SIZE); + populate_policy(kid, &policy); r = ceph_set_fscrypt_policy_v2(cmount, fd, &policy); @@ -554,11 +546,7 @@ TEST(FSCrypt, ReadLockedDir) { r = ceph_add_fscrypt_key(cmount, fscrypt_key, sizeof(fscrypt_key), &kid, 1299); struct fscrypt_policy_v2 policy; - policy.version = 2; - policy.contents_encryption_mode = FSCRYPT_MODE_AES_256_XTS; - policy.filenames_encryption_mode = FSCRYPT_MODE_AES_256_CTS; - policy.flags = FSCRYPT_POLICY_FLAGS_PAD_32; - memcpy(policy.master_key_identifier, kid.raw, FSCRYPT_KEY_IDENTIFIER_SIZE); + populate_policy(kid, &policy); r = ceph_set_fscrypt_policy_v2(cmount, fd, &policy); @@ -622,11 +610,7 @@ TEST(FSCrypt, WriteLockedDir) { r = ceph_add_fscrypt_key(cmount, fscrypt_key, sizeof(fscrypt_key), &kid, 1299); struct fscrypt_policy_v2 policy; - policy.version = 2; - policy.contents_encryption_mode = FSCRYPT_MODE_AES_256_XTS; - policy.filenames_encryption_mode = FSCRYPT_MODE_AES_256_CTS; - policy.flags = FSCRYPT_POLICY_FLAGS_PAD_32; - memcpy(policy.master_key_identifier, kid.raw, FSCRYPT_KEY_IDENTIFIER_SIZE); + populate_policy(kid, &policy); r = ceph_set_fscrypt_policy_v2(cmount, fd, &policy); @@ -691,11 +675,7 @@ TEST(FSCrypt, LockedCreateSnap) { r = ceph_add_fscrypt_key(cmount, fscrypt_key, sizeof(fscrypt_key), &kid, 1299); struct fscrypt_policy_v2 policy; - policy.version = 2; - policy.contents_encryption_mode = FSCRYPT_MODE_AES_256_XTS; - policy.filenames_encryption_mode = FSCRYPT_MODE_AES_256_CTS; - policy.flags = FSCRYPT_POLICY_FLAGS_PAD_32; - memcpy(policy.master_key_identifier, kid.raw, FSCRYPT_KEY_IDENTIFIER_SIZE); + populate_policy(kid, &policy); r = ceph_set_fscrypt_policy_v2(cmount, fd, &policy); @@ -736,11 +716,7 @@ TEST(FSCrypt, RenameLockedSource) { r = ceph_add_fscrypt_key(cmount, fscrypt_key, sizeof(fscrypt_key), &kid, 1299); struct fscrypt_policy_v2 policy; - policy.version = 2; - policy.contents_encryption_mode = FSCRYPT_MODE_AES_256_XTS; - policy.filenames_encryption_mode = FSCRYPT_MODE_AES_256_CTS; - policy.flags = FSCRYPT_POLICY_FLAGS_PAD_32; - memcpy(policy.master_key_identifier, kid.raw, FSCRYPT_KEY_IDENTIFIER_SIZE); + populate_policy(kid, &policy); r = ceph_set_fscrypt_policy_v2(cmount, fd, &policy); @@ -805,11 +781,7 @@ TEST(FSCrypt, RenameLockedDest) { r = ceph_add_fscrypt_key(cmount, fscrypt_key, sizeof(fscrypt_key), &kid, 1299); struct fscrypt_policy_v2 policy; - policy.version = 2; - policy.contents_encryption_mode = FSCRYPT_MODE_AES_256_XTS; - policy.filenames_encryption_mode = FSCRYPT_MODE_AES_256_CTS; - policy.flags = FSCRYPT_POLICY_FLAGS_PAD_32; - memcpy(policy.master_key_identifier, kid.raw, FSCRYPT_KEY_IDENTIFIER_SIZE); + populate_policy(kid, &policy); r = ceph_set_fscrypt_policy_v2(cmount, fd, &policy); @@ -848,11 +820,7 @@ TEST(FSCrypt, RemoveBusyFile) { r = ceph_add_fscrypt_key(cmount, fscrypt_key, sizeof(fscrypt_key), &kid, 1299); struct fscrypt_policy_v2 policy; - policy.version = 2; - policy.contents_encryption_mode = FSCRYPT_MODE_AES_256_XTS; - policy.filenames_encryption_mode = FSCRYPT_MODE_AES_256_CTS; - policy.flags = FSCRYPT_POLICY_FLAGS_PAD_32; - memcpy(policy.master_key_identifier, kid.raw, FSCRYPT_KEY_IDENTIFIER_SIZE); + populate_policy(kid, &policy); r = ceph_set_fscrypt_policy_v2(cmount, fd, &policy); ceph_close(cmount, fd); @@ -900,11 +868,7 @@ TEST(FSCrypt, RemoveBusyCreate) { r = ceph_add_fscrypt_key(cmount, fscrypt_key, sizeof(fscrypt_key), &kid, 1299); struct fscrypt_policy_v2 policy; - policy.version = 2; - policy.contents_encryption_mode = FSCRYPT_MODE_AES_256_XTS; - policy.filenames_encryption_mode = FSCRYPT_MODE_AES_256_CTS; - policy.flags = FSCRYPT_POLICY_FLAGS_PAD_32; - memcpy(policy.master_key_identifier, kid.raw, FSCRYPT_KEY_IDENTIFIER_SIZE); + populate_policy(kid, &policy); r = ceph_set_fscrypt_policy_v2(cmount, fd, &policy); ceph_close(cmount, fd); @@ -977,11 +941,8 @@ TEST(FSCrypt, QuerySEncryptFlag) { r = ceph_add_fscrypt_key(cmount, fscrypt_key, sizeof(fscrypt_key), &kid, 1299); ASSERT_EQ(0, r); struct fscrypt_policy_v2 policy; - policy.version = 2; - policy.contents_encryption_mode = FSCRYPT_MODE_AES_256_XTS; - policy.filenames_encryption_mode = FSCRYPT_MODE_AES_256_CTS; - policy.flags = FSCRYPT_POLICY_FLAGS_PAD_32; - memcpy(policy.master_key_identifier, kid.raw, FSCRYPT_KEY_IDENTIFIER_SIZE); + populate_policy(kid, &policy); + r = ceph_set_fscrypt_policy_v2(cmount, fd1, &policy); ASSERT_EQ(0, r); @@ -1035,11 +996,8 @@ TEST(FSCrypt, FallocateNotImplemented) { int fd = ceph_open(cmount, dir_path.c_str(), O_DIRECTORY, 0); r = ceph_add_fscrypt_key(cmount, fscrypt_key, sizeof(fscrypt_key), &kid, 1299); struct fscrypt_policy_v2 policy; - policy.version = 2; - policy.contents_encryption_mode = FSCRYPT_MODE_AES_256_XTS; - policy.filenames_encryption_mode = FSCRYPT_MODE_AES_256_CTS; - policy.flags = FSCRYPT_POLICY_FLAGS_PAD_32; - memcpy(policy.master_key_identifier, kid.raw, FSCRYPT_KEY_IDENTIFIER_SIZE); + populate_policy(kid, &policy); + r = ceph_set_fscrypt_policy_v2(cmount, fd, &policy); ceph_close(cmount, fd); -- 2.39.5