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 IFAPI_CONFIG_H
7 #define IFAPI_CONFIG_H
8 
9 #include <stdint.h>
10 #include <stdlib.h>
11 #include <string.h>
12 #include "tss2_tpm2_types.h"
13 #include "ifapi_io.h"
14 
15 #define ENV_FAPI_CONFIG "TSS2_FAPICONF"
16 
17 /**
18  * Type for storing FAPI configuration
19  */
20 typedef struct {
21     /** Path for profile directory */
22     char                *profile_dir;
23     /** Directory storing NV objects */
24     char                *user_dir;
25     /** Directory storing key and NV objects */
26     char                *keystore_dir;
27     /** Name the used profile */
28     char                *profile_name;
29     /** The used tcti interface */
30     char                *tcti;
31     /** The directory for event logs */
32     char                *log_dir;
33     /** The PCRs used by IMA etc. */
34     TPML_PCR_SELECTION   system_pcrs;
35     /** Fingerprint of EK */
36     TPMT_HA              ek_fingerprint;
37     /* URL for EC certificate */
38     char                *ek_cert_file;
39      /* Switch whether certificate validation will done */
40     TPMI_YES_NO         ek_cert_less;
41     /** Certificate service for Intel TPMs */
42     char                *intel_cert_service;
43 
44 } IFAPI_CONFIG;
45 
46 TSS2_RC
47 ifapi_config_initialize_async(
48     IFAPI_IO            *io
49         );
50 
51 TSS2_RC
52 ifapi_config_initialize_finish(
53     IFAPI_IO            *io,
54     IFAPI_CONFIG        *config
55     );
56 
57 #endif /* IFAPI_CONFIG_H */
58