tpm2-tss 3.2.0
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 TPM2B_NV_PUBLIC *nv_public,
40 void *userdata); /* e.g. for FAPI_CONTEXT */
41
42typedef TSS2_RC (*ifapi_policyeval_cbpemparam) (
43 const char *keyPEM,
44 TPMT_PUBLIC *keyPublic,
45 TPM2B_NAME *name,
46 void *userdata); /* e.g. for FAPI_CONTEXT */
47
48typedef TSS2_RC (*ifapi_policyeval_cbpcr) (
49 TPMS_PCR_SELECT *pcrSelect,
50 TPML_PCR_SELECTION *pcrBankSelect,
51 TPML_PCRVALUES **pcrs,
52 void *userdata); /* e.g. for FAPI_CONTEXT */
53
54typedef struct {
55 ifapi_policyeval_cbpcr cbpcr;
56 void *cbpcr_userdata;
57 ifapi_policyeval_cbname cbname;
58 void *cbname_userdata;
59 ifapi_policyeval_cbpublic cbpublic;
60 void *cbpublic_userdata;
61 ifapi_policyeval_cbnvpublic cbnvpublic;
62 void *cbnvpublic_userdata;
64
67typedef struct {
69 NODE_OBJECT_T *policy_elements;
72
73TSS2_RC
75 IFAPI_POLICY_EVAL_INST_CTX *context, /* For re-entry after try_again for offsets and such */
76 TPMS_POLICY *policy, /* in */
77 ifapi_policyeval_INST_CB *callbacks);
78TSS2_RC
79
82
83#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:67
TPMS_POLICY * policy
Definition: ifapi_policy_instantiate.h:68
ifapi_policyeval_INST_CB callbacks
Definition: ifapi_policy_instantiate.h:70
Definition: ifapi_policy_types.h:206
Definition: ifapi_policy_types.h:291
Definition: ifapi_policy_instantiate.h:54
ifapi_policyeval_cbpcr cbpcr
Definition: ifapi_policy_instantiate.h:55
ifapi_policyeval_cbpublic cbpublic
Definition: ifapi_policy_instantiate.h:59
ifapi_policyeval_cbname cbname
Definition: ifapi_policy_instantiate.h:57
ifapi_policyeval_cbnvpublic cbnvpublic
Definition: ifapi_policy_instantiate.h:61
Definition: fapi_types.h:34