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