| /linux/security/integrity/evm/ |
| H A D | evm_secfs.c | 132 struct xattr_list *xattr; in evm_read_xattrs() local 141 list_for_each_entry(xattr, &evm_config_xattrnames, list) { in evm_read_xattrs() 142 if (!xattr->enabled) in evm_read_xattrs() 145 size += strlen(xattr->name) + 1; in evm_read_xattrs() 160 list_for_each_entry(xattr, &evm_config_xattrnames, list) { in evm_read_xattrs() 161 if (!xattr->enabled) in evm_read_xattrs() 165 xattr->name); in evm_read_xattrs() 189 struct xattr_list *xattr, *tmp; in evm_write_xattrs() 208 xattr = kmalloc_obj(struct xattr_list); in evm_write_xattrs() 209 if (!xattr) { in evm_write_xattrs() 183 struct xattr_list *xattr, *tmp; evm_write_xattrs() local [all...] |
| H A D | evm_crypto.c | 18 #include <linux/xattr.h> 137 /* Protect against 'cutting & pasting' security.evm xattr, include inode 190 * Dump large security xattr values as a continuous ascii hexadecimal string. in dump_security_xattr_l() 223 * Instead of retrieving the requested xattr, for performance, calculate in evm_calc_hmac_or_hash() 224 * the hmac using the requested xattr value. Don't alloc/free memory for in evm_calc_hmac_or_hash() 225 * each xattr, but attempt to re-use the previously allocated memory. in evm_calc_hmac_or_hash() 235 struct xattr_list *xattr; in evm_calc_hmac_or_hash() 255 list_for_each_entry_lockless(xattr, &evm_config_xattrnames, list) { in evm_calc_hmac_or_hash() 258 if (strcmp(xattr->name, XATTR_NAME_IMA) == 0) in evm_calc_hmac_or_hash() 265 if (type != EVM_XATTR_PORTABLE_DIGSIG && !xattr in evm_calc_hmac_or_hash() 228 struct xattr_list *xattr; evm_calc_hmac_or_hash() local 403 const struct xattr *xattr; evm_init_hmac() local [all...] |
| H A D | evm_main.c | 18 #include <linux/xattr.h> 150 struct xattr_list *xattr; in evm_find_protected_xattrs() 157 list_for_each_entry_lockless(xattr, &evm_config_xattrnames, list) { in is_unsupported_hmac_fs() 158 error = __vfs_getxattr(dentry, inode, xattr->name, NULL, 0); in is_unsupported_hmac_fs() 182 * evm_verify_hmac - calculate and compare the HMAC with the EVM xattr in evm_verify_hmac() 185 * and compare it against the stored security.evm xattr. in evm_verify_hmac() 188 * - use the previously retrieved xattr value and length to calculate the in evm_verify_hmac() 262 /* accept xattr with non-empty signature field */ in evm_verify_hmac() 327 struct xattr_list *xattr; in evm_protected_xattr() 330 list_for_each_entry_lockless(xattr, in evm_protected_xattr() 134 struct xattr_list *xattr; evm_find_protected_xattrs() local 304 struct xattr_list *xattr; evm_protected_xattr_common() local 354 struct xattr_list *xattr; evm_read_protected_xattrs() local 1018 struct xattr *xattr, *evm_xattr; evm_inode_init_security() local [all...] |
| H A D | evm_posix_acl.c | 12 int posix_xattr_acl(const char *xattr) in posix_xattr_acl() argument 14 int xattr_len = strlen(xattr); in posix_xattr_acl() 17 && (strncmp(XATTR_NAME_POSIX_ACL_ACCESS, xattr, xattr_len) == 0)) in posix_xattr_acl() 20 && (strncmp(XATTR_NAME_POSIX_ACL_DEFAULT, xattr, xattr_len) == 0)) in posix_xattr_acl()
|
| /linux/fs/ceph/ |
| H A D | xattr.c | 19 struct ceph_inode_xattr *xattr); 576 struct ceph_inode_xattr *xattr = NULL; in __set_xattr() local 583 xattr = rb_entry(parent, struct ceph_inode_xattr, node); in __set_xattr() 584 c = strncmp(name, xattr->name, min(name_len, xattr->name_len)); in __set_xattr() 590 if (name_len == xattr->name_len) in __set_xattr() 592 else if (name_len < xattr->name_len) in __set_xattr() 597 xattr = NULL; in __set_xattr() 603 if (xattr && (flags & XATTR_CREATE)) in __set_xattr() 605 else if (!xattr && (flags & XATTR_REPLACE)) in __set_xattr() 614 if (xattr) in __set_xattr() [all …]
|
| /linux/fs/hfsplus/ |
| H A D | xattr_security.c | 37 const struct xattr *xattr_array, in hfsplus_initxattrs() 40 const struct xattr *xattr; in hfsplus_initxattrs() local 48 for (xattr = xattr_array; xattr->name != NULL; xattr++) { in hfsplus_initxattrs() 50 if (!strcmp(xattr->name, "")) in hfsplus_initxattrs() 55 XATTR_SECURITY_PREFIX_LEN, xattr->name); in hfsplus_initxattrs() 57 XATTR_SECURITY_PREFIX_LEN + strlen(xattr->name), 0, 1); in hfsplus_initxattrs() 60 xattr->value, xattr->value_len, 0); in hfsplus_initxattrs()
|
| /linux/fs/jffs2/ |
| H A D | security.c | 27 const struct xattr *xattr_array, void *fs_info) in jffs2_initxattrs() 29 const struct xattr *xattr; in jffs2_initxattrs() local 32 for (xattr = xattr_array; xattr->name != NULL; xattr++) { in jffs2_initxattrs() 34 xattr->name, xattr->value, in jffs2_initxattrs() 35 xattr->value_len, 0); in jffs2_initxattrs()
|
| /linux/fs/ext2/ |
| H A D | xattr_security.c | 31 static int ext2_initxattrs(struct inode *inode, const struct xattr *xattr_array, in ext2_initxattrs() 34 const struct xattr *xattr; in ext2_initxattrs() local 37 for (xattr = xattr_array; xattr->name != NULL; xattr++) { in ext2_initxattrs() 39 xattr->name, xattr->value, in ext2_initxattrs() 40 xattr->value_len, 0); in ext2_initxattrs()
|
| H A D | Makefile | 14 ext2-$(CONFIG_EXT2_FS_XATTR) += xattr.o xattr_user.o xattr_trusted.o
|
| /linux/fs/ext4/ |
| H A D | xattr_security.c | 36 ext4_initxattrs(struct inode *inode, const struct xattr *xattr_array, in ext4_initxattrs() 39 const struct xattr *xattr; in ext4_initxattrs() local 43 for (xattr = xattr_array; xattr->name != NULL; xattr++) { in ext4_initxattrs() 46 xattr->name, xattr->value, in ext4_initxattrs() 47 xattr->value_len, XATTR_CREATE); in ext4_initxattrs()
|
| /linux/fs/jfs/ |
| H A D | xattr.c | 64 struct jfs_ea_list *xattr; /* buffer containing ea list */ member 447 ea_buf->xattr = NULL; in ea_get() 454 ea_buf->xattr = (struct jfs_ea_list *) ji->i_inline_ea; in ea_get() 466 ea_buf->xattr = (struct jfs_ea_list *) ji->i_inline_ea; in ea_get() 489 ea_buf->xattr = kmalloc(ea_buf->max_size, GFP_KERNEL); in ea_get() 490 if (ea_buf->xattr == NULL) in ea_get() 498 if ((rc = ea_read(inode, ea_buf->xattr))) { in ea_get() 499 kfree(ea_buf->xattr); in ea_get() 500 ea_buf->xattr = NULL; in ea_get() 536 ea_buf->xattr = ea_buf->mp->data; in ea_get() [all …]
|
| /linux/fs/squashfs/ |
| H A D | xattr.c | 32 u64 start = SQUASHFS_XATTR_BLK(squashfs_i(inode)->xattr) in squashfs_listxattr() 34 int offset = SQUASHFS_XATTR_OFFSET(squashfs_i(inode)->xattr); in squashfs_listxattr() 110 u64 start = SQUASHFS_XATTR_BLK(squashfs_i(inode)->xattr) in squashfs_xattr_get() 112 int offset = SQUASHFS_XATTR_OFFSET(squashfs_i(inode)->xattr); in squashfs_xattr_get() 150 u64 xattr; in squashfs_xattr_get() local 160 xattr = le64_to_cpu(xattr_val); in squashfs_xattr_get() 161 start = SQUASHFS_XATTR_BLK(xattr) + in squashfs_xattr_get() 163 offset = SQUASHFS_XATTR_OFFSET(xattr); in squashfs_xattr_get()
|
| H A D | inode.c | 226 xattr_id = le32_to_cpu(sqsh_ino->xattr); in squashfs_read_inode() 280 xattr_id = le32_to_cpu(sqsh_ino->xattr); in squashfs_read_inode() 324 __le32 xattr; in squashfs_read_inode() local 330 err = squashfs_read_metadata(sb, &xattr, &block, in squashfs_read_inode() 331 &offset, sizeof(xattr)); in squashfs_read_inode() 334 xattr_id = le32_to_cpu(xattr); in squashfs_read_inode() 379 xattr_id = le32_to_cpu(sqsh_ino->xattr); in squashfs_read_inode() 421 xattr_id = le32_to_cpu(sqsh_ino->xattr); in squashfs_read_inode() 437 &squashfs_i(inode)->xattr); in squashfs_read_inode()
|
| H A D | xattr_id.c | 29 int *count, unsigned int *size, unsigned long long *xattr) in squashfs_xattr_lookup() argument 48 *xattr = le64_to_cpu(id.xattr); in squashfs_xattr_lookup()
|
| H A D | squashfs_fs.h | 297 __le32 xattr; member 320 __le32 xattr; member 362 __le32 xattr; member 393 __le32 xattr; member 442 __le64 xattr; member
|
| H A D | squashfs_fs_i.h | 16 u64 xattr; member
|
| H A D | xattr.h | 35 unsigned long long *xattr) in squashfs_xattr_lookup() argument
|
| /linux/Documentation/filesystems/ |
| H A D | erofs.rst | 110 (no)user_xattr Setup Extended User Attributes. Note: xattr is enabled 254 Each share xattr can also be directly found by the following formula: 255 xattr offset = xattr_blkaddr * block_size + 4 * xattr_id 262 | ... | xattr_entry | xattr data | ... | xattr_entry | xattr data ... 309 The long xattr name prefixes feature is introduced to address this issue. The 310 overall idea is that, apart from the existing predefined prefixes, the xattr 311 entry could also refer to user-specified long xattr name prefixes, e.g. 314 When referring to a long xattr name prefix, the highest bit (bit 7) of 318 xattr name prefix is stored in erofs_xattr_entry.e_name, which could be empty if 319 the full xattr name matches exactly as its long xattr name prefix. [all …]
|
| /linux/Documentation/filesystems/ext4/ |
| H A D | eainode.rst | 11 inode's i_atime field is used to store a checksum of the xattr value; 13 sharing of large xattr values between multiple owning inodes. For
|
| /linux/Documentation/security/ |
| H A D | IMA-templates.rst | 82 - 'xattrnames': a list of xattr names (separated by ``|``), only if the xattr is 84 - 'xattrlengths': a list of xattr lengths (u32), only if the xattr is present; 85 - 'xattrvalues': a list of xattr values;
|
| /linux/include/linux/ |
| H A D | pseudo_fs.h | 9 const struct xattr_handler * const *xattr; member
|
| /linux/fs/nfs/ |
| H A D | nfs.h | 21 const struct xattr_handler * const *xattr; /* NFS xattr handlers */ member
|
| /linux/security/integrity/ima/ |
| H A D | ima_appraise.c | 100 iint->ima_hash->xattr.sha1.type = IMA_XATTR_DIGEST; in ima_fix_xattr() 103 iint->ima_hash->xattr.ng.type = IMA_XATTR_DIGEST_NG; in ima_fix_xattr() 104 iint->ima_hash->xattr.ng.algo = algo; in ima_fix_xattr() 107 &iint->ima_hash->xattr.data[offset], in ima_fix_xattr() 108 (sizeof(iint->ima_hash->xattr) - offset) + in ima_fix_xattr()
|
| /linux/fs/9p/ |
| H A D | Makefile | 14 xattr.o
|
| /linux/fs/orangefs/ |
| H A D | Makefile | 8 orangefs-objs := acl.o file.o orangefs-cache.o orangefs-utils.o xattr.o \
|