blob: c219fb507cefeef1166875e8bffc1ac395d0c543 [file] [log] [blame]
/*******************************************************************************
* Copyright 2018-2019, Fraunhofer SIT sponsored by Infineon Technologies AG
* All rights reserved.
*******************************************************************************/
#ifndef FAPI_POLICYUTIL_EXECUTE_H
#define FAPI_POLICYUTIL_EXECUTE_H
#include <stdint.h>
#include <stdarg.h>
#include <stdbool.h>
#include <sys/stat.h>
#include <json-c/json.h>
#include <json-c/json_util.h>
#include "tss2_esys.h"
#include "tss2_fapi.h"
/** The states for the FAPI's policy util execution */
enum IFAPI_STATE_POLICY_UTIL_EXEC {
POLICY_UTIL_INIT,
POLICY_UTIL_EXEC_POLICY,
};
/** The context of the policy execution */
struct IFAPI_POLICYUTIL_STACK {
ESYS_TR policy_session; /**< The policy session created for the current evaluation */
IFAPI_POLICY_EXEC_CTX *pol_exec_ctx; /**< The execution context for the current policy */
enum IFAPI_STATE_POLICY_UTIL_EXEC state;
IFAPI_POLICYUTIL_STACK *next; /**< Pointer to next policy */
IFAPI_POLICYUTIL_STACK *prev; /**< Pointer to previous policy */
};
TSS2_RC
ifapi_policyutil_execute_prepare(
FAPI_CONTEXT *context,
TPMI_ALG_HASH hash_alg,
TPMS_POLICY *policy);
TSS2_RC
ifapi_policyutil_execute(
FAPI_CONTEXT *context,
ESYS_TR *session);
#endif /* FAPI_POLICYUTIL_EXECUTE_H */