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) {
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);
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);
//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";
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);