#include "ima_template_lib.h"
#include <linux/xattr.h>
#include <linux/evm.h>
static bool ima_template_hash_algo_allowed(u8 algo)
{ … }
enum data_formats { … };
enum digest_type { … };
#define DIGEST_TYPE_NAME_LEN_MAX …
static const char * const digest_type_name[DIGEST_TYPE__LAST] = …;
static int ima_write_template_field_data(const void *data, const u32 datalen,
enum data_formats datafmt,
struct ima_field_data *field_data)
{ … }
static void ima_show_template_data_ascii(struct seq_file *m,
enum ima_show_type show,
enum data_formats datafmt,
struct ima_field_data *field_data)
{ … }
static void ima_show_template_data_binary(struct seq_file *m,
enum ima_show_type show,
enum data_formats datafmt,
struct ima_field_data *field_data)
{ … }
static void ima_show_template_field_data(struct seq_file *m,
enum ima_show_type show,
enum data_formats datafmt,
struct ima_field_data *field_data)
{ … }
void ima_show_template_digest(struct seq_file *m, enum ima_show_type show,
struct ima_field_data *field_data)
{ … }
void ima_show_template_digest_ng(struct seq_file *m, enum ima_show_type show,
struct ima_field_data *field_data)
{ … }
void ima_show_template_digest_ngv2(struct seq_file *m, enum ima_show_type show,
struct ima_field_data *field_data)
{ … }
void ima_show_template_string(struct seq_file *m, enum ima_show_type show,
struct ima_field_data *field_data)
{ … }
void ima_show_template_sig(struct seq_file *m, enum ima_show_type show,
struct ima_field_data *field_data)
{ … }
void ima_show_template_buf(struct seq_file *m, enum ima_show_type show,
struct ima_field_data *field_data)
{ … }
void ima_show_template_uint(struct seq_file *m, enum ima_show_type show,
struct ima_field_data *field_data)
{ … }
int ima_parse_buf(void *bufstartp, void *bufendp, void **bufcurp,
int maxfields, struct ima_field_data *fields, int *curfields,
unsigned long *len_mask, int enforce_mask, char *bufname)
{ … }
static int ima_eventdigest_init_common(const u8 *digest, u32 digestsize,
u8 digest_type, u8 hash_algo,
struct ima_field_data *field_data)
{ … }
int ima_eventdigest_init(struct ima_event_data *event_data,
struct ima_field_data *field_data)
{ … }
int ima_eventdigest_ng_init(struct ima_event_data *event_data,
struct ima_field_data *field_data)
{ … }
int ima_eventdigest_ngv2_init(struct ima_event_data *event_data,
struct ima_field_data *field_data)
{ … }
int ima_eventdigest_modsig_init(struct ima_event_data *event_data,
struct ima_field_data *field_data)
{ … }
static int ima_eventname_init_common(struct ima_event_data *event_data,
struct ima_field_data *field_data,
bool size_limit)
{ … }
int ima_eventname_init(struct ima_event_data *event_data,
struct ima_field_data *field_data)
{ … }
int ima_eventname_ng_init(struct ima_event_data *event_data,
struct ima_field_data *field_data)
{ … }
int ima_eventsig_init(struct ima_event_data *event_data,
struct ima_field_data *field_data)
{ … }
int ima_eventbuf_init(struct ima_event_data *event_data,
struct ima_field_data *field_data)
{ … }
int ima_eventmodsig_init(struct ima_event_data *event_data,
struct ima_field_data *field_data)
{ … }
int ima_eventevmsig_init(struct ima_event_data *event_data,
struct ima_field_data *field_data)
{ … }
static int ima_eventinodedac_init_common(struct ima_event_data *event_data,
struct ima_field_data *field_data,
bool get_uid)
{ … }
int ima_eventinodeuid_init(struct ima_event_data *event_data,
struct ima_field_data *field_data)
{ … }
int ima_eventinodegid_init(struct ima_event_data *event_data,
struct ima_field_data *field_data)
{ … }
int ima_eventinodemode_init(struct ima_event_data *event_data,
struct ima_field_data *field_data)
{ … }
static int ima_eventinodexattrs_init_common(struct ima_event_data *event_data,
struct ima_field_data *field_data,
char type)
{ … }
int ima_eventinodexattrnames_init(struct ima_event_data *event_data,
struct ima_field_data *field_data)
{ … }
int ima_eventinodexattrlengths_init(struct ima_event_data *event_data,
struct ima_field_data *field_data)
{ … }
int ima_eventinodexattrvalues_init(struct ima_event_data *event_data,
struct ima_field_data *field_data)
{ … }