tpm2-tss 4.1.3
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_LOAD_KEY_FINISH,
15 POL_CB_SEARCH_POLICY,
16 POL_CB_EXECUTE_SUB_POLICY,
17 POL_CB_NV_READ,
18 POL_CB_READ_NV_POLICY,
19 POL_CB_READ_OBJECT,
20 POL_CB_AUTHORIZE_OBJECT,
21 POL_CB_AUTHORIZE_KEY
22};
23
25typedef struct {
26 enum IFAPI_STATE_POL_CB_EXCECUTE cb_state;
36 IFAPI_LoadKey load_ctx_sav;
37 IFAPI_LoadKey load_ctx;
38 IFAPI_CreatePrimary create_primary_ctx_sav;
39 IFAPI_CreatePrimary create_primary_ctx;
40 IFAPI_OBJECT *key_object_ptr;
41 IFAPI_OBJECT *auth_object_ptr;
42 IFAPI_NV_Cmds nv_cmd_state;
44 TPM2B_DIGEST policy_digest;
45 ESYS_TR session;
46 TPMS_POLICY *policy;
48
49TSS2_RC
51 const char *path,
52 TPMT_PUBLIC *public,
53 void *context);
54
55TSS2_RC
57 const char *path,
58 TPM2B_NAME *name,
59 void *context);
60
61TSS2_RC
62ifapi_get_nv_public(
63 const char *path,
64 TPMI_RH_NV_INDEX nv_index,
65 TPMS_NV_PUBLIC *nv_public,
66 void *context);
67
68TSS2_RC
69ifapi_read_pcr(
70 TSS2_POLICY_PCR_SELECTION *pcr_selection,
71 TPML_PCR_SELECTION *out_pcr_selection,
72 TPML_DIGEST *out_pcr_digests,
73 void *ctx);
74
75TSS2_RC
77 TPM2B_NAME *name,
78 ESYS_TR *object_handle,
79 ESYS_TR *auth_handle,
80 ESYS_TR *authSession,
81 void *userdata);
82
83TSS2_RC
84ifapi_policyeval_cbload_key(
85 TPM2B_NAME *name,
86 ESYS_TR *object_handle,
87 void *userdata);
88
89TSS2_RC
90ifapi_branch_selection(
91 TSS2_OBJECT *auth_object,
92 const char *branch_names[8],
93 size_t branch_count,
94 size_t *branch_idx,
95 void *userdata);
96
97TSS2_RC
98ifapi_sign_buffer(
99 char *key_pem,
100 char *public_key_hint,
101 TPMI_ALG_HASH key_pem_hash_alg,
102 uint8_t *buffer,
103 size_t buffer_size,
104 const uint8_t **signature,
105 size_t *signature_size,
106 void *userdata);
107
108TSS2_RC
109ifapi_exec_auth_policy(
110 TPMT_PUBLIC *key_public,
111 TPMI_ALG_HASH hash_alg,
112 TPM2B_DIGEST *digest,
113 TPM2B_NONCE *policyRef,
114 TPMT_SIGNATURE *signature,
115 void *userdata);
116
117TSS2_RC
118ifapi_exec_auth_nv_policy(
119 TPMS_NV_PUBLIC *nv_public,
120 TPMI_ALG_HASH hash_alg,
121 void *userdata);
122
123TSS2_RC
125 TPM2B_NAME *name,
126 void *userdata);
127
128TSS2_RC
130 const char *action,
131 void *userdata);
132
133#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:457
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_policy_action(const char *action, void *userdata)
Definition ifapi_policy_callbacks.c:812
TSS2_RC ifapi_get_duplicate_name(TPM2B_NAME *name, void *userdata)
Definition ifapi_policy_callbacks.c:1651
Definition ifapi_keystore.h:150
Definition fapi_int.h:572
Definition fapi_int.h:725
Definition fapi_int.h:224
Definition ifapi_policy_callbacks.h:25
ESYS_TR flush_handle
Definition ifapi_policy_callbacks.h:33
char * object_path
Definition ifapi_policy_callbacks.h:28
ESYS_TR key_handle
Definition ifapi_policy_callbacks.h:30
IFAPI_OBJECT object
Definition ifapi_policy_callbacks.h:29
ESYS_TR nv_index
Definition ifapi_policy_callbacks.h:31
IFAPI_OBJECT auth_object
Definition ifapi_policy_callbacks.h:34
enum IFAPI_STATE_POL_CB_EXCECUTE cb_state
Definition ifapi_policy_callbacks.h:26
ESYS_TR * enc_session
Definition ifapi_policy_callbacks.h:35
IFAPI_NV_Cmds nv_cmd_state_sav
Definition ifapi_policy_callbacks.h:43
ESYS_TR auth_index
Definition ifapi_policy_callbacks.h:32
Definition ifapi_policy_types.h:275