tpm2-tss  3.2.1
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 
11 enum 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 
25 typedef struct {
26  enum IFAPI_STATE_POL_CB_EXCECUTE cb_state;
28  char*object_path;
35  IFAPI_LoadKey load_ctx_sav;
36  IFAPI_LoadKey load_ctx;
37  IFAPI_CreatePrimary create_primary_ctx_sav;
38  IFAPI_CreatePrimary create_primary_ctx;
39  IFAPI_OBJECT *key_object_ptr;
40  IFAPI_OBJECT *auth_object_ptr;
41  IFAPI_NV_Cmds nv_cmd_state;
43  TPM2B_DIGEST policy_digest;
44  ESYS_TR session;
45  TPMS_POLICY *policy;
47 
48 TSS2_RC
50  const char *path,
51  TPMT_PUBLIC *public,
52  void *context);
53 
54 TSS2_RC
56  const char *path,
57  TPM2B_NAME *name,
58  void *context);
59 
60 TSS2_RC
61 ifapi_get_nv_public(
62  const char *path,
63  TPMI_RH_NV_INDEX nv_index,
64  TPM2B_NV_PUBLIC *nv_public,
65  void *context);
66 
67 TSS2_RC
69  TPMS_PCR_SELECT *pcr_select,
70  TPML_PCR_SELECTION *pcr_selection,
71  TPML_PCRVALUES **pcr_values,
72  void *ctx);
73 
74 TSS2_RC
76  TPM2B_NAME *name,
77  ESYS_TR *object_handle,
78  ESYS_TR *auth_handle,
79  ESYS_TR *authSession,
80  void *userdata);
81 
82 TSS2_RC
84  TPML_POLICYBRANCHES *branches,
85  size_t *branch_idx,
86  void *userdata);
87 
88 TSS2_RC
89 ifapi_sign_buffer(
90  char *key_pem,
91  char *public_key_hint,
92  TPMI_ALG_HASH key_pem_hash_alg,
93  uint8_t *buffer,
94  size_t buffer_size,
95  const uint8_t **signature,
96  size_t *signature_size,
97  void *userdata);
98 
99 TSS2_RC
100 ifapi_exec_auth_policy(
101  TPMT_PUBLIC *key_public,
102  TPMI_ALG_HASH hash_alg,
103  TPM2B_DIGEST *digest,
104  TPM2B_NONCE *policyRef,
105  TPMT_SIGNATURE *signature,
106  void *userdata);
107 
108 TSS2_RC
110  TPM2B_NV_PUBLIC *nv_public,
111  TPMI_ALG_HASH hash_alg,
112  void *userdata);
113 
114 TSS2_RC
116  TPM2B_NAME *name,
117  void *userdata);
118 
119 TSS2_RC
121  const char *action,
122  void *userdata);
123 
124 #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:484
TSS2_RC ifapi_exec_auth_nv_policy(TPM2B_NV_PUBLIC *nv_public, TPMI_ALG_HASH hash_alg, void *userdata)
Definition: ifapi_policy_callbacks.c:1404
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:655
TSS2_RC ifapi_policy_action(const char *action, void *userdata)
Definition: ifapi_policy_callbacks.c:708
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:337
TSS2_RC ifapi_get_duplicate_name(TPM2B_NAME *name, void *userdata)
Definition: ifapi_policy_callbacks.c:1542
Definition: ifapi_keystore.h:145
Definition: fapi_int.h:562
Definition: fapi_int.h:712
Definition: fapi_int.h:219
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
IFAPI_NV_Cmds nv_cmd_state_sav
Definition: ifapi_policy_callbacks.h:42
ESYS_TR auth_index
Definition: ifapi_policy_callbacks.h:32
Definition: ifapi_policy_types.h:206
Definition: ifapi_policy_types.h:239
Definition: ifapi_policy_types.h:291