32#ifndef PROTOCORE_AUDIT_LOG_H
33#define PROTOCORE_AUDIT_LOG_H
39#if PC_ENABLE_AUDIT_LOG
42#define PC_AUDIT_HASH_LEN 32
45enum class pc_audit_cat : uint8_t
49 PC_AUDIT_AUTH_FAIL = 2,
60 pc_audit_cat category;
61 char msg[PC_AUDIT_MSG_LEN];
62 uint8_t hash[PC_AUDIT_HASH_LEN];
66typedef void (*pc_audit_sink_fn)(
const pc_audit_entry *entry);
69void pc_audit_reset(
void);
77void pc_audit_set_sink(pc_audit_sink_fn sink);
86uint32_t pc_audit_append(pc_audit_cat category,
const char *msg);
89uint16_t pc_audit_count(
void);
92const pc_audit_entry *pc_audit_at(uint16_t i);
101bool pc_audit_verify(uint32_t *first_broken_seq);
104const char *pc_audit_cat_name(pc_audit_cat category);
110int pc_audit_format(
const pc_audit_entry *entry,
char *out,
size_t cap);
120int pc_audit_dump_json(
char *out,
size_t cap);
User-facing configuration for ProtoCore.