tpm2-tss 3.2.0
TPM Software stack 2.0 TCG spec compliant implementation
ifapi_policy_callbacks.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_CALLBACKS_H
7#define FAPI_POLICY_CALLBACKS_H
8
9
11enum IFAPI_STATE_POL_CB_EXCECUTE {
12 POL_CB_EXECUTE_INIT = 0,
13 POL_CB_LOAD_KEY,
14 POL_CB_SEARCH_POLICY,
15 POL_CB_EXECUTE_SUB_POLICY,
16 POL_CB_NV_READ,
17 POL_CB_READ_NV_POLICY,
18 POL_CB_READ_OBJECT,
19 POL_CB_AUTHORIZE_OBJECT
20};
21
23typedef struct {
24 enum IFAPI_STATE_POL_CB_EXCECUTE cb_state;
32 IFAPI_OBJECT *key_object_ptr;
33 IFAPI_OBJECT *auth_object_ptr;
34 IFAPI_NV_Cmds nv_cmd_state;
36 TPM2B_DIGEST policy_digest;
37 ESYS_TR session;
38 TPMS_POLICY *policy;
40
41TSS2_RC
43 const char *path,
44 TPMT_PUBLIC *public,
45 void *context);
46
47TSS2_RC
49 const char *path,
50 TPM2B_NAME *name,
51 void *context);
52
53TSS2_RC
55 const char *path,
56 TPM2B_NV_PUBLIC *nv_public,
57 void *context);
58
59TSS2_RC
61 TPMS_PCR_SELECT *pcr_select,
62 TPML_PCR_SELECTION *pcr_selection,
63 TPML_PCRVALUES **pcr_values,
64 void *ctx);
65
66TSS2_RC
68 TPM2B_NAME *name,
69 ESYS_TR *object_handle,
70 ESYS_TR *auth_handle,
71 ESYS_TR *authSession,
72 void *userdata);
73
74TSS2_RC
76 TPML_POLICYBRANCHES *branches,
77 size_t *branch_idx,
78 void *userdata);
79
80TSS2_RC
81ifapi_sign_buffer(
82 char *key_pem,
83 char *public_key_hint,
84 TPMI_ALG_HASH key_pem_hash_alg,
85 uint8_t *buffer,
86 size_t buffer_size,
87 const uint8_t **signature,
88 size_t *signature_size,
89 void *userdata);
90
91TSS2_RC
92ifapi_exec_auth_policy(
93 TPMT_PUBLIC *key_public,
94 TPMI_ALG_HASH hash_alg,
95 TPM2B_DIGEST *digest,
96 TPM2B_NONCE *policyRef,
97 TPMT_SIGNATURE *signature,
98 void *userdata);
99
100TSS2_RC
102 TPM2B_NV_PUBLIC *nv_public,
103 TPMI_ALG_HASH hash_alg,
104 void *userdata);
105
106TSS2_RC
108 TPM2B_NAME *name,
109 void *userdata);
110
111TSS2_RC
113 const char *action,
114 void *userdata);
115
116#endif /* FAPI_POLICY_CALLBACKS_H */
uint32_t ESYS_TR
Definition: tss2_esys.h:16
TSS2_RC ifapi_policyeval_cbauth(TPM2B_NAME *name, ESYS_TR *object_handle, ESYS_TR *auth_handle, ESYS_TR *authSession, void *userdata)
Definition: ifapi_policy_callbacks.c:443
TSS2_RC ifapi_exec_auth_nv_policy(TPM2B_NV_PUBLIC *nv_public, TPMI_ALG_HASH hash_alg, void *userdata)
Definition: ifapi_policy_callbacks.c:1329
TSS2_RC ifapi_get_key_public(const char *path, TPMT_PUBLIC *public, void *context)
Definition: ifapi_policy_callbacks.c:87
TSS2_RC ifapi_get_object_name(const char *path, TPM2B_NAME *name, void *context)
Definition: ifapi_policy_callbacks.c:160
TSS2_RC ifapi_branch_selection(TPML_POLICYBRANCHES *branches, size_t *branch_idx, void *userdata)
Definition: ifapi_policy_callbacks.c:580
TSS2_RC ifapi_get_nv_public(const char *path, TPM2B_NV_PUBLIC *nv_public, void *context)
Definition: ifapi_policy_callbacks.c:239
TSS2_RC ifapi_policy_action(const char *action, void *userdata)
Definition: ifapi_policy_callbacks.c:633
TSS2_RC ifapi_read_pcr(TPMS_PCR_SELECT *pcr_select, TPML_PCR_SELECTION *pcr_selection, TPML_PCRVALUES **pcr_values, void *ctx)
Definition: ifapi_policy_callbacks.c:296
TSS2_RC ifapi_get_duplicate_name(TPM2B_NAME *name, void *userdata)
Definition: ifapi_policy_callbacks.c:1467
Definition: ifapi_keystore.h:143
Definition: fapi_int.h:212
Definition: ifapi_policy_callbacks.h:23
char * object_path
Definition: ifapi_policy_callbacks.h:26
ESYS_TR key_handle
Definition: ifapi_policy_callbacks.h:28
IFAPI_OBJECT object
Definition: ifapi_policy_callbacks.h:27
ESYS_TR nv_index
Definition: ifapi_policy_callbacks.h:29
IFAPI_OBJECT auth_object
Definition: ifapi_policy_callbacks.h:31
enum IFAPI_STATE_POL_CB_EXCECUTE cb_state
Definition: ifapi_policy_callbacks.h:24
IFAPI_NV_Cmds nv_cmd_state_sav
Definition: ifapi_policy_callbacks.h:35
ESYS_TR auth_index
Definition: ifapi_policy_callbacks.h:30
Definition: ifapi_policy_types.h:206
Definition: ifapi_policy_types.h:239
Definition: ifapi_policy_types.h:291