xref: /aosp_15_r20/external/tpm2-tss/src/tss2-fapi/ifapi_policyutil_execute.h (revision 758e9fba6fc9adbf15340f70c73baee7b168b1c9)
1*758e9fbaSOystein Eftevaag /*******************************************************************************
2*758e9fbaSOystein Eftevaag  * Copyright 2018-2019, Fraunhofer SIT sponsored by Infineon Technologies AG
3*758e9fbaSOystein Eftevaag  * All rights reserved.
4*758e9fbaSOystein Eftevaag  *******************************************************************************/
5*758e9fbaSOystein Eftevaag #ifndef FAPI_POLICYUTIL_EXECUTE_H
6*758e9fbaSOystein Eftevaag #define FAPI_POLICYUTIL_EXECUTE_H
7*758e9fbaSOystein Eftevaag 
8*758e9fbaSOystein Eftevaag #include <stdint.h>
9*758e9fbaSOystein Eftevaag #include <stdarg.h>
10*758e9fbaSOystein Eftevaag #include <stdbool.h>
11*758e9fbaSOystein Eftevaag #include <sys/stat.h>
12*758e9fbaSOystein Eftevaag #include <json-c/json.h>
13*758e9fbaSOystein Eftevaag #include <json-c/json_util.h>
14*758e9fbaSOystein Eftevaag 
15*758e9fbaSOystein Eftevaag #include "tss2_esys.h"
16*758e9fbaSOystein Eftevaag #include "tss2_fapi.h"
17*758e9fbaSOystein Eftevaag 
18*758e9fbaSOystein Eftevaag 
19*758e9fbaSOystein Eftevaag /** The states for the FAPI's policy util execution */
20*758e9fbaSOystein Eftevaag enum IFAPI_STATE_POLICY_UTIL_EXEC {
21*758e9fbaSOystein Eftevaag     POLICY_UTIL_INIT,
22*758e9fbaSOystein Eftevaag     POLICY_UTIL_EXEC_POLICY,
23*758e9fbaSOystein Eftevaag };
24*758e9fbaSOystein Eftevaag 
25*758e9fbaSOystein Eftevaag /** The context of the policy execution */
26*758e9fbaSOystein Eftevaag struct IFAPI_POLICYUTIL_STACK {
27*758e9fbaSOystein Eftevaag     ESYS_TR policy_session;             /**< The policy session created for the current evaluation  */
28*758e9fbaSOystein Eftevaag     IFAPI_POLICY_EXEC_CTX *pol_exec_ctx;    /**< The execution context for the current policy */
29*758e9fbaSOystein Eftevaag     enum IFAPI_STATE_POLICY_UTIL_EXEC state;
30*758e9fbaSOystein Eftevaag     IFAPI_POLICYUTIL_STACK *next;           /**< Pointer to next policy */
31*758e9fbaSOystein Eftevaag     IFAPI_POLICYUTIL_STACK *prev;           /**< Pointer to previous policy */
32*758e9fbaSOystein Eftevaag };
33*758e9fbaSOystein Eftevaag 
34*758e9fbaSOystein Eftevaag TSS2_RC
35*758e9fbaSOystein Eftevaag ifapi_policyutil_execute_prepare(
36*758e9fbaSOystein Eftevaag     FAPI_CONTEXT *context,
37*758e9fbaSOystein Eftevaag     TPMI_ALG_HASH hash_alg,
38*758e9fbaSOystein Eftevaag     TPMS_POLICY *policy);
39*758e9fbaSOystein Eftevaag 
40*758e9fbaSOystein Eftevaag TSS2_RC
41*758e9fbaSOystein Eftevaag ifapi_policyutil_execute(
42*758e9fbaSOystein Eftevaag     FAPI_CONTEXT *context,
43*758e9fbaSOystein Eftevaag     ESYS_TR *session);
44*758e9fbaSOystein Eftevaag 
45*758e9fbaSOystein Eftevaag #endif /* FAPI_POLICYUTIL_EXECUTE_H */
46