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