]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
test: Add function policy populator for reuse in fscrypt tests.
authorChristopher Hoffman <choffman@redhat.com>
Wed, 8 Jan 2025 17:05:48 +0000 (17:05 +0000)
committerChristopher Hoffman <choffman@redhat.com>
Wed, 5 Nov 2025 13:59:34 +0000 (13:59 +0000)
Fixes: https://tracker.ceph.com/issues/69161
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
src/test/libcephfs/fscrypt.cc

index fb544481acfae421e29b9171766881eca73102e1..f3f463dce7ca7575ad73664151daf09107199fac 100644 (file)
@@ -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);