Lines Matching refs:policy
47 const struct fscrypt_policy_v1 *policy = &policy_u->v1; in fscrypt_supported_policy() local
49 if (!fscrypt_valid_enc_modes(policy->contents_encryption_mode, in fscrypt_supported_policy()
50 policy->filenames_encryption_mode)) { in fscrypt_supported_policy()
53 policy->contents_encryption_mode, in fscrypt_supported_policy()
54 policy->filenames_encryption_mode); in fscrypt_supported_policy()
58 if (policy->flags & ~FSCRYPT_POLICY_FLAGS_VALID) { in fscrypt_supported_policy()
61 policy->flags); in fscrypt_supported_policy()
68 const struct fscrypt_policy_v2 *policy = &policy_u->v2; in fscrypt_supported_policy() local
70 if (!fscrypt_valid_enc_modes(policy->contents_encryption_mode, in fscrypt_supported_policy()
71 policy->filenames_encryption_mode)) { in fscrypt_supported_policy()
74 policy->contents_encryption_mode, in fscrypt_supported_policy()
75 policy->filenames_encryption_mode); in fscrypt_supported_policy()
79 if (policy->flags & ~FSCRYPT_POLICY_FLAGS_VALID) { in fscrypt_supported_policy()
82 policy->flags); in fscrypt_supported_policy()
86 if (memchr_inv(policy->__reserved, 0, in fscrypt_supported_policy()
87 sizeof(policy->__reserved))) { in fscrypt_supported_policy()
114 const struct fscrypt_policy_v1 *policy = &policy_u->v1; in fscrypt_new_context_from_policy() local
119 policy->contents_encryption_mode; in fscrypt_new_context_from_policy()
121 policy->filenames_encryption_mode; in fscrypt_new_context_from_policy()
122 ctx->flags = policy->flags; in fscrypt_new_context_from_policy()
124 policy->master_key_descriptor, in fscrypt_new_context_from_policy()
130 const struct fscrypt_policy_v2 *policy = &policy_u->v2; in fscrypt_new_context_from_policy() local
135 policy->contents_encryption_mode; in fscrypt_new_context_from_policy()
137 policy->filenames_encryption_mode; in fscrypt_new_context_from_policy()
138 ctx->flags = policy->flags; in fscrypt_new_context_from_policy()
140 policy->master_key_identifier, in fscrypt_new_context_from_policy()
172 struct fscrypt_policy_v1 *policy = &policy_u->v1; in fscrypt_policy_from_context() local
174 policy->version = FSCRYPT_POLICY_V1; in fscrypt_policy_from_context()
175 policy->contents_encryption_mode = in fscrypt_policy_from_context()
177 policy->filenames_encryption_mode = in fscrypt_policy_from_context()
179 policy->flags = ctx->flags; in fscrypt_policy_from_context()
180 memcpy(policy->master_key_descriptor, in fscrypt_policy_from_context()
182 sizeof(policy->master_key_descriptor)); in fscrypt_policy_from_context()
187 struct fscrypt_policy_v2 *policy = &policy_u->v2; in fscrypt_policy_from_context() local
189 policy->version = FSCRYPT_POLICY_V2; in fscrypt_policy_from_context()
190 policy->contents_encryption_mode = in fscrypt_policy_from_context()
192 policy->filenames_encryption_mode = in fscrypt_policy_from_context()
194 policy->flags = ctx->flags; in fscrypt_policy_from_context()
195 memcpy(policy->__reserved, ctx->__reserved, in fscrypt_policy_from_context()
196 sizeof(policy->__reserved)); in fscrypt_policy_from_context()
197 memcpy(policy->master_key_identifier, in fscrypt_policy_from_context()
199 sizeof(policy->master_key_identifier)); in fscrypt_policy_from_context()
208 static int fscrypt_get_policy(struct inode *inode, union fscrypt_policy *policy) in fscrypt_get_policy() argument
217 *policy = ci->ci_policy; in fscrypt_get_policy()
228 return fscrypt_policy_from_context(policy, &ctx, ret); in fscrypt_get_policy()
232 const union fscrypt_policy *policy) in set_encryption_policy() argument
238 if (!fscrypt_supported_policy(policy, inode)) in set_encryption_policy()
241 switch (policy->version) { in set_encryption_policy()
259 policy->v2.master_key_identifier); in set_encryption_policy()
268 ctxsize = fscrypt_new_context_from_policy(&ctx, policy); in set_encryption_policy()
275 union fscrypt_policy policy; in fscrypt_ioctl_set_policy() local
282 if (get_user(policy.version, (const u8 __user *)arg)) in fscrypt_ioctl_set_policy()
285 size = fscrypt_policy_size(&policy); in fscrypt_ioctl_set_policy()
300 version = policy.version; in fscrypt_ioctl_set_policy()
301 if (copy_from_user(&policy, arg, size)) in fscrypt_ioctl_set_policy()
303 policy.version = version; in fscrypt_ioctl_set_policy()
323 ret = set_encryption_policy(inode, &policy); in fscrypt_ioctl_set_policy()
325 (ret == 0 && !fscrypt_policies_equal(&policy, in fscrypt_ioctl_set_policy()
341 union fscrypt_policy policy; in fscrypt_ioctl_get_policy() local
344 err = fscrypt_get_policy(file_inode(filp), &policy); in fscrypt_ioctl_get_policy()
348 if (policy.version != FSCRYPT_POLICY_V1) in fscrypt_ioctl_get_policy()
351 if (copy_to_user(arg, &policy, sizeof(policy.v1))) in fscrypt_ioctl_get_policy()
361 union fscrypt_policy *policy = (union fscrypt_policy *)&arg.policy; in fscrypt_ioctl_get_policy_ex() local
368 offsetof(typeof(arg), policy)); in fscrypt_ioctl_get_policy_ex()
369 BUILD_BUG_ON(sizeof(arg.policy) != sizeof(*policy)); in fscrypt_ioctl_get_policy_ex()
371 err = fscrypt_get_policy(file_inode(filp), policy); in fscrypt_ioctl_get_policy_ex()
374 policy_size = fscrypt_policy_size(policy); in fscrypt_ioctl_get_policy_ex()