tpm2-tss  3.2.1
TPM Software stack 2.0 TCG spec compliant implementation
ifapi_policy_instantiate.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_INSTANTIATE_H
7 #define FAPI_POLICY_INSTANTIATE_H
8 
9 #include <stdint.h>
10 #include <stdarg.h>
11 #include <stdbool.h>
12 #include <sys/stat.h>
13 #include <json-c/json.h>
14 #include <json-c/json_util.h>
15 
16 #include "tss2_esys.h"
17 #include "tss2_fapi.h"
18 //#include "fapi_int.h"
19 //#include "fapi_policy.h"
20 //#include "ifapi_keystore.h"
21 
22 typedef TSS2_RC (*ifapi_policyeval_cbpublic) (
23  const char *path,
24  TPMT_PUBLIC *public,
25  void *userdata); /* e.g. for FAPI_CONTEXT */
26 
27 typedef TSS2_RC (*ifapi_policyeval_cbname) (
28  const char *path,
29  TPM2B_NAME *name,
30  void *userdata); /* e.g. for FAPI_CONTEXT */
31 
32 typedef TSS2_RC (*ifapi_policyeval_cbnvindex) (
33  const char *path,
34  TPMI_RH_NV_INDEX *nv_index,
35  void *userdata); /* e.g. for FAPI_CONTEXT */
36 
37 typedef TSS2_RC (*ifapi_policyeval_cbnvpublic) (
38  const char *path,
39  TPMI_RH_NV_INDEX nv_index,
40  TPM2B_NV_PUBLIC *nv_public,
41  void *userdata); /* e.g. for FAPI_CONTEXT */
42 
43 typedef TSS2_RC (*ifapi_policyeval_cbpemparam) (
44  const char *keyPEM,
45  TPMT_PUBLIC *keyPublic,
46  TPM2B_NAME *name,
47  void *userdata); /* e.g. for FAPI_CONTEXT */
48 
49 typedef TSS2_RC (*ifapi_policyeval_cbpcr) (
50  TPMS_PCR_SELECT *pcrSelect,
51  TPML_PCR_SELECTION *pcrBankSelect,
52  TPML_PCRVALUES **pcrs,
53  void *userdata); /* e.g. for FAPI_CONTEXT */
54 
55 typedef struct {
56  ifapi_policyeval_cbpcr cbpcr;
57  void *cbpcr_userdata;
58  ifapi_policyeval_cbname cbname;
59  void *cbname_userdata;
60  ifapi_policyeval_cbpublic cbpublic;
61  void *cbpublic_userdata;
62  ifapi_policyeval_cbnvpublic cbnvpublic;
63  void *cbnvpublic_userdata;
65 
68 typedef struct {
70  NODE_OBJECT_T *policy_elements;
73 
74 TSS2_RC
76  IFAPI_POLICY_EVAL_INST_CTX *context, /* For re-entry after try_again for offsets and such */
77  TPMS_POLICY *policy, /* in */
78  ifapi_policyeval_INST_CB *callbacks);
79 TSS2_RC
80 
83 
84 #endif /* FAPI_POLICY_INSTANTIATE_H */
TSS2_RC ifapi_policyeval_instantiate_async(IFAPI_POLICY_EVAL_INST_CTX *context, TPMS_POLICY *policy, ifapi_policyeval_INST_CB *callbacks)
Definition: ifapi_policy_instantiate.c:77
TSS2_RC ifapi_policyeval_instantiate_finish(IFAPI_POLICY_EVAL_INST_CTX *context)
Definition: ifapi_policy_instantiate.c:191
Definition: ifapi_policy_instantiate.h:68
TPMS_POLICY * policy
Definition: ifapi_policy_instantiate.h:69
ifapi_policyeval_INST_CB callbacks
Definition: ifapi_policy_instantiate.h:71
Definition: ifapi_policy_types.h:206
Definition: ifapi_policy_types.h:291
Definition: ifapi_policy_instantiate.h:55
ifapi_policyeval_cbpcr cbpcr
Definition: ifapi_policy_instantiate.h:56
ifapi_policyeval_cbpublic cbpublic
Definition: ifapi_policy_instantiate.h:60
ifapi_policyeval_cbname cbname
Definition: ifapi_policy_instantiate.h:58
ifapi_policyeval_cbnvpublic cbnvpublic
Definition: ifapi_policy_instantiate.h:62
Definition: fapi_types.h:34