#include "fsverity_private.h"
#include <linux/mm.h>
#include <linux/slab.h>
static struct kmem_cache *fsverity_info_cachep;
int fsverity_init_merkle_tree_params(struct merkle_tree_params *params,
const struct inode *inode,
unsigned int hash_algorithm,
unsigned int log_blocksize,
const u8 *salt, size_t salt_size)
{ … }
static int compute_file_digest(const struct fsverity_hash_alg *hash_alg,
struct fsverity_descriptor *desc,
u8 *file_digest)
{ … }
struct fsverity_info *fsverity_create_info(const struct inode *inode,
struct fsverity_descriptor *desc)
{ … }
void fsverity_set_info(struct inode *inode, struct fsverity_info *vi)
{ … }
void fsverity_free_info(struct fsverity_info *vi)
{ … }
static bool validate_fsverity_descriptor(struct inode *inode,
const struct fsverity_descriptor *desc,
size_t desc_size)
{ … }
int fsverity_get_descriptor(struct inode *inode,
struct fsverity_descriptor **desc_ret)
{ … }
static int ensure_verity_info(struct inode *inode)
{ … }
int __fsverity_file_open(struct inode *inode, struct file *filp)
{ … }
EXPORT_SYMBOL_GPL(…);
int __fsverity_prepare_setattr(struct dentry *dentry, struct iattr *attr)
{ … }
EXPORT_SYMBOL_GPL(…);
void __fsverity_cleanup_inode(struct inode *inode)
{ … }
EXPORT_SYMBOL_GPL(…);
void __init fsverity_init_info_cache(void)
{ … }