Something went wrong. Try again.
(I'm so sorry!) Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Something went wrong. Try again.
C
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110/* SPDX-License-Identifier: GPL-2.0-only *//* * Copyright (C) 2008 IBM Corporation * Author: Mimi Zohar <zohar@us.ibm.com> */
#ifndef _LINUX_IMA_H#define _LINUX_IMA_H
#include <linux/kernel_read_file.h>#include <linux/fs.h>#include <linux/security.h>#include <linux/kexec.h>#include <linux/secure_boot.h>#include <crypto/hash_info.h>struct linux_binprm;
#ifdef CONFIG_IMAextern enum hash_algo ima_get_current_hash_algo(void);extern int ima_file_hash(struct file *file, char *buf, size_t buf_size);extern int ima_inode_hash(struct inode *inode, char *buf, size_t buf_size);extern void ima_kexec_cmdline(int kernel_fd, const void *buf, int size);extern int ima_measure_critical_data(const char *event_label, const char *event_name, const void *buf, size_t buf_len, bool hash, u8 *digest, size_t digest_len);
#ifdef CONFIG_IMA_APPRAISE_BOOTPARAMextern void ima_appraise_parse_cmdline(void);#elsestatic inline void ima_appraise_parse_cmdline(void) {}#endif
#ifdef CONFIG_IMA_KEXECextern void ima_add_kexec_buffer(struct kimage *image);extern void ima_kexec_post_load(struct kimage *image);#elsestatic inline void ima_kexec_post_load(struct kimage *image) {}#endif
#elsestatic inline enum hash_algo ima_get_current_hash_algo(void){ return HASH_ALGO__LAST;}
static inline int ima_file_hash(struct file *file, char *buf, size_t buf_size){ return -EOPNOTSUPP;}
static inline int ima_inode_hash(struct inode *inode, char *buf, size_t buf_size){ return -EOPNOTSUPP;}
static inline void ima_kexec_cmdline(int kernel_fd, const void *buf, int size) {}
static inline int ima_measure_critical_data(const char *event_label, const char *event_name, const void *buf, size_t buf_len, bool hash, u8 *digest, size_t digest_len){ return -ENOENT;}
#endif /* CONFIG_IMA */
#ifdef CONFIG_HAVE_IMA_KEXECint __init ima_free_kexec_buffer(void);int __init ima_get_kexec_buffer(void **addr, size_t *size);int ima_validate_range(phys_addr_t phys, size_t size);#endif
#ifdef CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOTextern const char * const *arch_get_ima_policy(void);#elsestatic inline const char * const *arch_get_ima_policy(void){ return NULL;}#endif
#ifndef CONFIG_IMA_KEXECstruct kimage;
static inline void ima_add_kexec_buffer(struct kimage *image){}#endif
#ifdef CONFIG_IMA_APPRAISEextern bool is_ima_appraise_enabled(void);#elsestatic inline bool is_ima_appraise_enabled(void){ return 0;}#endif /* CONFIG_IMA_APPRAISE */
#if defined(CONFIG_IMA_APPRAISE) && defined(CONFIG_INTEGRITY_TRUSTED_KEYRING)extern bool ima_appraise_signature(enum kernel_read_file_id func);#elsestatic inline bool ima_appraise_signature(enum kernel_read_file_id func){ return false;}#endif /* CONFIG_IMA_APPRAISE && CONFIG_INTEGRITY_TRUSTED_KEYRING */#endif /* _LINUX_IMA_H */