#ifndef __INTEGRITY_EVM_H
#define __INTEGRITY_EVM_H
#include <linux/xattr.h>
#include <linux/security.h>
#include "../integrity.h"
#define EVM_INIT_HMAC …
#define EVM_INIT_X509 …
#define EVM_ALLOW_METADATA_WRITES …
#define EVM_SETUP_COMPLETE …
#define EVM_KEY_MASK …
#define EVM_INIT_MASK …
struct xattr_list { … };
#define EVM_NEW_FILE …
#define EVM_IMMUTABLE_DIGSIG …
struct evm_iint_cache { … };
extern struct lsm_blob_sizes evm_blob_sizes;
static inline struct evm_iint_cache *evm_iint_inode(const struct inode *inode)
{ … }
extern int evm_initialized;
#define EVM_ATTR_FSUUID …
extern int evm_hmac_attrs;
extern struct list_head evm_config_xattrnames;
struct evm_digest { … } __packed;
int evm_protected_xattr(const char *req_xattr_name);
int evm_init_key(void);
int evm_update_evmxattr(struct dentry *dentry,
const char *req_xattr_name,
const char *req_xattr_value,
size_t req_xattr_value_len);
int evm_calc_hmac(struct dentry *dentry, const char *req_xattr_name,
const char *req_xattr_value,
size_t req_xattr_value_len, struct evm_digest *data,
struct evm_iint_cache *iint);
int evm_calc_hash(struct dentry *dentry, const char *req_xattr_name,
const char *req_xattr_value,
size_t req_xattr_value_len, char type,
struct evm_digest *data, struct evm_iint_cache *iint);
int evm_init_hmac(struct inode *inode, const struct xattr *xattrs,
char *hmac_val);
int evm_init_secfs(void);
#endif