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

FreeBSD Manual Pages


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

       Tss2_Tcti_Cmd_Init - Initialization function for	the Cmd	TCTI library.

       #include	<tss2/tss2_tcti_cmd.h>

       TSS2_RC	 Tss2_Tcti_Cmd_Init  (TSS2_TCTI_CONTEXT	 *tctiContext,	size_t
       *contextSize, const char	*conf);

       The Tss2_Tcti_Cmd_Init()	function initializes a TCTI  context  used  to
       communicate  with a subprocess specified	in the conf string.  TCTI send
       and receives utilize the	sub-process's stdio and	stdout respectively.

       Tss2_Tcti_Cmd_Init()  attempts  to  initialize	a   caller   allocated
       tcti_context  of	 size  size using caller provided configuration	string
       conf . Since the	tcti_context must be a caller  allocated  buffer,  the
       caller  needs to	know the buffer	size required by the TCTI library. The
       minimum size of this context can	be discovered by  providing  NULL  for
       the  tcti_context  and  a  non- NULL size parameter. The	initialization
       function	will then populate the size parameter with the minimum size of
       the tcti_context	buffer.	The caller must	then allocate a	buffer of this
       size (or	larger)	and call Tss2_Tcti_Cmd_Init  ()	 again	providing  the
       newly  allocated	 tcti_context 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_Cmd_Init()
       function	in the section titled EXAMPLE.

       The conf	parameter is a C string	used to	configure  the	TCTI  context.
       This  configuration  string  is the command used	for popen(3). The conf
       string cannot be	NULL for this TCTI.

       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 a	service	that can excahnge TPM2 command
       and response buffers. In	nearly all cases however, the caller will ini-
       tialize	a  context using this function before passing the context to a
       higher level API	like  the  System  API	(SAPI),	 Enhanced  System  API
       (ESAPI) or Feature API (FAPI) and then never touch it again.

       For  a  more  thorough  discussion  of the TCTI API see the "TSS	System
       Level API and TPM Command Transmission Interface	Specification" as pub-
       lished			by		     the		  TCG:

       A  successful call to Tss2_Tcti_Cmd_Init() will return TSS2_RC_SUCCESS.
       An unsuccessful call will produce a response code described in  section

       TSS2_TCTI_RC_BAD_VALUE  is  returned  if	 both the tcti_context and the
       size parameters are NULL, or if the config parameter is NULL.

       TCTI initialization fragment:

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

       TSS2_RC rc;
       TSS2_TCTI_CONTEXT *tcti_context;
       size_t size;
       const char *conf	= "XXX TODO SAMPLE"

       rc = Tss2_Tcti_Cmd_Init (NULL, &size, NULL);
       if (rc != TSS2_RC_SUCCESS) {
	   fprintf (stderr, "Failed to get allocation size for mssim 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_Cmd_Init (&tcti_context, &size, conf);
       if (rc != TSS2_RC_SUCCESS) {
	   fprintf (stderr, "Failed to initialize mssim	TCTI context: "
		    "0x%" PRIx32 "0, rc);
	   free	(tcti_context);
	   exit	(EXIT_FAILURE);

       Philip Tricca <>

       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)

       This page is part of release 3.1.0 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

TPM2 Software Stack		   MAY 2020		 Tss2_Tcti_Cmd_Init(3)


Want to link to this manual page? Use this URL:

home | help