blob: 2271939c5c3140d2ca80efb68b5e6e6c99e7098c [file] [log] [blame]
David Brazdil0f672f62019-12-10 10:32:29 +00001/* SPDX-License-Identifier: GPL-2.0-only */
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00002/*
3 * Copyright (C) 2009 IBM Corporation
4 * Author: Mimi Zohar <zohar@us.ibm.com>
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00005 */
6
7#ifndef _LINUX_INTEGRITY_H
8#define _LINUX_INTEGRITY_H
9
10#include <linux/fs.h>
11
12enum integrity_status {
13 INTEGRITY_PASS = 0,
14 INTEGRITY_PASS_IMMUTABLE,
15 INTEGRITY_FAIL,
16 INTEGRITY_NOLABEL,
17 INTEGRITY_NOXATTRS,
18 INTEGRITY_UNKNOWN,
19};
20
21/* List of EVM protected security xattrs */
22#ifdef CONFIG_INTEGRITY
23extern struct integrity_iint_cache *integrity_inode_get(struct inode *inode);
24extern void integrity_inode_free(struct inode *inode);
25extern void __init integrity_load_keys(void);
26
27#else
28static inline struct integrity_iint_cache *
29 integrity_inode_get(struct inode *inode)
30{
31 return NULL;
32}
33
34static inline void integrity_inode_free(struct inode *inode)
35{
36 return;
37}
38
39static inline void integrity_load_keys(void)
40{
41}
42#endif /* CONFIG_INTEGRITY */
43
44#ifdef CONFIG_INTEGRITY_ASYMMETRIC_KEYS
45
46extern int integrity_kernel_module_request(char *kmod_name);
47
48#else
49
50static inline int integrity_kernel_module_request(char *kmod_name)
51{
52 return 0;
53}
54
55#endif /* CONFIG_INTEGRITY_ASYMMETRIC_KEYS */
56
57#endif /* _LINUX_INTEGRITY_H */