tpm2-tss 4.2.0
TPM Software stack 2.0 TCG spec compliant implementation
ifapi_policy_execute.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 FAPI_POLICY_EXECUTE_H
7#define FAPI_POLICY_EXECUTE_H
8
9#include <stdbool.h> // for bool
10#include <stddef.h> // for size_t
11#include <stdint.h> // for uint8_t
12
13#include "fapi_int.h" // for IFAPI_POLICY_EXEC_CTX
14#include "fapi_types.h" // for NODE_OBJECT_T
15#include "ifapi_keystore.h" // for IFAPI_OBJECT
16#include "ifapi_policy_types.h" // for TPMS_POLICY, TPMS_POLICYAUTHORIZATION
17#include "tss2_common.h" // for TSS2_RC
18#include "tss2_esys.h" // for ESYS_TR, ESYS_CONTEXT
19#include "tss2_policy.h" // for TSS2_POLICY_EXEC_CALLBACKS
20#include "tss2_tpm2_types.h" // for TPMI_ALG_HASH, TPM2B_DIGEST, TPM2B_NAME
21
22TSS2_RC
24
25typedef TSS2_RC (*Policy_Compare_Object)(TPMS_POLICY *policy,
26 void *object1,
27 void *object2,
28 bool *found);
29
35 const char *path;
37 struct POLICY_LIST *next;
38};
39
49
51enum IFAPI_STATE_POLICY_EXCECUTE {
52 POLICY_EXECUTE_INIT = 0,
53 POLICY_EXECUTE_FINISH,
54 POLICY_EXECUTE_CALLBACK,
55 POLICY_LOAD_KEY,
56 POLICY_LOAD_KEYEDHASH,
57 POLICY_FLUSH_KEY,
58 POLICY_VERIFY,
59 POLICY_AUTH_CALLBACK,
60 POLICY_AUTH_SENT,
61 POLICY_EXEC_ESYS
62};
63
64typedef struct IFAPI_POLICY_CALLBACK_CTX IFAPI_POLICY_CALLBACK_CTX;
65
68 enum IFAPI_STATE_POLICY_EXCECUTE state;
71 TPML_DIGEST digest_list;
75 TPMS_POLICY *policy;
78
79 ESYS_TR object_handle;
80 ESYS_TR nv_index;
81 ESYS_TR auth_handle;
84 ESYS_TR auth_session;
85 TPMI_ALG_HASH hash_alg;
86 void *app_data;
87 NODE_OBJECT_T *policy_elements;
88 TPM2B_DIGEST *nonceTPM;
89 uint8_t *buffer;
90 size_t buffer_size;
91 TPM2B_NAME name;
92 char *pem_key;
96 TSS2_POLICY_EXEC_CALLBACKS callbacks;
100};
101
102TSS2_RC
104 TPMI_ALG_HASH hash_alg,
106
107TSS2_RC
108ifapi_policyeval_execute(ESYS_CONTEXT *esys_ctx,
109 IFAPI_POLICY_EXEC_CTX *current_policy,
110 bool do_flush);
111
112#endif /* FAPI_POLICY_EXECUTE_H */
uint32_t ESYS_TR
Definition tss2_esys.h:16
Definition esys_int.h:168
TSS2_RC ifapi_extend_authorization(TPMS_POLICY *policy, TPMS_POLICYAUTHORIZATION *authorization)
Definition ifapi_policy_execute.c:86
TSS2_RC ifapi_policyeval_execute_prepare(IFAPI_POLICY_EXEC_CTX *pol_ctx, TPMI_ALG_HASH hash_alg, TPMS_POLICY *policy)
Definition ifapi_policy_execute.c:1670
Definition ifapi_keystore.h:153
Definition ifapi_policy_execute.h:67
void * app_data
Definition ifapi_policy_execute.h:86
enum IFAPI_STATE_POLICY_EXCECUTE state
Definition ifapi_policy_execute.h:68
NODE_OBJECT_T * policy_elements
Definition ifapi_policy_execute.h:87
ESYS_TR policySessionSav
Definition ifapi_policy_execute.h:76
bool flush_handle
Definition ifapi_policy_execute.h:95
struct POLICY_LIST * policy_list
Definition ifapi_policy_execute.h:93
IFAPI_POLICY_EXEC_CTX * prev
Definition ifapi_policy_execute.h:73
ESYS_TR session
Definition ifapi_policy_execute.h:74
IFAPI_OBJECT auth_objectNV
Definition ifapi_policy_execute.h:82
ESYS_TR * enc_session
Definition ifapi_policy_execute.h:77
TSS2_POLICY_EXEC_CALLBACKS callbacks
Definition ifapi_policy_execute.h:96
IFAPI_POLICY_EXEC_CTX * next
Definition ifapi_policy_execute.h:72
IFAPI_OBJECT * auth_object
Definition ifapi_policy_execute.h:83
char * pem_key
Definition ifapi_policy_execute.h:92
Definition ifapi_policy_execute.h:34
const char * path
Definition ifapi_policy_execute.h:35
struct POLICY_LIST * next
Definition ifapi_policy_execute.h:37
TPMS_POLICY policy
Definition ifapi_policy_execute.h:36
Definition ifapi_policy_types.h:133
Definition ifapi_policy_types.h:281
Definition ifapi_policy_execute.h:44
const char * path
Definition ifapi_policy_execute.h:45
TPMS_POLICY policy
Definition ifapi_policy_execute.h:46
struct policy_object_node * next
Definition ifapi_policy_execute.h:47