GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
TPMLIB_Process(3) TPMLIB_Process(3)

TPMLIB_Process - process a TPM command

TPM library (libtpms, -ltpms)

#include <libtpms/tpm_library.h>

#include <libtpms/tpm_error.h>

TPM_RESULT TPMLIB_Process(unsigned char **respbuffer,
uint32_t *resp_size,
uint32_t *respbufsize,
unsigned char *command,
uint32_t command_size);

The TPMLIB_Process() function is used to send TPM commands to the TPM and receive the results.

The command parameter provides the buffer for the TPM command and the command_size the number of valid TPM command bytes within that buffer.

The respbuffer is a pointer to a buffer where the TPM will return its result. If no buffer is given (respbuffer is NULL), the TPM will allocate a buffer. The parameter resp_size returns the number of valid TPM response bytes in the buffer. The number of valid bytes in the response is guaranteed to not exceed the maximum I/O buffer size. Use the TPMLIB_GetTPMProperty() API and parameter TPMPROP_TPM_BUFFER_MAX for getting the maximum size. The user must indicate the size of a provided buffer with the respbufsize parameter. If the buffer is not big enough for the response, the TPM will free the provided buffer and allocate one of sufficient size and adapt respbufsize. The returned buffer is only subject to size restrictions as explained for TPM_Malloc().

The function completed successfully.
General failure.

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

 #include <stdio.h>
 #include <libtpms/tpm_types.h>
 #include <libtpms/tpm_library.h>
 #include <libtpms/tpm_error.h>
 static unsigned char TPM_Startup_ST_CLEAR[] = {
     0x00, 0xC1, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x99,
     0x00, TPM_ST_CLEAR
 };
 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 */
     command = TPM_Startup_ST_CLEAR;
     command_size = sizeof(TPM_Startup_ST_CLEAR);
     [...]
     res = TPMLIB_Process(&respbuffer, &resp_size,
                          &respbufsize,
                          command, command_size);
     [...]
     TPMLIB_Terminate();
     return 0;
 }

TPMLIB_MainInit(3), TPMLIB_Terminate(3), TPMLIB_RegisterCallbacks(3) TPMLIB_GetTPMProperty(3), TPMLIB_Malloc(3), TPMLIB_Realloc(3)

2025-06-10 libtpms

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.