56 lines
1.4 KiB
C
56 lines
1.4 KiB
C
/*
|
|
* Copyright (C) 2018 Intel Corporation
|
|
* All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#ifndef _TPM_INTERNAL_H_
|
|
#define _TPM_INTERNAL_H_
|
|
|
|
/* TPMCommBuffer will package TPM2 command and
|
|
* response which are handled by TPM emulator
|
|
*
|
|
* locty: the locality TPM emulator used
|
|
* in & in_len: To indicate the buffer and the
|
|
* size for TPM command
|
|
* out & out_len: To indicate the buffer and
|
|
* the size for TPM response
|
|
*/
|
|
typedef struct TPMCommBuffer {
|
|
uint8_t locty;
|
|
const uint8_t *in;
|
|
uint32_t in_len;
|
|
uint8_t *out;
|
|
uint32_t out_len;
|
|
bool selftest_done;
|
|
} TPMCommBuffer;
|
|
|
|
/* APIs by tpm_emulator.c */
|
|
/* Create Ctrl channel and Cmd channel so as to communicate with SWTPM */
|
|
int init_tpm_emulator(const char *sock_path);
|
|
|
|
/* Shutdown of SWTPM and close Ctrl channel and Cmd channel */
|
|
void deinit_tpm_emulator(void);
|
|
|
|
/* Send Ctrl channel command CMD_GET_TPMESTABLISHED to SWTPM */
|
|
bool swtpm_get_tpm_established_flag(void);
|
|
|
|
/* Send TPM2 command request to SWTPM by using Cmd channel */
|
|
int swtpm_handle_request(TPMCommBuffer *cmd);
|
|
|
|
/* Initialization for SWTPM */
|
|
int swtpm_startup(size_t buffersize);
|
|
|
|
/* Cancellation of the current TPM2 command */
|
|
void swtpm_cancel_cmd(void);
|
|
|
|
/* APIs by tpm_crb.c */
|
|
/* Initialize TPM CRB Virtual Device */
|
|
int init_tpm_crb(struct vmctx *ctx);
|
|
|
|
/* Deinitialize TPM CRB Virtual Device */
|
|
void deinit_tpm_crb(struct vmctx *ctx);
|
|
|
|
#endif
|