tpm2-tss 3.2.1
TPM Software stack 2.0 TCG spec compliant implementation
ifapi_eventlog.h
1/* SPDX-License-Identifier: BSD-2-Clause */
2/*******************************************************************************
3 * Copyright 2018-2019, Fraunhofer SIT sponsored by Infineon Technologies AG
4 * All rights reserved.
5 *******************************************************************************/
6#ifndef IFAPI_EVENTLOG_H
7#define IFAPI_EVENTLOG_H
8
9#include <json-c/json.h>
10
11#include "tss2_tpm2_types.h"
12#include "ifapi_io.h"
13
16typedef UINT32 IFAPI_EVENT_TYPE;
17#define IFAPI_IMA_EVENT_TAG 1
18#define IFAPI_TSS_EVENT_TAG 2
22typedef struct {
23 TPM2B_EVENT data;
24 char *event;
26
29typedef struct {
30 TPM2B_DIGEST eventData;
31 char *eventName;
33
36typedef union {
40
43typedef struct IFAPI_EVENT {
44 UINT32 recnum;
45 TPM2_HANDLE pcr;
46 TPML_DIGEST_VALUES digests;
47 IFAPI_EVENT_TYPE type;
50
51enum IFAPI_EVENTLOG_STATE {
52 IFAPI_EVENTLOG_STATE_INIT = 0,
53 IFAPI_EVENTLOG_STATE_READING,
54 IFAPI_EVENTLOG_STATE_APPENDING,
55 IFAPI_EVENTLOG_STATE_WRITING
56};
57
58typedef struct IFAPI_EVENTLOG {
59 enum IFAPI_EVENTLOG_STATE state;
60 char *log_dir;
61 struct IFAPI_EVENT event;
62 TPM2_HANDLE pcrList[TPM2_MAX_PCRS];
63 size_t pcrListSize;
64 size_t pcrListIdx;
65 json_object *log;
67
68TSS2_RC
70 IFAPI_EVENTLOG *eventlog,
71 const char *log_dir);
72
73TSS2_RC
75 IFAPI_EVENTLOG *eventlog,
76 IFAPI_IO *io,
77 const TPM2_HANDLE *pcrList,
78 size_t pcrListSize);
79
80TSS2_RC
82 IFAPI_EVENTLOG *eventlog,
83 IFAPI_IO *io,
84 char **log);
85
86TSS2_RC
88 IFAPI_EVENTLOG *eventlog,
89 IFAPI_IO *io);
90
91TSS2_RC
93 IFAPI_EVENTLOG *eventlog,
94 IFAPI_IO *io,
95 const IFAPI_EVENT *event);
96
97void
99 IFAPI_EVENT * event);
100
101#endif /* IFAPI_EVENTLOG_H */
TSS2_RC ifapi_eventlog_get_finish(IFAPI_EVENTLOG *eventlog, IFAPI_IO *io, char **log)
Definition: ifapi_eventlog.c:115
TSS2_RC ifapi_eventlog_append_finish(IFAPI_EVENTLOG *eventlog, IFAPI_IO *io, const IFAPI_EVENT *event)
Definition: ifapi_eventlog.c:294
void ifapi_cleanup_event(IFAPI_EVENT *event)
Definition: ifapi_eventlog.c:363
TSS2_RC ifapi_eventlog_append_check(IFAPI_EVENTLOG *eventlog, IFAPI_IO *io)
Definition: ifapi_eventlog.c:224
TSS2_RC ifapi_eventlog_get_async(IFAPI_EVENTLOG *eventlog, IFAPI_IO *io, const TPM2_HANDLE *pcrList, size_t pcrListSize)
Definition: ifapi_eventlog.c:69
TSS2_RC ifapi_eventlog_initialize(IFAPI_EVENTLOG *eventlog, const char *log_dir)
Definition: ifapi_eventlog.c:35
Definition: ifapi_eventlog.h:43
IFAPI_EVENT_UNION sub_event
Definition: ifapi_eventlog.h:48
TPML_DIGEST_VALUES digests
Definition: ifapi_eventlog.h:46
UINT32 recnum
Definition: ifapi_eventlog.h:44
TPM2_HANDLE pcr
Definition: ifapi_eventlog.h:45
IFAPI_EVENT_TYPE type
Definition: ifapi_eventlog.h:47
Definition: ifapi_eventlog.h:58
Definition: ifapi_eventlog.h:29
TPM2B_DIGEST eventData
Definition: ifapi_eventlog.h:30
char * eventName
Definition: ifapi_eventlog.h:31
Definition: ifapi_io.h:15
Definition: ifapi_eventlog.h:22
TPM2B_EVENT data
Definition: ifapi_eventlog.h:23
char * event
Definition: ifapi_eventlog.h:24
Definition: ifapi_eventlog.h:36
IFAPI_IMA_EVENT ima_event
Definition: ifapi_eventlog.h:38
IFAPI_TSS_EVENT tss_event
Definition: ifapi_eventlog.h:37