32#ifndef PROTOCORE_AUDIT_LOG_H
33#define PROTOCORE_AUDIT_LOG_H
37#if PROTOCORE_ENABLE_AUDIT_LOG
45#define PROTOCORE_AUDIT_HASH_LEN 32
50 PROTOCORE_AUDIT_SYSTEM = 0,
51 PROTOCORE_AUDIT_AUTH = 1,
52 PROTOCORE_AUDIT_AUTH_FAIL = 2,
53 PROTOCORE_AUDIT_ACCESS = 3,
54 PROTOCORE_AUDIT_CONFIG = 4,
55 PROTOCORE_AUDIT_ADMIN = 5,
63 protocore_audit_cat category;
64 char msg[PROTOCORE_AUDIT_MSG_LEN];
65 uint8_t hash[PROTOCORE_AUDIT_HASH_LEN];
66} protocore_audit_entry;
69typedef void (*protocore_audit_sink_fn)(
const protocore_audit_entry *entry);
74 protocore_audit_sink_fn sink;
80 protocore_audit_cat category;
93 uint32_t *first_broken_seq;
99 protocore_audit_cat category;
100} AuditLogCatNameArgs;
105 const protocore_audit_entry *entry;
115} AuditLogDumpJsonArgs;
118 AuditLogSetSinkArgs set_sink_args;
119 AuditLogAppendArgs append_args;
120 AuditLogAtArgs at_args;
121 AuditLogVerifyArgs verify_args;
122 AuditLogCatNameArgs cat_name_args;
123 AuditLogFormatArgs format_args;
124 AuditLogDumpJsonArgs dump_json_args;
128 const protocore_audit_entry *ptr;
134extern AuditLogVars AuditLogV;
139 void (*
const reset)(uint8_t *work);
140 void (*
const set_sink)(uint8_t *work);
141 void (*
const append)(uint8_t *work);
142 void (*
const count)(uint8_t *work);
143 void (*
const at)(uint8_t *work);
144 void (*
const verify)(uint8_t *work);
145 void (*
const cat_name)(uint8_t *work);
146 void (*
const format)(uint8_t *work);
147 void (*
const dump_json)(uint8_t *work);
152void protocore_audit_log_reset(uint8_t *work);
153void protocore_audit_log_set_sink(uint8_t *work);
154void protocore_audit_log_append(uint8_t *work);
155void protocore_audit_log_count(uint8_t *work);
156void protocore_audit_log_at(uint8_t *work);
157void protocore_audit_log_verify(uint8_t *work);
158void protocore_audit_log_cat_name(uint8_t *work);
159void protocore_audit_log_format(uint8_t *work);
160void protocore_audit_log_dump_json(uint8_t *work);
166static const AuditLogNs AuditLog __attribute__((unused)) = {
167 .reset = protocore_audit_log_reset,
168 .set_sink = protocore_audit_log_set_sink,
169 .append = protocore_audit_log_append,
170 .count = protocore_audit_log_count,
171 .at = protocore_audit_log_at,
172 .verify = protocore_audit_log_verify,
173 .cat_name = protocore_audit_log_cat_name,
174 .format = protocore_audit_log_format,
175 .dump_json = protocore_audit_log_dump_json,
187uint8_t *protocore_audit_log_span(
void);
PROTO_ENUM_PACKED
Application protocol spoken on a listener port or connection slot.
#define PROTOCORE_BEGIN_DECLS
Give a header's declarations C linkage, so their symbol names carry no parameter types.
_Bool proto_bool
The truth value.
#define PROTOCORE_END_DECLS