Sponsor:

Your company here, and a link to your site. Click to find out more.

TPMLIB_MainInit - Man Page

Name

TPMLIB_MainInit — Initialize the TPM

TPMLIB_Terminate — Terminate the TPM

Library

TPM library (libtpms, -ltpms)

Synopsis

#include <libtpms/tpm_types.h>

#include <libtpms/tpm_library.h>

#include <libtpms/tpm_error.h>

TPM_RESULT TPMLIB_MainInit(void);

TPM_RESULT TPMLIB_Terminate(void);

Description

The TPMLIB_MainInit() and TPMLIB_Terminate() functions are used to initialize and terminate the TPM respectively. The TPMLIB_MainInit() function must be called before the TPM processes any TPM command. The TPMLIB_Terminate() function is called to free all the internal  resources (memory allocations) the TPM has used and must be called after the last TPM command was processed by the TPM. The TPMLIB_MainInit() function can then be called again.

Use TPMLIB_RegisterCallbacks() to set callback functions for initialization and writing and restoring the internal state in a portable format.

Errors

TPM_SUCCESS

The function completed successfully.

TPM_FAIL

General failure.

For a complete list of TPM error codes please consult the include file libtpms/tpm_error.h

Example

 #include <stdio.h>

 #include <libtpms/tpm_types.h>
 #include <libtpms/tpm_library.h>
 #include <libtpms/tpm_error.h>

 int main(void) {
     TPM_RESULT res;
     unsigned char *respbuffer = NULL;
     uint32_t resp_size = 0;
     uint32_t respbufsize = 0;
     unsigned char *command;
     uint32_t command_size;

     [...]

     if (TPMLIB_MainInit() != TPM_SUCCESS) {
         fprintf(stderr, "Could not start the TPM.\n");
         return 1;
     }

     [...]
     /* build TPM command */
     [...]

     res = TPMLIB_Process(&respbuffer, &resp_size,
                          &respbufsize,
                          command, command_size);
     [...]

     TPMLIB_Terminate();

     return 0;
 }

See Also

TPMLIB_Process(3), TPMLIB_RegisterCallbacks(3), TPMLIB_GetVersion(3) TPMLIB_GetTPMProperty(3), TPMLIB_DecodeBlob(3)

Referenced By

TPM_IO_Hash_Start(3), TPM_IO_TpmEstablished_Get(3), TPMLIB_ChooseTPMVersion(3), TPMLIB_DecodeBlob(3), TPMLIB_GetTPMProperty(3), TPMLIB_GetVersion(3), TPMLIB_Process(3), TPMLIB_RegisterCallbacks(3), TPMLIB_SetBufferSize(3), TPMLIB_SetState(3), TPMLIB_ValidateState(3), TPMLIB_VolatileAll_Store(3), TPM_Malloc(3).

The man page TPMLIB_Terminate(3) is an alias of TPMLIB_MainInit(3).

2024-01-25 libtpms