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 
7 #ifndef IFAPI_POLICY_STORE_H
8 #define IFAPI_POLICY_STORE_H
9 
10 #include <stdlib.h>
11 
12 #include "tss2_common.h"
13 #include "tss2_tpm2_types.h"
14 #include "fapi_types.h"
15 #include "ifapi_policy_types.h"
16 
17 typedef struct IFAPI_POLICY_STORE {
18     char *policydir;
19 } IFAPI_POLICY_STORE;
20 
21 TSS2_RC
22 ifapi_policy_delete(
23      IFAPI_POLICY_STORE *pstore,
24      char *path);
25 
26 TSS2_RC
27 ifapi_policy_store_initialize(
28     IFAPI_POLICY_STORE *pstore,
29     const char *config_policydir);
30 
31 TSS2_RC
32 ifapi_policy_store_load_async(
33     IFAPI_POLICY_STORE *pstore,
34     IFAPI_IO *io,
35     const char *path);
36 
37 TSS2_RC
38 ifapi_policy_store_load_finish(
39     IFAPI_POLICY_STORE *pstore,
40     IFAPI_IO *io,
41     TPMS_POLICY *policy);
42 
43 TSS2_RC
44 ifapi_policy_store_store_async(
45     IFAPI_POLICY_STORE *pstore,
46     IFAPI_IO *io,
47     const char *path,
48     const TPMS_POLICY *policy);
49 
50 TSS2_RC
51 ifapi_policy_store_store_finish(
52     IFAPI_POLICY_STORE *pstore,
53     IFAPI_IO *io);
54 
55 TSS2_RC
56 ifapi_policystore_check_overwrite(
57     IFAPI_POLICY_STORE *pstore,
58     const char *path);
59 
60 #endif /* IFAPI_POLICY_STORE_H */
61