/kernel/linux/linux-5.10/security/integrity/ |
H A D | iint.c | 31 * __integrity_iint_find - return the iint associated with an inode 35 struct integrity_iint_cache *iint; in __integrity_iint_find() local 39 iint = rb_entry(n, struct integrity_iint_cache, rb_node); in __integrity_iint_find() 41 if (inode < iint->inode) in __integrity_iint_find() 43 else if (inode > iint->inode) in __integrity_iint_find() 46 return iint; in __integrity_iint_find() 53 * integrity_iint_find - return the iint associated with an inode 57 struct integrity_iint_cache *iint; in integrity_iint_find() local 63 iint = __integrity_iint_find(inode); in integrity_iint_find() 66 return iint; in integrity_iint_find() 77 iint_lockdep_annotate(struct integrity_iint_cache *iint, struct inode *inode) iint_lockdep_annotate() argument 92 iint_init_always(struct integrity_iint_cache *iint, struct inode *inode) iint_init_always() argument 110 iint_free(struct integrity_iint_cache *iint) iint_free() argument 128 struct integrity_iint_cache *iint, *test_iint; integrity_inode_get() local 184 struct integrity_iint_cache *iint; integrity_inode_free() local 199 struct integrity_iint_cache *iint = foo; iint_init_once() local [all...] |
H A D | Makefile | 3 # Makefile for caching inode integrity data (iint) 8 integrity-y := iint.o
|
/kernel/linux/linux-6.6/security/integrity/ |
H A D | iint.c | 31 * __integrity_iint_find - return the iint associated with an inode 35 struct integrity_iint_cache *iint; in __integrity_iint_find() local 39 iint = rb_entry(n, struct integrity_iint_cache, rb_node); in __integrity_iint_find() 41 if (inode < iint->inode) in __integrity_iint_find() 43 else if (inode > iint->inode) in __integrity_iint_find() 46 return iint; in __integrity_iint_find() 53 * integrity_iint_find - return the iint associated with an inode 57 struct integrity_iint_cache *iint; in integrity_iint_find() local 63 iint = __integrity_iint_find(inode); in integrity_iint_find() 66 return iint; in integrity_iint_find() 77 iint_lockdep_annotate(struct integrity_iint_cache *iint, struct inode *inode) iint_lockdep_annotate() argument 92 iint_init_always(struct integrity_iint_cache *iint, struct inode *inode) iint_init_always() argument 110 iint_free(struct integrity_iint_cache *iint) iint_free() argument 128 struct integrity_iint_cache *iint, *test_iint; integrity_inode_get() local 176 struct integrity_iint_cache *iint; integrity_inode_free() local 191 struct integrity_iint_cache *iint = (struct integrity_iint_cache *) foo; iint_init_once() local [all...] |
H A D | Makefile | 3 # Makefile for caching inode integrity data (iint) 8 integrity-y := iint.o
|
/kernel/linux/linux-5.10/security/integrity/ima/ |
H A D | ima_appraise.c | 79 struct integrity_iint_cache *iint) in ima_fix_xattr() 82 u8 algo = iint->ima_hash->algo; in ima_fix_xattr() 86 iint->ima_hash->xattr.sha1.type = IMA_XATTR_DIGEST; in ima_fix_xattr() 89 iint->ima_hash->xattr.ng.type = IMA_XATTR_DIGEST_NG; in ima_fix_xattr() 90 iint->ima_hash->xattr.ng.algo = algo; in ima_fix_xattr() 93 &iint->ima_hash->xattr.data[offset], in ima_fix_xattr() 94 (sizeof(iint->ima_hash->xattr) - offset) + in ima_fix_xattr() 95 iint->ima_hash->length, 0); in ima_fix_xattr() 100 enum integrity_status ima_get_cache_status(struct integrity_iint_cache *iint, in ima_get_cache_status() argument 105 return iint in ima_get_cache_status() 78 ima_fix_xattr(struct dentry *dentry, struct integrity_iint_cache *iint) ima_fix_xattr() argument 119 ima_set_cache_status(struct integrity_iint_cache *iint, enum ima_hooks func, enum integrity_status status) ima_set_cache_status() argument 144 ima_cache_flags(struct integrity_iint_cache *iint, enum ima_hooks func) ima_cache_flags() argument 227 xattr_verify(enum ima_hooks func, struct integrity_iint_cache *iint, struct evm_ima_xattr_data *xattr_value, int xattr_len, enum integrity_status *status, const char **cause) xattr_verify() argument 332 ima_check_blacklist(struct integrity_iint_cache *iint, const struct modsig *modsig, int pcr) ima_check_blacklist() argument 364 ima_appraise_measurement(enum ima_hooks func, struct integrity_iint_cache *iint, struct file *file, const unsigned char *filename, struct evm_ima_xattr_data *xattr_value, int xattr_len, const struct modsig *modsig) ima_appraise_measurement() argument 476 ima_update_xattr(struct integrity_iint_cache *iint, struct file *file) ima_update_xattr() argument 510 struct integrity_iint_cache *iint; ima_inode_post_setattr() local 546 struct integrity_iint_cache *iint; ima_reset_appraise_flags() local [all...] |
H A D | ima_main.c | 112 struct integrity_iint_cache *iint, in ima_rdwr_violation_check() 124 if (!iint) in ima_rdwr_violation_check() 125 iint = integrity_iint_find(inode); in ima_rdwr_violation_check() 127 if (iint && test_bit(IMA_MUST_MEASURE, in ima_rdwr_violation_check() 128 &iint->atomic_flags)) in ima_rdwr_violation_check() 133 set_bit(IMA_MUST_MEASURE, &iint->atomic_flags); in ima_rdwr_violation_check() 144 ima_add_violation(file, *pathname, iint, in ima_rdwr_violation_check() 147 ima_add_violation(file, *pathname, iint, in ima_rdwr_violation_check() 151 static void ima_check_last_writer(struct integrity_iint_cache *iint, in ima_check_last_writer() argument 160 mutex_lock(&iint in ima_check_last_writer() 111 ima_rdwr_violation_check(struct file *file, struct integrity_iint_cache *iint, int must_measure, char **pathbuf, const char **pathname, char *filename) ima_rdwr_violation_check() argument 185 struct integrity_iint_cache *iint; ima_file_free() local 202 struct integrity_iint_cache *iint = NULL; process_measurement() local 542 struct integrity_iint_cache *iint; ima_file_hash() local 590 struct integrity_iint_cache *iint; ima_post_create_tmpfile() local 616 struct integrity_iint_cache *iint; ima_post_path_mknod() local 818 struct integrity_iint_cache iint = {}; process_buffer_measurement() local [all...] |
H A D | ima_api.c | 134 struct integrity_iint_cache *iint, in ima_add_violation() 139 struct ima_event_data event_data = { .iint = iint, in ima_add_violation() 203 * storing the measurement and i_version in the iint. 205 * Must be called with iint->mutex held. 209 int ima_collect_measurement(struct integrity_iint_cache *iint, in ima_collect_measurement() argument 234 if (iint->flags & IMA_COLLECTED) in ima_collect_measurement() 257 tmpbuf = krealloc(iint->ima_hash, length, GFP_NOFS); in ima_collect_measurement() 263 iint->ima_hash = tmpbuf; in ima_collect_measurement() 264 memcpy(iint in ima_collect_measurement() 133 ima_add_violation(struct file *file, const unsigned char *filename, struct integrity_iint_cache *iint, const char *op, const char *cause) ima_add_violation() argument 301 ima_store_measurement(struct integrity_iint_cache *iint, struct file *file, const unsigned char *filename, struct evm_ima_xattr_data *xattr_value, int xattr_len, const struct modsig *modsig, int pcr, struct ima_template_desc *template_desc) ima_store_measurement() argument 345 ima_audit_measurement(struct integrity_iint_cache *iint, const unsigned char *filename) ima_audit_measurement() argument [all...] |
H A D | ima_init.c | 45 struct integrity_iint_cache tmp_iint, *iint = &tmp_iint; in ima_add_boot_aggregate() local 46 struct ima_event_data event_data = { .iint = iint, in ima_add_boot_aggregate() 55 memset(iint, 0, sizeof(*iint)); in ima_add_boot_aggregate() 57 iint->ima_hash = &hash.hdr; in ima_add_boot_aggregate() 58 iint->ima_hash->algo = ima_hash_algo; in ima_add_boot_aggregate() 59 iint->ima_hash->length = hash_digest_size[ima_hash_algo]; in ima_add_boot_aggregate()
|
H A D | ima.h | 64 struct integrity_iint_cache *iint; member 150 struct integrity_iint_cache *iint, 260 int ima_collect_measurement(struct integrity_iint_cache *iint, 263 void ima_store_measurement(struct integrity_iint_cache *iint, struct file *file, 271 void ima_audit_measurement(struct integrity_iint_cache *iint, 308 int ima_check_blacklist(struct integrity_iint_cache *iint, 311 struct integrity_iint_cache *iint, 316 void ima_update_xattr(struct integrity_iint_cache *iint, struct file *file); 317 enum integrity_status ima_get_cache_status(struct integrity_iint_cache *iint, 325 static inline int ima_check_blacklist(struct integrity_iint_cache *iint, in ima_check_blacklist() argument 331 ima_appraise_measurement(enum ima_hooks func, struct integrity_iint_cache *iint, struct file *file, const unsigned char *filename, struct evm_ima_xattr_data *xattr_value, int xattr_len, const struct modsig *modsig) ima_appraise_measurement() argument 348 ima_update_xattr(struct integrity_iint_cache *iint, struct file *file) ima_update_xattr() argument 353 ima_get_cache_status(struct integrity_iint_cache *iint, enum ima_hooks func) ima_get_cache_status() argument [all...] |
H A D | ima_template_lib.c | 283 if (ima_template_hash_algo_allowed(event_data->iint->ima_hash->algo)) { in ima_eventdigest_init() 284 cur_digest = event_data->iint->ima_hash->digest; in ima_eventdigest_init() 285 cur_digestsize = event_data->iint->ima_hash->length; in ima_eventdigest_init() 339 cur_digest = event_data->iint->ima_hash->digest; in ima_eventdigest_ng_init() 340 cur_digestsize = event_data->iint->ima_hash->length; in ima_eventdigest_ng_init() 342 hash_algo = event_data->iint->ima_hash->algo; in ima_eventdigest_ng_init()
|
/kernel/linux/linux-6.6/security/integrity/ima/ |
H A D | ima_appraise.c | 88 struct integrity_iint_cache *iint) in ima_fix_xattr() 91 u8 algo = iint->ima_hash->algo; in ima_fix_xattr() 95 iint->ima_hash->xattr.sha1.type = IMA_XATTR_DIGEST; in ima_fix_xattr() 98 iint->ima_hash->xattr.ng.type = IMA_XATTR_DIGEST_NG; in ima_fix_xattr() 99 iint->ima_hash->xattr.ng.algo = algo; in ima_fix_xattr() 102 &iint->ima_hash->xattr.data[offset], in ima_fix_xattr() 103 (sizeof(iint->ima_hash->xattr) - offset) + in ima_fix_xattr() 104 iint->ima_hash->length, 0); in ima_fix_xattr() 109 enum integrity_status ima_get_cache_status(struct integrity_iint_cache *iint, in ima_get_cache_status() argument 115 return iint in ima_get_cache_status() 87 ima_fix_xattr(struct dentry *dentry, struct integrity_iint_cache *iint) ima_fix_xattr() argument 129 ima_set_cache_status(struct integrity_iint_cache *iint, enum ima_hooks func, enum integrity_status status) ima_set_cache_status() argument 155 ima_cache_flags(struct integrity_iint_cache *iint, enum ima_hooks func) ima_cache_flags() argument 279 xattr_verify(enum ima_hooks func, struct integrity_iint_cache *iint, struct evm_ima_xattr_data *xattr_value, int xattr_len, enum integrity_status *status, const char **cause) xattr_verify() argument 446 ima_check_blacklist(struct integrity_iint_cache *iint, const struct modsig *modsig, int pcr) ima_check_blacklist() argument 480 ima_appraise_measurement(enum ima_hooks func, struct integrity_iint_cache *iint, struct file *file, const unsigned char *filename, struct evm_ima_xattr_data *xattr_value, int xattr_len, const struct modsig *modsig) ima_appraise_measurement() argument 606 ima_update_xattr(struct integrity_iint_cache *iint, struct file *file) ima_update_xattr() argument 642 struct integrity_iint_cache *iint; ima_inode_post_setattr() local 676 struct integrity_iint_cache *iint; ima_reset_appraise_flags() local [all...] |
H A D | ima_main.c | 117 struct integrity_iint_cache *iint, in ima_rdwr_violation_check() 129 if (!iint) in ima_rdwr_violation_check() 130 iint = integrity_iint_find(inode); in ima_rdwr_violation_check() 132 if (iint && test_bit(IMA_MUST_MEASURE, in ima_rdwr_violation_check() 133 &iint->atomic_flags)) in ima_rdwr_violation_check() 138 set_bit(IMA_MUST_MEASURE, &iint->atomic_flags); in ima_rdwr_violation_check() 149 ima_add_violation(file, *pathname, iint, in ima_rdwr_violation_check() 152 ima_add_violation(file, *pathname, iint, in ima_rdwr_violation_check() 156 static void ima_check_last_writer(struct integrity_iint_cache *iint, in ima_check_last_writer() argument 165 mutex_lock(&iint in ima_check_last_writer() 116 ima_rdwr_violation_check(struct file *file, struct integrity_iint_cache *iint, int must_measure, char **pathbuf, const char **pathname, char *filename) ima_rdwr_violation_check() argument 195 struct integrity_iint_cache *iint; ima_file_free() local 212 struct integrity_iint_cache *iint = NULL; process_measurement() local 566 struct integrity_iint_cache *iint = NULL, tmp_iint; __ima_inode_hash() local 689 struct integrity_iint_cache *iint; ima_post_create_tmpfile() local 721 struct integrity_iint_cache *iint; ima_post_path_mknod() local 937 struct integrity_iint_cache iint = {}; process_buffer_measurement() local [all...] |
H A D | ima_api.c | 134 struct integrity_iint_cache *iint, in ima_add_violation() 139 struct ima_event_data event_data = { .iint = iint, in ima_add_violation() 204 static bool ima_get_verity_digest(struct integrity_iint_cache *iint, in ima_get_verity_digest() argument 214 digest_len = fsverity_get_digest(iint->inode, hash->digest, NULL, &alg); in ima_get_verity_digest() 234 * storing the measurement and i_version in the iint. 236 * Must be called with iint->mutex held. 240 int ima_collect_measurement(struct integrity_iint_cache *iint, in ima_collect_measurement() argument 263 if (iint->flags & IMA_COLLECTED) in ima_collect_measurement() 282 if (iint in ima_collect_measurement() 133 ima_add_violation(struct file *file, const unsigned char *filename, struct integrity_iint_cache *iint, const char *op, const char *cause) ima_add_violation() argument 341 ima_store_measurement(struct integrity_iint_cache *iint, struct file *file, const unsigned char *filename, struct evm_ima_xattr_data *xattr_value, int xattr_len, const struct modsig *modsig, int pcr, struct ima_template_desc *template_desc) ima_store_measurement() argument 385 ima_audit_measurement(struct integrity_iint_cache *iint, const unsigned char *filename) ima_audit_measurement() argument [all...] |
H A D | ima_init.c | 47 struct integrity_iint_cache tmp_iint, *iint = &tmp_iint; in ima_add_boot_aggregate() local 48 struct ima_event_data event_data = { .iint = iint, in ima_add_boot_aggregate() 54 memset(iint, 0, sizeof(*iint)); in ima_add_boot_aggregate() 56 iint->ima_hash = &hash.hdr; in ima_add_boot_aggregate() 57 iint->ima_hash->algo = ima_hash_algo; in ima_add_boot_aggregate() 58 iint->ima_hash->length = hash_digest_size[ima_hash_algo]; in ima_add_boot_aggregate()
|
H A D | ima.h | 63 struct integrity_iint_cache *iint; member 149 struct integrity_iint_cache *iint, 264 int ima_collect_measurement(struct integrity_iint_cache *iint, 267 void ima_store_measurement(struct integrity_iint_cache *iint, struct file *file, 277 void ima_audit_measurement(struct integrity_iint_cache *iint, 315 int ima_check_blacklist(struct integrity_iint_cache *iint, 318 struct integrity_iint_cache *iint, 324 void ima_update_xattr(struct integrity_iint_cache *iint, struct file *file); 325 enum integrity_status ima_get_cache_status(struct integrity_iint_cache *iint, 333 static inline int ima_check_blacklist(struct integrity_iint_cache *iint, in ima_check_blacklist() argument 339 ima_appraise_measurement(enum ima_hooks func, struct integrity_iint_cache *iint, struct file *file, const unsigned char *filename, struct evm_ima_xattr_data *xattr_value, int xattr_len, const struct modsig *modsig) ima_appraise_measurement() argument 357 ima_update_xattr(struct integrity_iint_cache *iint, struct file *file) ima_update_xattr() argument 362 ima_get_cache_status(struct integrity_iint_cache *iint, enum ima_hooks func) ima_get_cache_status() argument [all...] |
H A D | ima_template_lib.c | 352 if (ima_template_hash_algo_allowed(event_data->iint->ima_hash->algo)) { in ima_eventdigest_init() 353 cur_digest = event_data->iint->ima_hash->digest; in ima_eventdigest_init() 354 cur_digestsize = event_data->iint->ima_hash->length; in ima_eventdigest_init() 409 cur_digest = event_data->iint->ima_hash->digest; in ima_eventdigest_ng_init() 410 cur_digestsize = event_data->iint->ima_hash->length; in ima_eventdigest_ng_init() 412 hash_algo = event_data->iint->ima_hash->algo; in ima_eventdigest_ng_init() 433 cur_digest = event_data->iint->ima_hash->digest; in ima_eventdigest_ngv2_init() 434 cur_digestsize = event_data->iint->ima_hash->length; in ima_eventdigest_ngv2_init() 436 hash_algo = event_data->iint->ima_hash->algo; in ima_eventdigest_ngv2_init() 437 if (event_data->iint in ima_eventdigest_ngv2_init() [all...] |
/kernel/linux/linux-5.10/security/integrity/evm/ |
H A D | evm_main.c | 125 * - cache the verification result in the iint, when available. 133 struct integrity_iint_cache *iint) in evm_verify_hmac() 142 if (iint && (iint->evm_status == INTEGRITY_PASS || in evm_verify_hmac() 143 iint->evm_status == INTEGRITY_PASS_IMMUTABLE)) in evm_verify_hmac() 144 return iint->evm_status; in evm_verify_hmac() 206 if (iint) in evm_verify_hmac() 207 iint->flags |= EVM_IMMUTABLE_DIGSIG; in evm_verify_hmac() 227 if (iint) in evm_verify_hmac() 228 iint in evm_verify_hmac() 129 evm_verify_hmac(struct dentry *dentry, const char *xattr_name, char *xattr_value, size_t xattr_value_len, struct integrity_iint_cache *iint) evm_verify_hmac() argument 273 evm_verifyxattr(struct dentry *dentry, const char *xattr_name, void *xattr_value, size_t xattr_value_len, struct integrity_iint_cache *iint) evm_verifyxattr() argument 339 struct integrity_iint_cache *iint; evm_protect_xattr() local 421 struct integrity_iint_cache *iint; evm_reset_status() local [all...] |
H A D | evm_crypto.c | 270 struct integrity_iint_cache *iint; in evm_is_immutable() local 273 iint = integrity_iint_find(inode); in evm_is_immutable() 274 if (iint && (iint->flags & EVM_IMMUTABLE_DIGSIG)) in evm_is_immutable()
|
/kernel/linux/linux-6.6/security/integrity/evm/ |
H A D | evm_main.c | 164 * - cache the verification result in the iint, when available. 172 struct integrity_iint_cache *iint) in evm_verify_hmac() 181 if (iint && (iint->evm_status == INTEGRITY_PASS || in evm_verify_hmac() 182 iint->evm_status == INTEGRITY_PASS_IMMUTABLE)) in evm_verify_hmac() 183 return iint->evm_status; in evm_verify_hmac() 247 if (iint) in evm_verify_hmac() 248 iint->flags |= EVM_IMMUTABLE_DIGSIG; in evm_verify_hmac() 275 if (iint) in evm_verify_hmac() 276 iint in evm_verify_hmac() 168 evm_verify_hmac(struct dentry *dentry, const char *xattr_name, char *xattr_value, size_t xattr_value_len, struct integrity_iint_cache *iint) evm_verify_hmac() argument 404 evm_verifyxattr(struct dentry *dentry, const char *xattr_name, void *xattr_value, size_t xattr_value_len, struct integrity_iint_cache *iint) evm_verifyxattr() argument 507 struct integrity_iint_cache *iint; evm_protect_xattr() local 695 struct integrity_iint_cache *iint; evm_reset_status() local [all...] |
H A D | evm_crypto.c | 325 struct integrity_iint_cache *iint; in evm_is_immutable() local 328 iint = integrity_iint_find(inode); in evm_is_immutable() 329 if (iint && (iint->flags & EVM_IMMUTABLE_DIGSIG)) in evm_is_immutable()
|
/kernel/linux/linux-5.10/include/linux/ |
H A D | evm.h | 23 struct integrity_iint_cache *iint); 58 struct integrity_iint_cache *iint) in evm_verifyxattr() 54 evm_verifyxattr(struct dentry *dentry, const char *xattr_name, void *xattr_value, size_t xattr_value_len, struct integrity_iint_cache *iint) evm_verifyxattr() argument
|
/kernel/linux/linux-6.6/include/linux/ |
H A D | evm.h | 23 struct integrity_iint_cache *iint); 88 struct integrity_iint_cache *iint) in evm_verifyxattr() 84 evm_verifyxattr(struct dentry *dentry, const char *xattr_name, void *xattr_value, size_t xattr_value_len, struct integrity_iint_cache *iint) evm_verifyxattr() argument
|