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
22typedef TSS2_RC (*ifapi_policyeval_cbpublic) (
23 const char *path,
24 TPMT_PUBLIC *public,
25 void *userdata); /* e.g. for FAPI_CONTEXT */
26
27typedef TSS2_RC (*ifapi_policyeval_cbname) (
28 const char *path,
29 TPM2B_NAME *name,
30 void *userdata); /* e.g. for FAPI_CONTEXT */
31
32typedef 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
37typedef 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
43typedef 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
49typedef 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
55typedef 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
68typedef struct {
70 NODE_OBJECT_T *policy_elements;
73
74TSS2_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);
79TSS2_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