xref: /aosp_15_r20/external/tpm2-tss/src/tss2-fapi/ifapi_config.h (revision 758e9fba6fc9adbf15340f70c73baee7b168b1c9)
1*758e9fbaSOystein Eftevaag /* SPDX-License-Identifier: BSD-2-Clause */
2*758e9fbaSOystein Eftevaag /*******************************************************************************
3*758e9fbaSOystein Eftevaag  * Copyright 2018-2019, Fraunhofer SIT sponsored by Infineon Technologies AG
4*758e9fbaSOystein Eftevaag  * All rights reserved.
5*758e9fbaSOystein Eftevaag  *******************************************************************************/
6*758e9fbaSOystein Eftevaag #ifndef IFAPI_CONFIG_H
7*758e9fbaSOystein Eftevaag #define IFAPI_CONFIG_H
8*758e9fbaSOystein Eftevaag 
9*758e9fbaSOystein Eftevaag #include <stdint.h>
10*758e9fbaSOystein Eftevaag #include <stdlib.h>
11*758e9fbaSOystein Eftevaag #include <string.h>
12*758e9fbaSOystein Eftevaag #include "tss2_tpm2_types.h"
13*758e9fbaSOystein Eftevaag #include "ifapi_io.h"
14*758e9fbaSOystein Eftevaag 
15*758e9fbaSOystein Eftevaag #define ENV_FAPI_CONFIG "TSS2_FAPICONF"
16*758e9fbaSOystein Eftevaag 
17*758e9fbaSOystein Eftevaag /**
18*758e9fbaSOystein Eftevaag  * Type for storing FAPI configuration
19*758e9fbaSOystein Eftevaag  */
20*758e9fbaSOystein Eftevaag typedef struct {
21*758e9fbaSOystein Eftevaag     /** Path for profile directory */
22*758e9fbaSOystein Eftevaag     char                *profile_dir;
23*758e9fbaSOystein Eftevaag     /** Directory storing NV objects */
24*758e9fbaSOystein Eftevaag     char                *user_dir;
25*758e9fbaSOystein Eftevaag     /** Directory storing key and NV objects */
26*758e9fbaSOystein Eftevaag     char                *keystore_dir;
27*758e9fbaSOystein Eftevaag     /** Name the used profile */
28*758e9fbaSOystein Eftevaag     char                *profile_name;
29*758e9fbaSOystein Eftevaag     /** The used tcti interface */
30*758e9fbaSOystein Eftevaag     char                *tcti;
31*758e9fbaSOystein Eftevaag     /** The directory for event logs */
32*758e9fbaSOystein Eftevaag     char                *log_dir;
33*758e9fbaSOystein Eftevaag     /** The PCRs used by IMA etc. */
34*758e9fbaSOystein Eftevaag     TPML_PCR_SELECTION   system_pcrs;
35*758e9fbaSOystein Eftevaag     /** Fingerprint of EK */
36*758e9fbaSOystein Eftevaag     TPMT_HA              ek_fingerprint;
37*758e9fbaSOystein Eftevaag     /* URL for EC certificate */
38*758e9fbaSOystein Eftevaag     char                *ek_cert_file;
39*758e9fbaSOystein Eftevaag      /* Switch whether certificate validation will done */
40*758e9fbaSOystein Eftevaag     TPMI_YES_NO         ek_cert_less;
41*758e9fbaSOystein Eftevaag     /** Certificate service for Intel TPMs */
42*758e9fbaSOystein Eftevaag     char                *intel_cert_service;
43*758e9fbaSOystein Eftevaag 
44*758e9fbaSOystein Eftevaag } IFAPI_CONFIG;
45*758e9fbaSOystein Eftevaag 
46*758e9fbaSOystein Eftevaag TSS2_RC
47*758e9fbaSOystein Eftevaag ifapi_config_initialize_async(
48*758e9fbaSOystein Eftevaag     IFAPI_IO            *io
49*758e9fbaSOystein Eftevaag         );
50*758e9fbaSOystein Eftevaag 
51*758e9fbaSOystein Eftevaag TSS2_RC
52*758e9fbaSOystein Eftevaag ifapi_config_initialize_finish(
53*758e9fbaSOystein Eftevaag     IFAPI_IO            *io,
54*758e9fbaSOystein Eftevaag     IFAPI_CONFIG        *config
55*758e9fbaSOystein Eftevaag     );
56*758e9fbaSOystein Eftevaag 
57*758e9fbaSOystein Eftevaag #endif /* IFAPI_CONFIG_H */
58