Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Tss2_Tcti_Device_Init(3)   Library Functions Manual   Tss2_Tcti_Device_Init(3)

NAME
       Tss2_Tcti_Device_init - Initialization function for the device TCTI li-
       brary.

SYNOPSIS
       #include	<tcti/tcti_device.h>

       TSS2_RC	Tss2_Tcti_Device_Init  (TSS2_TCTI_CONTEXT *tctiContext,	size_t
       *size, const char *conf);

       The Tss2_Tcti_Device_Init() function initializes	a TCTI context used to
       communicate with	the TPM	device driver.

DESCRIPTION
       Tss2_Tcti_Device_Init() attempts	to initialize a	caller allocated tcti-
       Context of size size . Since the	tctiContext must be a caller allocated
       buffer, the caller needs	to know	the size required by the TCTI library.
       The minimum size	of this	context	can be discovered  by  providing  NULL
       for  the	tctiContext and	a non- NULL size parameter. The	initialization
       function	will then populate the size parameter with the minimum size of
       the tctiContext buffer. The caller must then allocate a buffer of  this
       size  (or larger) and call Tss2_Tcti_Device_Init	() again providing the
       newly allocated tctiContext and the size	of this	context	 in  the  size
       parameter. This pattern is common to all	TCTI initialization functions.
       We provide an example of	this pattern using the Tss2_Tcti_Device_Init()
       function	in the section titled EXAMPLE.

       The  conf  parameter is a C string. If this string is NULL then the li-
       brary will use a	default	configuration string for the caller.  Alterna-
       tively, the caller may provide a	configuration string that must contain
       the path	to the device node exposed by the TPM device driver.

       Once initialized, the TCTI context returned exposes the Trusted Comput-
       ing Group (TCG) defined API for the lowest level	communication with the
       TPM.  Using this	API the	caller can exchange (send / receive) TPM2 com-
       mand and	response buffers with the TPM device  driver.  In  nearly  all
       cases however, the caller will initialize a context using this function
       before  passing	the  context to	a higher level API like	the System API
       (SAPI), and then	never touch it again.

       TCG TSS 2.0 TPM Command Transmission Interface (TCTI) API Specification

       For a more thorough discussion of the TCTI API see the "TCG TSS 2.0 TPM
       Command Transmission Interface (TCTI) API Specification"	 as  published
       by				the				  TCG:
       https://trustedcomputinggroup.org/wp-content/uploads/TSS_TCTI_Version-1.0_Revision-05_Review_END030918.pdf

RETURN VALUE
       A successful call to Tss2_Tcti_Device_Init() will  return  TSS2_RC_SUC-
       CESS.   An  unsuccessful	call will produce a response code described in
       section ERRORS.

ERRORS
       TSS2_TCTI_RC_BAD_VALUE is returned if any parameters contain unexpected
       values.	TSS2_TCTI_RC_BAD_REFERENCE is returned if any  parameters  are
       NULL  when they should not be.  TSS2_TCTI_RC_BAD_CONTEXT	is returned if
       the size	of the provided	tctiContext is insufficient.

EXAMPLE
       TCTI initialization fragment:

       #include	<inttypes.h>
       #include	<stdlib.h>
       #include	<stdio.h>
       #include	<tcti/tcti_device.h>

       TSS2_RC rc;
       TSS2_TCTI_CONTEXT *tcti_context;
       size_t size;
       char *conf = "/dev/tpm0",

       rc = Tss2_Tcti_Device_Init (NULL, &size,	NULL);
       if (rc != TSS2_RC_SUCCESS) {
	   fprintf (stderr, "Failed to get allocation size for device TCTI "
		    " context: 0x%" PRIx32 "0, rc);
	   exit	(EXIT_FAILURE);
       }
       tcti_context = calloc (1, size);
       if (tcti_context	== NULL) {
	   fprintf (stderr, "Allocation	for TCTI context failed: %s0,
		    strerror (errno));
	   exit	(EXIT_FAILURE);
       }
       rc = Tss2_Tcti_Device_Init (&tcti_context, &size, &conf);
       if (rc != TSS2_RC_SUCCESS) {
	   fprintf (stderr, "Failed to initialize device TCTI context: "
		    "0x%" PRIx32 "0, rc);
	   free	(tcti_context);
	   exit	(EXIT_FAILURE);
       }
       exit (EXIT_SUCCESS);

AUTHOR
       TPM2 Software Project <https://github.com/tpm2-software/tpm2-tss>

SEE ALSO
       Tss2_Tcti_Device_Init(3),  Tss2_Tcti_Socket_Init(3),  Tss2_TctiLdr_Ini-
       tialize(3),  Tss2_TctiLdr_Finalize(3),  tcti-device(7), tcti-socket(7),
       tcti-tabrmd(7), tpm2-abrmd(8)

COLOPHON
       This page is part of release 4.0.1 of Open Source implementation	of the
       TCG TPM2	Software Stack (TSS2). A description of	the project,  informa-
       tion  about  reporting bugs, and	the latest version of this page	can be
       found at	https://github.com/tpm2-software/tpm2-tss/.

TPM2 Software Stack		  MARCH	2018	      Tss2_Tcti_Device_Init(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=Tss2_Tcti_Device_Init&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help